Implement a comprehensive rewards and loyalty program including customer points balance, earned points, and a system for defining and managing rewards (e.g., discounts, free items) with associated costs and types.
### Database Requirements - Create `customers` table (id, name, email, phone, points_balance, total_points_earned, created_at) - Create `rewards` table (id, name, description, points_cost, reward_type, discount_value, menu_item_id nullable, active) - Create `points_transactions` table (id, customer_id, order_id nullable, points_change, transaction_type, description, created_at) - Seed `rewards` table with starter rewards: - 50 points — $1 off any drink - 100 points — free topping add-on - 150 points — free size upgrade - 250 points — free drink (up to $6 value) ### Backend API - `POST /api/rewards/lookup` — look up a customer by phone number or email, return their profile and points balance - `GET /api/rewards/catalog` — return all active rewards available for redemption - `POST /api/rewards/enroll` — create a new rewards member (name, email, phone) - `POST /api/rewards/redeem` — redeem a reward, deduct points, apply discount to the current order - Update `POST /api/orders` t