feat(cleaning): close settlement integrity and reconciliation
This commit is contained in:
@@ -111,6 +111,15 @@ const adminAuthVerifySql = read('database/migrations/2026081004_m08d_admin_passw
|
||||
const cleaningRulesUpSql = read('database/migrations/2026081005_m09b_cleaning_rules.up.sql');
|
||||
const cleaningRulesDownSql = read('database/migrations/2026081005_m09b_cleaning_rules.down.sql');
|
||||
const cleaningRulesVerifySql = read('database/migrations/2026081005_m09b_cleaning_rules.verify.sql');
|
||||
const cleaningSettlementIntegrityUpSql = read(
|
||||
'database/migrations/2026081006_m09c_cleaning_settlement_integrity.up.sql'
|
||||
);
|
||||
const cleaningSettlementIntegrityDownSql = read(
|
||||
'database/migrations/2026081006_m09c_cleaning_settlement_integrity.down.sql'
|
||||
);
|
||||
const cleaningSettlementIntegrityVerifySql = read(
|
||||
'database/migrations/2026081006_m09c_cleaning_settlement_integrity.verify.sql'
|
||||
);
|
||||
|
||||
const coreTables = [
|
||||
'qipai_schema_migrations',
|
||||
@@ -507,7 +516,24 @@ assert.match(cleaningRulesUpSql, /uq_qipai_cleaning_submission_revision/);
|
||||
assert.match(cleaningRulesUpSql, /retention_until DATETIME\(3\) NOT NULL/);
|
||||
assert.match(cleaningRulesDownSql, /DROP FOREIGN KEY fk_qipai_cleaning_tasks_template/);
|
||||
assert.match(cleaningRulesVerifySql, /'2026081005'/);
|
||||
for (const table of [
|
||||
'qipai_cleaning_settlement_events', 'qipai_cleaning_settlement_reversals'
|
||||
]) {
|
||||
assert.match(cleaningSettlementIntegrityUpSql, new RegExp('CREATE TABLE IF NOT EXISTS ' + table));
|
||||
assert.match(cleaningSettlementIntegrityDownSql, new RegExp('DROP TABLE IF EXISTS ' + table));
|
||||
assert.match(cleaningSettlementIntegrityVerifySql, new RegExp("'" + table + "'"));
|
||||
}
|
||||
assert.match(cleaningSettlementIntegrityUpSql, /amount_delta_cents BIGINT NOT NULL/);
|
||||
assert.match(cleaningSettlementIntegrityUpSql, /ADD COLUMN cancelled_by/);
|
||||
assert.match(cleaningSettlementIntegrityUpSql, /ADD COLUMN cancelled_at/);
|
||||
assert.match(cleaningSettlementIntegrityUpSql, /ADD COLUMN payout_request_no/);
|
||||
assert.match(cleaningSettlementIntegrityUpSql, /GENERATED ALWAYS AS/);
|
||||
assert.match(cleaningSettlementIntegrityUpSql, /uq_qipai_cleaning_settlement_active_share/);
|
||||
assert.match(cleaningSettlementIntegrityUpSql, /uq_qipai_cleaning_settlement_payout_request/);
|
||||
assert.match(cleaningSettlementIntegrityDownSql, /DROP FOREIGN KEY fk_qipai_cleaning_settlement_items_reversal/);
|
||||
assert.match(cleaningSettlementIntegrityDownSql, /ADD UNIQUE KEY uq_qipai_cleaning_settlement_item_task_user/);
|
||||
assert.match(cleaningSettlementIntegrityVerifySql, /'2026081006'/);
|
||||
assert.match(franchiseDownSql, /DROP TABLE IF EXISTS qipai_franchise_follow_ups/);
|
||||
assert.match(franchiseVerifySql, /idx_qipai_franchise_follow_up_history/);
|
||||
|
||||
console.log('PASS: M01-B through M09-B migration contracts are present.');
|
||||
console.log('PASS: M01-B through M09-C migration contracts are present.');
|
||||
|
||||
Reference in New Issue
Block a user