av: clone broadcastbeat sources + AV Beat rebrand (Phase 1)

- Replaces the prior Rocket scaffold (saved on pre-bb-clone-rollback branch)
- Domain: broadcastbeat.com -> avbeat.com
- Brand: Broadcast Beat -> AV Beat
- Slug: broadcastbeat -> avbeat (package, identifiers)
- Schema fallback: bb -> av (env var name unchanged)
- Placeholder AV BEAT logo (gold->red gradient) at /assets/logos/av.svg
- All BB/RMP logo references repointed

Outstanding before public DNS swap:
  - Supabase av schema bootstrap (mirror of bb tables)
  - WordPress archive import (avbeat-com -> av.articles)
  - Coolify env vars
  - dev-avbeat.onsethost.com staging deploy + visual review
This commit is contained in:
Claude
2026-06-02 15:32:56 +00:00
parent dd93a74bdf
commit d43f78b161
137 changed files with 4728 additions and 4541 deletions

View File

@@ -22,7 +22,7 @@ async function sendEmail(payload: MarketplaceEmailPayload): Promise<void> {
export async function sendProfileApprovedEmail(to: string, name: string): Promise<void> {
await sendEmail({
to,
subject: 'Your Broadcast Beat Marketplace Profile is Approved!',
subject: 'Your AV Beat Marketplace Profile is Approved!',
html: `
<div style="font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto; background: #0d0d0d; color: #fff; padding: 32px; border-radius: 8px;">
<div style="text-align: center; margin-bottom: 24px;">
@@ -32,7 +32,7 @@ export async function sendProfileApprovedEmail(to: string, name: string): Promis
<h2 style="color: #fff; font-size: 20px;">Welcome to the Marketplace, ${name}!</h2>
<p style="color: #ccc; line-height: 1.6;">
Your profile has been reviewed and approved by our team. You are now live in the
Broadcast Beat Production Marketplace and visible to clients, employers, and production companies.
AV Beat Production Marketplace and visible to clients, employers, and production companies.
</p>
<div style="background: #1a1a1a; border-left: 4px solid #CC0000; padding: 16px; margin: 24px 0; border-radius: 4px;">
<p style="color: #fff; margin: 0; font-weight: bold;">Next Steps:</p>
@@ -47,8 +47,8 @@ export async function sendProfileApprovedEmail(to: string, name: string): Promis
View Your Profile
</a>
<p style="color: #666; font-size: 12px; margin-top: 32px;">
Broadcast Beat — Official NAB Show Media Partner<br>
<a href="${process.env.NEXT_PUBLIC_SITE_URL}" style="color: #CC0000;">broadcastbeat.com</a>
AV Beat — Official NAB Show Media Partner<br>
<a href="${process.env.NEXT_PUBLIC_SITE_URL}" style="color: #CC0000;">avbeat.com</a>
</p>
</div>
`,
@@ -62,7 +62,7 @@ export async function sendProfileRejectedEmail(
): Promise<void> {
await sendEmail({
to,
subject: 'Update Required: Your Broadcast Beat Marketplace Profile',
subject: 'Update Required: Your AV Beat Marketplace Profile',
html: `
<div style="font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto; background: #0d0d0d; color: #fff; padding: 32px; border-radius: 8px;">
<div style="text-align: center; margin-bottom: 24px;">
@@ -86,7 +86,7 @@ export async function sendProfileRejectedEmail(
Update My Profile
</a>
<p style="color: #666; font-size: 12px; margin-top: 32px;">
Questions? Reply to this email or contact us at <a href="mailto:marketplace@broadcastbeat.com" style="color: #CC0000;">marketplace@broadcastbeat.com</a>
Questions? Reply to this email or contact us at <a href="mailto:marketplace@avbeat.com" style="color: #CC0000;">marketplace@avbeat.com</a>
</p>
</div>
`,
@@ -112,7 +112,7 @@ export async function sendListingConfirmationEmail(
Your ${listingType === 'job' ? 'Job Post' : 'Gig Request'} is Live!
</h2>
<p style="color: #ccc; line-height: 1.6;">
<strong style="color: #fff;">"${title}"</strong> has been posted to the Broadcast Beat Marketplace
<strong style="color: #fff;">"${title}"</strong> has been posted to the AV Beat Marketplace
and is now visible to our network of broadcast and production professionals.
</p>
<a href="${process.env.NEXT_PUBLIC_SITE_URL}/marketplace/${listingType === 'job' ? 'jobs' : 'gigs'}"
@@ -120,7 +120,7 @@ export async function sendListingConfirmationEmail(
View ${listingType === 'job' ? 'Job Board' : 'Gig Board'}
</a>
<p style="color: #666; font-size: 12px; margin-top: 32px;">
Broadcast Beat — Official NAB Show Media Partner
AV Beat — Official NAB Show Media Partner
</p>
</div>
`,