CREATE TYPE currency_code_type AS ENUM ( 'USD', -- United States Dollar 'EUR', -- Euro 'GBP', -- British Pound Sterling 'JPY', -- Japanese Yen 'CAD', -- Canadian Dollar 'AUD', -- Australian Dollar 'CNY', -- Chinese Yuan 'INR', -- Indian Rupee 'BRL', -- Brazilian Real 'MXN' -- Mexican Peso ); CREATE TYPE payment_status AS ENUM ( 'pending', 'completed', 'failed', 'refunded', 'partially_refunded', 'disputed', 'canceled' ); CREATE TABLE daily_revenue ( id INTEGER PRIMARY KEY, date DATE NOT NULL, revenue_source revenue_source_type NOT NULL, gross_amount NUMERIC(15,2) NOT NULL CHECK (gross_amount >= 0), net_amount NUMERIC(15,2) NOT NULL CHECK (net_amount >= 0), currency currency_code_type, transaction_count INTEGER NOT NULL CHECK (transaction_count >= 0), notes TEXT, CHECK (net_amount <= gross_amount), CHECK (gross_amount >= processing_fees + tax_amount), CHECK (date <= CURRENT_DATE), CONSTRAINT unique_daily_source UNIQUE (date, revenue_source) );