billing frontend for mariadb. setup as otb_billing for outsidethebox.top accounting. also involved with outsidethedb
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

51 lines
2.7 KiB

ALTER TABLE payments
ADD COLUMN IF NOT EXISTS txid VARCHAR(255) NULL AFTER reference,
ADD COLUMN IF NOT EXISTS payment_network VARCHAR(64) NULL AFTER payment_currency,
ADD COLUMN IF NOT EXISTS payment_asset VARCHAR(32) NULL AFTER payment_network,
ADD COLUMN IF NOT EXISTS expected_amount_cad DECIMAL(18,8) NULL AFTER cad_value_at_payment,
ADD COLUMN IF NOT EXISTS received_amount_cad DECIMAL(18,8) NULL AFTER expected_amount_cad,
ADD COLUMN IF NOT EXISTS first_seen_at DATETIME NULL AFTER updated_at,
ADD COLUMN IF NOT EXISTS last_checked_at DATETIME NULL AFTER first_seen_at,
ADD COLUMN IF NOT EXISTS alert_24_sent_at DATETIME NULL AFTER last_checked_at,
ADD COLUMN IF NOT EXISTS alert_48_sent_at DATETIME NULL AFTER alert_24_sent_at,
ADD COLUMN IF NOT EXISTS success_after_alert_sent_at DATETIME NULL AFTER alert_48_sent_at,
ADD COLUMN IF NOT EXISTS urgent_alert_sent_at DATETIME NULL AFTER success_after_alert_sent_at,
ADD COLUMN IF NOT EXISTS overpayment_email_sent_at DATETIME NULL AFTER urgent_alert_sent_at,
ADD COLUMN IF NOT EXISTS review_status VARCHAR(64) NOT NULL DEFAULT 'pending' AFTER payment_status,
ADD COLUMN IF NOT EXISTS review_notes TEXT NULL AFTER notes;
ALTER TABLE invoices
ADD COLUMN IF NOT EXISTS paid_via_method VARCHAR(64) NULL AFTER status,
ADD COLUMN IF NOT EXISTS paid_via_asset VARCHAR(32) NULL AFTER paid_via_method,
ADD COLUMN IF NOT EXISTS paid_via_network VARCHAR(64) NULL AFTER paid_via_asset;
CREATE TABLE IF NOT EXISTS payment_reconciliation_events (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
payment_id INT UNSIGNED NOT NULL,
invoice_id INT UNSIGNED NOT NULL,
event_type VARCHAR(64) NOT NULL,
event_status VARCHAR(64) NOT NULL DEFAULT 'open',
details LONGTEXT NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
handled_at DATETIME NULL,
handled_by VARCHAR(128) NULL,
handled_notes TEXT NULL,
KEY idx_pre_payment_id (payment_id),
KEY idx_pre_invoice_id (invoice_id),
KEY idx_pre_event_type (event_type),
KEY idx_pre_event_status (event_status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS crypto_reconciliation_runs (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
run_mode VARCHAR(32) NOT NULL,
started_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
finished_at DATETIME NULL,
scanned_count INT NOT NULL DEFAULT 0,
resolved_count INT NOT NULL DEFAULT 0,
flagged_count INT NOT NULL DEFAULT 0,
notes TEXT NULL,
KEY idx_crr_run_mode (run_mode),
KEY idx_crr_started_at (started_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;