-- QRIS Payment Migration
-- Add QRIS fields to pembayaran table

ALTER TABLE pembayaran 
ADD COLUMN IF NOT EXISTS qris_qr_code TEXT NULL COMMENT 'QRIS QR code content',
ADD COLUMN IF NOT EXISTS qris_invoiceid VARCHAR(100) NULL COMMENT 'QRIS Invoice ID untuk check status',
ADD COLUMN IF NOT EXISTS qris_nmid VARCHAR(100) NULL COMMENT 'QRIS NMID dari API',
ADD COLUMN IF NOT EXISTS qris_request_date DATETIME NULL COMMENT 'Tanggal request QRIS invoice',
ADD COLUMN IF NOT EXISTS qris_expired_at DATETIME NULL COMMENT 'QRIS expiration timestamp (30 menit dari request)',
ADD COLUMN IF NOT EXISTS qris_check_count INT DEFAULT 0 COMMENT 'Jumlah check status (max 3 untuk user-triggered)',
ADD COLUMN IF NOT EXISTS qris_last_check_at DATETIME NULL COMMENT 'Last check status timestamp',
ADD COLUMN IF NOT EXISTS qris_status ENUM('unpaid', 'paid', 'expired') DEFAULT 'unpaid' COMMENT 'Status pembayaran QRIS',
ADD COLUMN IF NOT EXISTS qris_payment_method VARCHAR(50) NULL COMMENT 'Metode pembayaran e-wallet (gopay, dana, ovo, dll)',
ADD COLUMN IF NOT EXISTS qris_payment_customer_name VARCHAR(255) NULL COMMENT 'Nama customer dari e-wallet',
ADD COLUMN IF NOT EXISTS qris_paid_at DATETIME NULL COMMENT 'Tanggal pembayaran QRIS';

-- Index untuk performa query
CREATE INDEX IF NOT EXISTS idx_qris_invoiceid ON pembayaran(qris_invoiceid);
CREATE INDEX IF NOT EXISTS idx_qris_status ON pembayaran(qris_status);
CREATE INDEX IF NOT EXISTS idx_qris_expired_at ON pembayaran(qris_expired_at);
