DELETE FROM privacy_data_inventory
WHERE table_name IN (
    'card_processor_configs',
    'card_pci_scope_assessments',
    'card_tokenization_policies',
    'card_authorization_ledger_events',
    'cardholder_notifications',
    'card_disputes'
);

ALTER TABLE cardholder_notifications
    DROP CONSTRAINT IF EXISTS cardholder_notifications_dispute_fk;

DROP TABLE IF EXISTS card_disputes;
DROP TRIGGER IF EXISTS cardholder_notifications_set_updated_at ON cardholder_notifications;
DROP TABLE IF EXISTS cardholder_notifications;
DROP TABLE IF EXISTS card_authorization_ledger_events;

DROP INDEX IF EXISTS card_authorizations_expires_at_idx;

ALTER TABLE card_authorizations
    DROP CONSTRAINT IF EXISTS card_authorizations_status_check;

DELETE FROM card_authorizations
WHERE status IN ('expired', 'disputed');

ALTER TABLE card_authorizations
    ADD CONSTRAINT card_authorizations_status_check CHECK (status IN ('approved', 'declined', 'cleared', 'reversed'));

ALTER TABLE card_authorizations
    DROP COLUMN IF EXISTS expires_at,
    DROP COLUMN IF EXISTS cleared_at,
    DROP COLUMN IF EXISTS reversed_at,
    DROP COLUMN IF EXISTS disputed_at,
    DROP COLUMN IF EXISTS ledger_status;

DROP INDEX IF EXISTS virtual_cards_card_token_idx;

ALTER TABLE virtual_cards
    DROP COLUMN IF EXISTS provider_config_id,
    DROP COLUMN IF EXISTS tokenization_policy_id,
    DROP COLUMN IF EXISTS card_token,
    DROP COLUMN IF EXISTS tokenization_status,
    DROP COLUMN IF EXISTS token_key_reference,
    DROP COLUMN IF EXISTS pci_scope_classification;

DROP TRIGGER IF EXISTS card_tokenization_policies_set_updated_at ON card_tokenization_policies;
DROP TABLE IF EXISTS card_tokenization_policies;

DROP TRIGGER IF EXISTS card_pci_scope_assessments_set_updated_at ON card_pci_scope_assessments;
DROP TABLE IF EXISTS card_pci_scope_assessments;

DROP TRIGGER IF EXISTS card_processor_configs_set_updated_at ON card_processor_configs;
DROP TABLE IF EXISTS card_processor_configs;
