mirror of
https://gitlab.com/mbugroup/lti-api.git
synced 2026-05-20 13:31:56 +00:00
Merge branch 'feat/BE/Sprint-6' of https://gitlab.com/mbugroup/lti-api into feat/BE/US-279/closing-produksi
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
ALTER TABLE products
|
||||
DROP COLUMN IF EXISTS is_visible;
|
||||
@@ -0,0 +1,2 @@
|
||||
ALTER TABLE products
|
||||
ADD COLUMN IF NOT EXISTS is_visible BOOLEAN NOT NULL DEFAULT TRUE;
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
BEGIN;
|
||||
|
||||
-- Drop new indexes and FK
|
||||
DROP INDEX IF EXISTS idx_product_warehouses_project_flock_kandang_id;
|
||||
DROP INDEX IF EXISTS idx_product_warehouses_unique;
|
||||
|
||||
ALTER TABLE product_warehouses
|
||||
DROP CONSTRAINT IF EXISTS fk_product_warehouses_project_flock_kandang_id,
|
||||
ALTER COLUMN project_flock_kandang_id DROP NOT NULL,
|
||||
DROP COLUMN IF EXISTS project_flock_kandang_id;
|
||||
|
||||
-- Revert qty to integer quantity
|
||||
ALTER TABLE product_warehouses
|
||||
RENAME COLUMN qty TO quantity;
|
||||
|
||||
ALTER TABLE product_warehouses
|
||||
ALTER COLUMN quantity TYPE INTEGER USING quantity::integer,
|
||||
ALTER COLUMN quantity SET DEFAULT 0,
|
||||
ALTER COLUMN quantity SET NOT NULL;
|
||||
|
||||
-- Restore audit/soft-delete columns
|
||||
ALTER TABLE product_warehouses
|
||||
ADD COLUMN IF NOT EXISTS created_by BIGINT NOT NULL REFERENCES users (id),
|
||||
ADD COLUMN IF NOT EXISTS created_at TIMESTAMPTZ DEFAULT NOW(),
|
||||
ADD COLUMN IF NOT EXISTS updated_at TIMESTAMPTZ DEFAULT NOW(),
|
||||
ADD COLUMN IF NOT EXISTS deleted_at TIMESTAMPTZ;
|
||||
|
||||
-- Recreate prior indexes
|
||||
CREATE INDEX IF NOT EXISTS idx_product_warehouses_deleted_at ON product_warehouses (deleted_at);
|
||||
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_product_warehouses_unique
|
||||
ON product_warehouses (product_id, warehouse_id)
|
||||
WHERE deleted_at IS NULL;
|
||||
|
||||
COMMIT;
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
BEGIN;
|
||||
|
||||
-- Drop indexes that depend on deleted_at or old uniqueness
|
||||
DROP INDEX IF EXISTS idx_product_warehouses_deleted_at;
|
||||
DROP INDEX IF EXISTS idx_product_warehouses_unique;
|
||||
|
||||
-- Add new relation and adjust quantity column
|
||||
ALTER TABLE product_warehouses
|
||||
ADD COLUMN IF NOT EXISTS project_flock_kandang_id BIGINT;
|
||||
|
||||
ALTER TABLE product_warehouses
|
||||
RENAME COLUMN quantity TO qty;
|
||||
|
||||
-- Enforce numeric quantity with precision and default
|
||||
ALTER TABLE product_warehouses
|
||||
ALTER COLUMN qty TYPE NUMERIC(15, 3) USING qty::numeric(15, 3),
|
||||
ALTER COLUMN qty SET DEFAULT 0,
|
||||
ALTER COLUMN qty SET NOT NULL;
|
||||
|
||||
-- Remove audit/soft-delete columns no longer used
|
||||
ALTER TABLE product_warehouses
|
||||
DROP COLUMN IF EXISTS created_by,
|
||||
DROP COLUMN IF EXISTS created_at,
|
||||
DROP COLUMN IF EXISTS updated_at,
|
||||
DROP COLUMN IF EXISTS deleted_at;
|
||||
|
||||
-- Enforce FK and not-null for project_flock_kandang_id
|
||||
ALTER TABLE product_warehouses
|
||||
ADD CONSTRAINT fk_product_warehouses_project_flock_kandang_id
|
||||
FOREIGN KEY (project_flock_kandang_id)
|
||||
REFERENCES project_flock_kandangs (id)
|
||||
ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
-- New indexes
|
||||
CREATE INDEX IF NOT EXISTS idx_product_warehouses_project_flock_kandang_id
|
||||
ON product_warehouses (project_flock_kandang_id);
|
||||
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_product_warehouses_unique
|
||||
ON product_warehouses (product_id, warehouse_id, project_flock_kandang_id);
|
||||
|
||||
COMMIT;
|
||||
@@ -0,0 +1,44 @@
|
||||
BEGIN;
|
||||
|
||||
-- Drop new indexes
|
||||
DROP INDEX IF EXISTS stock_logs_loggable_type_loggable_id_idx;
|
||||
DROP INDEX IF EXISTS stock_logs_product_warehouse_id_idx;
|
||||
DROP INDEX IF EXISTS stock_logs_created_by_idx;
|
||||
DROP INDEX IF EXISTS stock_logs_created_at_idx;
|
||||
|
||||
-- Restore obsolete columns
|
||||
ALTER TABLE stock_logs
|
||||
ADD COLUMN IF NOT EXISTS transaction_type VARCHAR(20) DEFAULT '' NOT NULL,
|
||||
ADD COLUMN IF NOT EXISTS quantity NUMERIC(15, 3) DEFAULT 0 NOT NULL,
|
||||
ADD COLUMN IF NOT EXISTS before_quantity NUMERIC(15, 3) DEFAULT 0 NOT NULL,
|
||||
ADD COLUMN IF NOT EXISTS after_quantity NUMERIC(15, 3) DEFAULT 0 NOT NULL,
|
||||
ADD COLUMN IF NOT EXISTS updated_at TIMESTAMPTZ DEFAULT NOW(),
|
||||
ADD COLUMN IF NOT EXISTS deleted_at TIMESTAMPTZ;
|
||||
|
||||
-- Rename columns back
|
||||
ALTER TABLE stock_logs
|
||||
RENAME COLUMN loggable_type TO log_type;
|
||||
|
||||
ALTER TABLE stock_logs
|
||||
RENAME COLUMN loggable_id TO log_id;
|
||||
|
||||
ALTER TABLE stock_logs
|
||||
RENAME COLUMN notes TO note;
|
||||
|
||||
-- Drop new columns
|
||||
ALTER TABLE stock_logs
|
||||
DROP COLUMN IF EXISTS increase,
|
||||
DROP COLUMN IF EXISTS decrease;
|
||||
|
||||
-- Restore indexes for old structure
|
||||
CREATE INDEX IF NOT EXISTS stock_logs_product_warehouse_id_idx ON stock_logs (product_warehouse_id);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS stock_logs_log_type_log_id_idx ON stock_logs (log_type, log_id);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS stock_logs_created_by_idx ON stock_logs (created_by);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS stock_logs_created_at_idx ON stock_logs (created_at);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS stock_logs_deleted_at_idx ON stock_logs (deleted_at);
|
||||
|
||||
COMMIT;
|
||||
@@ -0,0 +1,50 @@
|
||||
BEGIN;
|
||||
|
||||
-- Drop old indexes tied to removed columns
|
||||
DROP INDEX IF EXISTS stock_logs_log_type_log_id_idx;
|
||||
DROP INDEX IF EXISTS stock_logs_deleted_at_idx;
|
||||
|
||||
-- Rename columns to new naming
|
||||
ALTER TABLE stock_logs
|
||||
RENAME COLUMN log_type TO loggable_type;
|
||||
|
||||
ALTER TABLE stock_logs
|
||||
RENAME COLUMN log_id TO loggable_id;
|
||||
|
||||
ALTER TABLE stock_logs
|
||||
RENAME COLUMN note TO notes;
|
||||
|
||||
-- Add new increase/decrease columns
|
||||
ALTER TABLE stock_logs
|
||||
ADD COLUMN IF NOT EXISTS increase NUMERIC(15, 3) DEFAULT 0,
|
||||
ADD COLUMN IF NOT EXISTS decrease NUMERIC(15, 3) DEFAULT 0;
|
||||
|
||||
-- Adjust column definitions
|
||||
ALTER TABLE stock_logs
|
||||
ALTER COLUMN loggable_type TYPE VARCHAR(50),
|
||||
ALTER COLUMN loggable_type SET NOT NULL,
|
||||
ALTER COLUMN loggable_id SET NOT NULL,
|
||||
ALTER COLUMN increase SET DEFAULT 0,
|
||||
ALTER COLUMN increase SET NOT NULL,
|
||||
ALTER COLUMN decrease SET DEFAULT 0,
|
||||
ALTER COLUMN decrease SET NOT NULL;
|
||||
|
||||
-- Remove obsolete columns
|
||||
ALTER TABLE stock_logs
|
||||
DROP COLUMN IF EXISTS transaction_type,
|
||||
DROP COLUMN IF EXISTS quantity,
|
||||
DROP COLUMN IF EXISTS before_quantity,
|
||||
DROP COLUMN IF EXISTS after_quantity,
|
||||
DROP COLUMN IF EXISTS updated_at,
|
||||
DROP COLUMN IF EXISTS deleted_at;
|
||||
|
||||
-- Recreate indexes for new structure
|
||||
CREATE INDEX IF NOT EXISTS stock_logs_product_warehouse_id_idx ON stock_logs (product_warehouse_id);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS stock_logs_loggable_type_loggable_id_idx ON stock_logs (loggable_type, loggable_id);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS stock_logs_created_by_idx ON stock_logs (created_by);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS stock_logs_created_at_idx ON stock_logs (created_at);
|
||||
|
||||
COMMIT;
|
||||
Reference in New Issue
Block a user