CREATE TABLE ailbl_tag (
    ID VARCHAR(64) PRIMARY KEY,
    Tag VARCHAR(128) NOT NULL,
    Kind SMALLINT NOT NULL,  -- Giá trị 1 đến 6 như mô tả
    Ref VARCHAR(36),         -- Tham chiếu động theo Kind
    primary_color VARCHAR(8), -- Mã màu chính (Hex)
    secondary_color VARCHAR(8), -- Mã màu phụ (Hex)
    Created timestamptz NOT NULL DEFAULT CURRENT_TIMESTAMP, -- UTC
    Modified timestamptz NOT NULL DEFAULT CURRENT_TIMESTAMP, -- UTC
    CONSTRAINT unique_tag_kind_ref UNIQUE (Tag, Kind, Ref)
);

CREATE TABLE ailbl_tag_ref (
    ID VARCHAR(64) PRIMARY KEY,
    tag_id VARCHAR(64) NOT NULL,
    Ref VARCHAR(64) NOT NULL,
    sub_ref VARCHAR(1024),
    CONSTRAINT unique_tagid_ref UNIQUE (TagId, Ref),
    CONSTRAINT fk_tagref_tag FOREIGN KEY (TagId) REFERENCES ailbl_tag(ID) ON DELETE CASCADE
);
