-- v4.1 — Global Invoice (Factura Global Mensual) -- Supports grouping cash sales (<= $2,000) into a single monthly CFDI. -- Link global invoices to their constituent sales CREATE TABLE IF NOT EXISTS global_invoice_sales ( global_invoice_id INTEGER NOT NULL REFERENCES cfdi_queue(id) ON DELETE CASCADE, sale_id INTEGER NOT NULL REFERENCES sales(id) ON DELETE CASCADE, PRIMARY KEY (global_invoice_id, sale_id) ); CREATE INDEX IF NOT EXISTS idx_gis_global ON global_invoice_sales(global_invoice_id); CREATE INDEX IF NOT EXISTS idx_gis_sale ON global_invoice_sales(sale_id); -- Track which sales have been included in any global invoice -- (quick lookup without joining global_invoice_sales) ALTER TABLE sales ADD COLUMN IF NOT EXISTS global_invoiced_at TIMESTAMPTZ; CREATE INDEX IF NOT EXISTS idx_sales_global_invoiced_at ON sales(global_invoiced_at) WHERE global_invoiced_at IS NULL;