From 7d8fd6e10f839dcccbd8952bf835788dfc3d982c Mon Sep 17 00:00:00 2001 From: Pattadon Date: Tue, 1 Apr 2025 11:06:50 +0700 Subject: [PATCH] feat: create inventory_status table and modify inventory_items to use status_id --- .../00002_create_farm_and_cropland_tables.sql | 2 +- .../migrations/00005_create_inventory_status.sql | 5 +++++ .../migrations/00006_modify_inventory_table.sql | 15 +++++++++++++++ .../migrations/00007_create_inventory_status.sql | 7 +++++++ 4 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 backend/migrations/00005_create_inventory_status.sql create mode 100644 backend/migrations/00006_modify_inventory_table.sql create mode 100644 backend/migrations/00007_create_inventory_status.sql diff --git a/backend/migrations/00002_create_farm_and_cropland_tables.sql b/backend/migrations/00002_create_farm_and_cropland_tables.sql index bd5a114..0dbd026 100644 --- a/backend/migrations/00002_create_farm_and_cropland_tables.sql +++ b/backend/migrations/00002_create_farm_and_cropland_tables.sql @@ -12,7 +12,7 @@ CREATE TABLE soil_conditions ( CREATE TABLE harvest_units ( id SERIAL PRIMARY KEY, name TEXT NOT NULL UNIQUE -); +); CREATE TABLE plants ( uuid UUID PRIMARY KEY DEFAULT gen_random_uuid(), diff --git a/backend/migrations/00005_create_inventory_status.sql b/backend/migrations/00005_create_inventory_status.sql new file mode 100644 index 0000000..4f634f2 --- /dev/null +++ b/backend/migrations/00005_create_inventory_status.sql @@ -0,0 +1,5 @@ +-- +goose Up +CREATE TABLE inventory_status ( + id SERIAL PRIMARY KEY, + name TEXT NOT NULL UNIQUE +); diff --git a/backend/migrations/00006_modify_inventory_table.sql b/backend/migrations/00006_modify_inventory_table.sql new file mode 100644 index 0000000..44fb45c --- /dev/null +++ b/backend/migrations/00006_modify_inventory_table.sql @@ -0,0 +1,15 @@ +-- +goose Up +ALTER TABLE inventory_items +ADD COLUMN status_id INT; + +UPDATE inventory_items +SET status_id = (SELECT id FROM inventory_status WHERE name = inventory_items.status); + +ALTER TABLE inventory_items +DROP COLUMN status; + +ALTER TABLE inventory_items +ADD CONSTRAINT fk_inventory_items_status FOREIGN KEY (status_id) REFERENCES inventory_status(id) ON DELETE CASCADE; + +CREATE INDEX idx_inventory_items_status_id ON inventory_items(status_id); + diff --git a/backend/migrations/00007_create_inventory_status.sql b/backend/migrations/00007_create_inventory_status.sql new file mode 100644 index 0000000..7e54cc9 --- /dev/null +++ b/backend/migrations/00007_create_inventory_status.sql @@ -0,0 +1,7 @@ +-- +goose Up +-- Insert default statuses into the inventory_status table +INSERT INTO inventory_status (name) +VALUES + ('In Stock'), + ('Low Stock'), + ('Out Of Stock'); \ No newline at end of file