Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 18 additions & 18 deletions backend/src/main/resources/db/migration/V1__init.sql
Original file line number Diff line number Diff line change
Expand Up @@ -12,66 +12,66 @@ CREATE TABLE Usuario (
-- 2. Tabla de Productos (Maestra)
CREATE TABLE Producto (
id BIGSERIAL PRIMARY KEY,
id_API INTEGER NOT NULL,
id_API BIGINT NOT NULL,
nombre VARCHAR(255) NOT NULL,
estado VARCHAR(50) CHECK (estado IN ('NUEVO', 'USADO'))
);

-- 3. Historial: Compras / Ventas
CREATE TABLE CompraVenta (
id BIGSERIAL PRIMARY KEY,
id_comprador INTEGER REFERENCES Usuario(id),
id_vendedor INTEGER REFERENCES Usuario(id),
id_producto INTEGER REFERENCES Producto(id),
id_comprador BIGINT REFERENCES Usuario(id),
id_vendedor BIGINT REFERENCES Usuario(id),
id_producto BIGINT REFERENCES Producto(id),
precio DOUBLE PRECISION NOT NULL,
fecha DATE DEFAULT CURRENT_DATE
);

-- 4. Historial: Intercambio
CREATE TABLE Intercambio (
id BIGSERIAL PRIMARY KEY,
id_producto INTEGER REFERENCES Producto(id),
id_cambio INTEGER REFERENCES Producto(id),
id_usuario_producto INTEGER REFERENCES Usuario(id),
id_usuario_cambio INTEGER REFERENCES Usuario(id),
id_producto BIGINT REFERENCES Producto(id),
id_cambio BIGINT REFERENCES Producto(id),
id_usuario_producto BIGINT REFERENCES Usuario(id),
id_usuario_cambio BIGINT REFERENCES Usuario(id),
fecha DATE DEFAULT CURRENT_DATE
);

-- 5. Posts: Post Ventas
CREATE TABLE PostVenta (
id BIGSERIAL PRIMARY KEY,
id_vendedor INTEGER REFERENCES Usuario(id),
id_producto INTEGER REFERENCES Producto(id),
id_vendedor BIGINT REFERENCES Usuario(id),
id_producto BIGINT REFERENCES Producto(id),
precio DOUBLE PRECISION NOT NULL
);

-- 6. Posts: Post Intercambio
CREATE TABLE PostIntercambio (
id BIGSERIAL PRIMARY KEY,
id_usuario INTEGER REFERENCES Usuario(id),
id_producto INTEGER REFERENCES Producto(id),
id_producto_cambio INTEGER REFERENCES Producto(id)
id_usuario BIGINT REFERENCES Usuario(id),
id_producto BIGINT REFERENCES Producto(id),
id_producto_cambio BIGINT REFERENCES Producto(id)
);

-- 7. Review
CREATE TABLE Review (
id BIGSERIAL PRIMARY KEY,
id_reviewer INTEGER REFERENCES Usuario(id),
id_reviewed INTEGER REFERENCES Usuario(id),
id_reviewer BIGINT REFERENCES Usuario(id),
id_reviewed BIGINT REFERENCES Usuario(id),
contenido TEXT,
estrellas DOUBLE PRECISION CHECK (estrellas >= 0 AND estrellas <= 5)
);

-- 8. Carrito
CREATE TABLE Carrito (
id BIGSERIAL PRIMARY KEY,
id_usuario INTEGER REFERENCES Usuario(id),
id_usuario BIGINT REFERENCES Usuario(id),
coste DOUBLE PRECISION DEFAULT 0.0
);

-- 9. Productos en el Carrito (Tabla intermedia)
CREATE TABLE ProductoCarrito (
id BIGSERIAL PRIMARY KEY,
id_producto INTEGER REFERENCES Producto(id),
id_carrito INTEGER REFERENCES Carrito(id)
id_producto BIGINT REFERENCES Producto(id),
id_carrito BIGINT REFERENCES Carrito(id)
);
6 changes: 3 additions & 3 deletions backend/src/main/resources/db/migration/V2__fixes.sql
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ ALTER TABLE CompraVenta DROP COLUMN id_producto;

-- añadir nueva FK
ALTER TABLE CompraVenta
ADD COLUMN id_post_venta INTEGER REFERENCES PostVenta(id);
ADD COLUMN id_post_venta BIGINT REFERENCES PostVenta(id);


-- 4. Intercambio -> cambiar estructura
Expand All @@ -38,12 +38,12 @@ ALTER TABLE Intercambio DROP COLUMN id_usuario_producto;

-- añadir nuevas columnas
ALTER TABLE Intercambio
ADD COLUMN id_post_intercambio INTEGER REFERENCES PostIntercambio(id);
ADD COLUMN id_post_intercambio BIGINT REFERENCES PostIntercambio(id);


-- 5. ProductoCarrito -> cambiar producto por postVenta

ALTER TABLE ProductoCarrito DROP COLUMN id_producto;

ALTER TABLE ProductoCarrito
ADD COLUMN id_post_venta INTEGER REFERENCES PostVenta(id);
ADD COLUMN id_post_venta BIGINT REFERENCES PostVenta(id);
Loading