erp_be/scripts/patch-asset-subcategories.sql

41 lines
1.3 KiB
SQL

-- Asset Sub-Categories master + assets.asset_subcategory_id
CREATE TABLE IF NOT EXISTS asset_subcategories (
id BIGSERIAL PRIMARY KEY,
asset_category_id BIGINT NOT NULL REFERENCES asset_categories (id),
code VARCHAR(30) NOT NULL UNIQUE,
name VARCHAR(150) NOT NULL,
is_active BOOLEAN NOT NULL DEFAULT true,
created_by BIGINT,
updated_by BIGINT,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
deleted_at TIMESTAMPTZ
);
CREATE INDEX IF NOT EXISTS idx_asset_subcategories_category_id
ON asset_subcategories (asset_category_id);
ALTER TABLE assets
ADD COLUMN IF NOT EXISTS asset_subcategory_id BIGINT;
DO $$
BEGIN
IF NOT EXISTS (
SELECT 1
FROM pg_constraint
WHERE conname = 'assets_asset_subcategory_id_fkey'
) THEN
ALTER TABLE assets
ADD CONSTRAINT assets_asset_subcategory_id_fkey
FOREIGN KEY (asset_subcategory_id)
REFERENCES asset_subcategories (id);
END IF;
END $$;
CREATE INDEX IF NOT EXISTS idx_assets_subcategory_id
ON assets (asset_subcategory_id);
COMMENT ON TABLE asset_subcategories IS 'Asset sub-categories under asset_categories';
COMMENT ON COLUMN assets.asset_subcategory_id IS 'Required for new assets via API; nullable for legacy rows';