Repository navigation
Expand file tree
/
Copy pathseed.sql
More file actions
59 lines (53 loc) · 3.7 KB
/
Copy pathseed.sql
File metadata and controls
59 lines (53 loc) · 3.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
-- Datos de prueba para ApiBooks
-- Limpia y reinicia (orden por dependencias FK)
TRUNCATE TABLE multa, reserva, prestamo, libro, usuario RESTART IDENTITY CASCADE;
-- ===== LIBROS (el stock ya refleja los ejemplares prestados/reservados activos) =====
INSERT INTO libro (id, nombre, autor, isbn, stock) VALUES
(1, 'Cien años de soledad', 'Gabriel García Márquez', '9780307474728', 4),
(2, 'Don Quijote de la Mancha', 'Miguel de Cervantes', '9788420412146', 3),
(3, '1984', 'George Orwell', '9780451524935', 3),
(4, 'El Principito', 'Antoine de Saint-Exupéry','9780156012195', 6),
(5, 'Rayuela', 'Julio Cortázar', '9788437604572', 1),
(6, 'Crónica de una muerte anunciada', 'Gabriel García Márquez', '9788497592437', 0),
(7, 'Ficciones', 'Jorge Luis Borges', '9788420633138', 2),
(8, 'La sombra del viento', 'Carlos Ruiz Zafón', '9788408079989', 4);
-- ===== USUARIOS =====
INSERT INTO usuario (id, nombre, apellido, cedula, email, telefono) VALUES
(1, 'Sebastián', 'Rivas', '0100000001', 'sebastian@gmail.com', '0991111111'),
(2, 'María', 'López', '0100000007', 'maria@gmail.com', '0991111117'),
(3, 'Juan', 'Pérez', '0100000004', 'juan@gmail.com', '0991111114'),
(4, 'Andrea', 'Cueva', '0100000020', 'andrea@gmail.com', '0991111130'),
(5, 'Carlos', 'Mora', '0100000011', 'carlos2@gmail.com', '0991111121');
-- ===== PRESTAMOS =====
-- P1: activo, dentro de plazo
-- P2: activo pero vencido (devolución estimada ya pasó)
-- P3: devuelto a tiempo
-- P4: devuelto con retraso (genera multa)
INSERT INTO prestamo (id, libro_id, usuario_id, fecha_prestamo, fecha_devolucion_estimada, fecha_devolucion_real, estado) VALUES
(1, 1, 1, CURRENT_DATE - 5, CURRENT_DATE + 5, NULL, 'ACTIVO'),
(2, 3, 2, CURRENT_DATE - 20, CURRENT_DATE - 6, NULL, 'VENCIDO'),
(3, 4, 3, CURRENT_DATE - 30, CURRENT_DATE - 16, CURRENT_DATE - 18,'DEVUELTO'),
(4, 5, 4, CURRENT_DATE - 25, CURRENT_DATE - 11, CURRENT_DATE - 4, 'DEVUELTO');
-- ===== MULTAS =====
-- M1: por retraso sobre P4 (7 días * 0.50)
-- M2: por retraso sobre P2 (vencido, aún activo) - pendiente
-- M3: manual por daño - pagada
INSERT INTO multa (id, prestamo_id, motivo, monto, dias_retraso, fecha_generacion, fecha_pago, estado) VALUES
(1, 4, 'RETRASO', 3.50, 7, CURRENT_DATE - 4, NULL, 'PENDIENTE'),
(2, 2, 'RETRASO', 3.00, 6, CURRENT_DATE - 1, NULL, 'PENDIENTE'),
(3, 3, 'DANIO', 10.00, NULL, CURRENT_DATE - 18, CURRENT_DATE - 17, 'PAGADA');
-- ===== RESERVAS =====
-- R1, R2: activas (apartan ejemplares de libros 7 y 8, dentro de su fecha de expiración)
-- R3: expirada (el cliente no vino a retirar el libro antes de la fecha de expiración)
-- R4: cancelada manualmente (el cliente avisó que ya no la quería)
INSERT INTO reserva (id, libro_id, usuario_id, fecha_reserva, fecha_expiracion, estado) VALUES
(1, 7, 5, CURRENT_DATE - 1, CURRENT_DATE + 2, 'ACTIVA'),
(2, 8, 1, CURRENT_DATE, CURRENT_DATE + 3, 'ACTIVA'),
(3, 2, 3, CURRENT_DATE - 5, CURRENT_DATE - 2, 'EXPIRADA'),
(4, 5, 2, CURRENT_DATE - 4, CURRENT_DATE + 1, 'CANCELADA');
-- ===== Reiniciar las secuencias identity para que la app siga desde el último id =====
SELECT setval(pg_get_serial_sequence('libro','id'), (SELECT MAX(id) FROM libro));
SELECT setval(pg_get_serial_sequence('usuario','id'), (SELECT MAX(id) FROM usuario));
SELECT setval(pg_get_serial_sequence('prestamo','id'), (SELECT MAX(id) FROM prestamo));
SELECT setval(pg_get_serial_sequence('multa','id'), (SELECT MAX(id) FROM multa));
SELECT setval(pg_get_serial_sequence('reserva','id'), (SELECT MAX(id) FROM reserva));