8 lines
966 B
SQL
8 lines
966 B
SQL
CREATE TABLE mi_draft_meta(policy text PRIMARY KEY,composition text NOT NULL,source_hash char(64) NOT NULL);
|
|
CREATE TABLE mi_drafts(id bigserial PRIMARY KEY,tenant_id bigint NOT NULL,company_id bigint NOT NULL,unit_id bigint NOT NULL,draft_id bigint UNIQUE NOT NULL REFERENCES a_billing_drafts(id),source_id bigint UNIQUE NOT NULL REFERENCES a_service_drafts(id),actor_id bigint NOT NULL REFERENCES users(id),created_at timestamptz NOT NULL,FOREIGN KEY(tenant_id,company_id,unit_id) REFERENCES units(tenant_id,company_id,id));
|
|
CREATE TRIGGER mi_draft_meta_immutable BEFORE UPDATE OR DELETE ON mi_draft_meta FOR EACH ROW EXECUTE FUNCTION mi_append_only();
|
|
CREATE TRIGGER mi_drafts_immutable BEFORE UPDATE OR DELETE ON mi_drafts FOR EACH ROW EXECUTE FUNCTION mi_append_only();
|
|
CREATE INDEX mi_drafts_scope ON mi_drafts(tenant_id,company_id,unit_id,id DESC);
|
|
REVOKE ALL ON TABLE mi_draft_meta,mi_drafts FROM PUBLIC;
|
|
REVOKE ALL ON SEQUENCE mi_drafts_id_seq FROM PUBLIC;
|