BEGIN; -- ======================= -- LABELS -- ======================= CREATE TABLE IF NOT EXISTS labels ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), name VARCHAR(255) NOT NULL, color VARCHAR(16), -- HEX color code (e.g., #FF0000) created_at TIMESTAMP WITHOUT TIME ZONE DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP WITHOUT TIME ZONE DEFAULT CURRENT_TIMESTAMP ); CREATE TRIGGER trg_labels_updated_at BEFORE UPDATE ON labels FOR EACH ROW EXECUTE FUNCTION set_updated_at(); -- ======================= -- PRIORITIES -- ======================= CREATE TABLE IF NOT EXISTS priorities ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), name VARCHAR(255) NOT NULL, level INT NOT NULL, created_at TIMESTAMP WITHOUT TIME ZONE DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP WITHOUT TIME ZONE DEFAULT CURRENT_TIMESTAMP ); CREATE TRIGGER trg_priorities_updated_at BEFORE UPDATE ON priorities FOR EACH ROW EXECUTE FUNCTION set_updated_at(); -- ======================= -- INSTITUTIONS -- ======================= CREATE TABLE IF NOT EXISTS institutions ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), name VARCHAR(255) NOT NULL, type TEXT NOT NULL CHECK (type IN ('government','private','ngo','individual')), address TEXT, contact_person VARCHAR(255), phone VARCHAR(50), email VARCHAR(255), created_at TIMESTAMP WITHOUT TIME ZONE DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP WITHOUT TIME ZONE DEFAULT CURRENT_TIMESTAMP ); CREATE TRIGGER trg_institutions_updated_at BEFORE UPDATE ON institutions FOR EACH ROW EXECUTE FUNCTION set_updated_at(); COMMIT;