SQL

CREATE TABLE agent_monthly_payments  (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  agent_id INTEGER NOT NULL,
  customer_id INTEGER NOT NULL,
  invoice_id INTEGER NOT NULL,
  payment_amount DECIMAL(15,2) NOT NULL,
  commission_amount DECIMAL(15,2) DEFAULT 0.00,
  payment_method TEXT DEFAULT 'cash',
  notes TEXT,
  status TEXT DEFAULT 'completed' CHECK (status IN ('completed', 'cancelled')),
  paid_at DATETIME DEFAULT CURRENT_TIMESTAMP,
  FOREIGN KEY (agent_id) REFERENCES agents(id) ON DELETE CASCADE,
  FOREIGN KEY (customer_id) REFERENCES customers(id) ON DELETE CASCADE,
  FOREIGN KEY (invoice_id) REFERENCES invoices(id) ON DELETE CASCADE
)

+ Add column

Columns

Column Data type Allow null Primary key Actions
id INTEGER Rename | Drop
agent_id INTEGER Rename | Drop
customer_id INTEGER Rename | Drop
invoice_id INTEGER Rename | Drop
payment_amount DECIMAL(15,2) Rename | Drop
commission_amount DECIMAL(15,2) Rename | Drop
payment_method TEXT Rename | Drop
notes TEXT Rename | Drop
status TEXT Rename | Drop
paid_at DATETIME Rename | Drop

Foreign Keys

Column Destination
invoice_id invoices.id
customer_id customers.id
agent_id agents.id

+ Add index

Indexes

Name Columns Unique SQL Drop?
idx_agent_monthly_payments_agent_id agent_id SQL
CREATE INDEX idx_agent_monthly_payments_agent_id
ON agent_monthly_payments(agent_id)
Drop