feat(referrals): rework reward engine + email-verified landing #48
Reference in New Issue
Block a user
Delete Branch "dev"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Reward engine:
tiers capped at 5; idempotent + transactional grants serialised per
referrer so concurrent qualifications can't double-count.
(afterEmailVerification hook); already-verified referees (OAuth) qualify
at apply time.
live subscription, consumed on next trial start / activation (no more
silently lost rewards).
name/masked email/status.
Hardening / cleanup:
register + subscription pages. Input validation on the apply code.
Email verification UX:
page instead of the deep-linked VIN/search page.
Schema: referrals.status + qualified_at, users.referral_credit_days (0009).
Co-Authored-By: Claude Opus 4.7 noreply@anthropic.com