52 lines
1.6 KiB
PL/PgSQL
52 lines
1.6 KiB
PL/PgSQL
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; |