This morning we built the admin dashboard — tonight we put it to work. No new barber should appear in search until you've checked them. This prompt adds the verification gate that keeps ClipBook trustworthy. 🛡️
Paste this into Claude Code / Cursor (agent mode):
```
Add the barber verification system to ClipBook, building on this morning's admin dashboard (Day 13A).
1. Verification status:
- Add a verification_status column to barber_profiles: 'pending_verification' | 'approved' | 'rejected', default 'pending_verification' for every new barber signup.
- Update the discover page (Day 4A) and search queries so ONLY barbers with status 'approved' appear in results. Pending and rejected barbers are completely invisible to customers.
- A pending barber visiting their own profile sees a banner: "Your profile is under review — you'll appear in search once approved."
2. Admin verification queue at /admin/verification (admin-only, same role check as Day 13A):
- Table of all barbers with status 'pending_verification', newest first.
- Each row shows: name, business name, location, services count, joined date, and a "Review" button.
- Clicking Review opens a profile preview: cover photo, avatar, bio, service list, and service area — everything a customer would eventually see.
3. Approve / Reject flows:
- Approve button → sets verification_status to 'approved', the profile goes live in search immediately, and a welcome email goes out (reuse the Day 12A email template: "You're live on ClipBook!").
- Reject button → opens a required reason field (e.g. "Incomplete profile", "Photos unclear", "Service area missing"). Sets status to 'rejected' and shows the reason to the barber on their dashboard, with a "Resubmit for review" button that flips them back to 'pending_verification'.
- Both actions are admin-only: enforce with the same server-side role check, not just hidden buttons.
4. Edge cases:
- A rejected barber who resubmits goes to the back of the queue, not the front.
- Existing approved barbers are never affected by this change (backfill their status to 'approved' in the migration).
- The queue shows a count badge in the admin nav so you notice new signups.
Acceptance criteria:
- A pending barber does NOT appear in /discover, even with the URL typed directly or filters cleared.
- Approving a barber makes them appear in search within the same session (no cache tricks needed).
- Rejecting with a reason shows that exact reason on the barber's dashboard, and resubmitting returns them to the queue.
- A customer or barber visiting /admin/verification is redirected to /dashboard.
- `npm run build` passes with no errors.
```
What you'll get when it works 👇