-
Mahmoud Aglan authored
- New migration: billing_cycle (one_time/annual), member_price, non_member_price on products; product_installment_plans table (per-product, per-tier plan templates) - ProductInstallmentPlan model with scopeActive/forTier, downPaymentAmount/regularInstallmentAmount helpers - Product model: priceForTier(), isAnnual(), installmentPlans() relationship - ProductForm: annual billing section with member/non-member dual prices and installment plan builder (add/remove rows, upsert on save) - Registration wizard: essentialProducts() and hotbuyResults() now return billing_cycle and plans[]; addHotbuyItem() carries plans into cart; setHotbuyPlan() selects a plan per cart item; confirm() generates PaymentPlan + Installment rows for annual items with a selected plan - Wizard blade: annual cart items show purple "سنوي" badge, plan pills (full payment + per-plan buttons), and installment breakdown preview on selection Co-Authored-By:Claude Sonnet 4.6 <noreply@anthropic.com>
7f4dbddd