• Mahmoud Aglan's avatar
    feat(pricing+subscriptions): multi-tier board offers + fix first-year subscription logic · cb63de72
    Mahmoud Aglan authored
    Board Offers:
    - Add board_offer_tiers table for multiple payment plans per offer
    - Each offer now supports 4 tiers: cash (10% discount), 24mo/0%, 40mo/15%, 60mo/15%
    - View shows all tiers as selectable cards with pre-calculated breakdowns
    - Controller accepts offer_tier_id and uses tier-specific terms
    - Seed populates tiers for all active board offers
    - Legacy fallback preserved when no tiers are configured
    
    Subscription Fix:
    - First-year members no longer get subscription rows (membership fee covers current FY)
    - First-year dependents no longer get subscription rows (addition fee covers current FY)
    - MembershipValidationService bypasses subscription check for first-year members
    - AutoFreezeService.checkSubscriptionBlock bypasses for first-year members
    - MembershipRulesService.canPrintCarnet bypasses for first-year members
    - SubscriptionGenerator skips first-year members/dependents entirely
    - Individual subscription pay() now redirects to payYear() (all-or-nothing family payment)
    Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
    cb63de72
Phase_100_001_seed_board_offer_tiers.php 2.37 KB