BEGIN;

ALTER TABLE IF EXISTS settings.financial_periods
    ADD COLUMN IF NOT EXISTS reopened_at timestamp without time zone,
    ADD COLUMN IF NOT EXISTS reopened_by uuid,
    ADD COLUMN IF NOT EXISTS close_reason text,
    ADD COLUMN IF NOT EXISTS reopen_reason text,
    ADD COLUMN IF NOT EXISTS metadata jsonb NOT NULL DEFAULT '{}'::jsonb;

CREATE INDEX IF NOT EXISTS idx_financial_periods_posting_guard
    ON settings.financial_periods (tenant_id, start_date, end_date, status)
    WHERE deleted_at IS NULL;

CREATE INDEX IF NOT EXISTS idx_financial_periods_status
    ON settings.financial_periods (tenant_id, status)
    WHERE deleted_at IS NULL;

COMMIT;
