borismassesa avatar

vendor-management

Manage wedding vendors including registration, profiles, services, and communication. Use when worki

提供方 borismassesa|开源

Vendor Management

Vendor Data Model

Core Tables

TablePurpose
vendorsVendor profiles (name, bio, location, status, contact)
vendor_servicesService offerings with pricing in TZS
vendor_categoriesService categories (photography, catering, venue, etc.)
vendor_reviewsClient reviews with rating
vendor_mediaPortfolio images and videos
vendor_availabilityCalendar availability and blocked dates

Vendor Status Lifecycle

pending → under_review → approved → active
                       ↘ rejected (can resubmit)
active → suspended (policy violation)

Service Categories

CategoryDescription
PhotographyWedding photographers and videographers
VenueReception halls, gardens, beach venues
CateringFood and beverage services
DecorationFlowers, decor, lighting
Music & EntertainmentDJs, live bands, ngoma groups
FashionBridal wear, suits, kitenge designers
BeautyHair, makeup, mehndi artists
PlanningFull-service wedding planners
TransportWedding cars, guest transport
CakeWedding cakes and desserts

Database Operations

Vendor Search & Filtering

const { data } = await supabase
  .from('vendors')
  .select('*, vendor_services(name, price_min, price_max), vendor_reviews(rating)')
  .eq('status', 'active')
  .eq('category', 'photography')
  .gte('vendor_services.price_min', minBudget)
  .lte('vendor_services.price_max', maxBudget)
  .order('rating_avg', { ascending: false })
  .range(0, 19)

Vendor CRUD

// Create vendor (during onboarding)
await supabase.from('vendors').insert({
  clerk_user_id: userId,
  business_name: name,
  category: 'photography',
  location: 'Dar es Salaam',
  status: 'pending',
})

// Update vendor status (admin moderation)
await supabase.from('vendors')
  .update({ status: 'approved', approved_at: new Date().toISOString() })
  .eq('id', vendorId)

Admin Moderation

  • Bulk approve/reject from admin vendor list
  • Flag vendors for policy violations
  • View vendor analytics and performance metrics
  • Export vendor data for reporting