erp_be/scripts/patch-terms-notes.sql

36 lines
1.1 KiB
PL/PgSQL

-- terms_notes: default terms & conditions / notes per document type.
-- One row per type (PO, INVOICE, ...). Idempotent.
BEGIN;
CREATE TABLE IF NOT EXISTS terms_notes (
id BIGSERIAL PRIMARY KEY,
type VARCHAR(30) NOT NULL,
notes TEXT 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 UNIQUE INDEX IF NOT EXISTS terms_notes_type_key ON terms_notes(type);
ALTER TABLE terms_notes DROP CONSTRAINT IF EXISTS terms_notes_type_check;
ALTER TABLE terms_notes
ADD CONSTRAINT terms_notes_type_check
CHECK (type IN ('PO', 'INVOICE'));
ALTER TABLE terms_notes DROP CONSTRAINT IF EXISTS fk_terms_notes_created_by;
ALTER TABLE terms_notes
ADD CONSTRAINT fk_terms_notes_created_by FOREIGN KEY (created_by) REFERENCES users(id);
ALTER TABLE terms_notes DROP CONSTRAINT IF EXISTS fk_terms_notes_updated_by;
ALTER TABLE terms_notes
ADD CONSTRAINT fk_terms_notes_updated_by FOREIGN KEY (updated_by) REFERENCES users(id);
COMMIT;
-- Verify:
-- SELECT * FROM terms_notes;