v4.44.30 PRE-MEMBER DISCOUNT DEEP RECONCILIATION

ROOT CAUSE
1. Extended Monitor mengenali pilihan POS 'pre:' dan menghitung diskon aktivasi Pra-Member.
2. Backend mengubah sumber itu menjadi source_type='quick_activation_pre_member'.
3. membership_card_creation_discount_snapshot() hanya menerima source_type='pre_member'.
Akibatnya monitor menampilkan NET yang benar, tetapi server menyimpan membership tanpa diskon. Dashboard dan struk kemudian membaca nilai server yang salah.

ROOT CAUSE TAMBAHAN
ensure_v44413_schema() masih memaksa membership_creation_discount_enabled=0 setiap schema-chain dijalankan. Ini dapat mematikan setting diskon yang sudah dipulihkan v4.44.21.

PERBAIKAN
- Canonical eligibility menerima tepat dua representasi Pra-Member: pre_member dan quick_activation_pre_member.
- Sumber lain tetap tidak mendapat diskon: manual, public_registration, non_member, quick_activation_member, quick_activation_registration, renewal.
- ensure_v44413_schema() dibuat non-destruktif (INSERT IGNORE), sehingga setting Branding tidak lagi di-reset oleh schema-chain.
- membership_effective_net_sql() menggunakan nilai net paling konservatif antara tmi.amount dan membership_sales.total_amount.
- Upgrade melakukan targeted repair HANYA untuk embedded POS source_type=quick_activation_pre_member yang paid, card_creation_discount_amount=0, dan diskon Branding aktif.
- Repair menyelaraskan membership_sales, transaction_membership_items, transactions subtotal/total/tax/payment/change.
- Tidak menyentuh renewal atau aktivasi non-Pra-Member.
- Receipt/thermal/membership receipt memakai istilah Diskon Aktivasi Pra-Member.

VERIFIKASI WAJIB
Pra-Member: Extended Monitor = POS = transaction.total_amount = receipt = thermal = dashboard membership net.
Non-Pra-Member dan renewal: tidak menerima diskon aktivasi Pra-Member.
