export enum UserRole { VISITOR = 'VISITOR', ENTREPRENEUR = 'ENTREPRENEUR', ADMIN = 'ADMIN' } export interface User { id: string; name: string; email: string; role: UserRole; avatar?: string; phone?: string; bio?: string; location?: string; countryId?: string; country?: Country; isSuspended?: boolean; suspensionReason?: string; } export interface SocialLinks { facebook?: string; linkedin?: string; instagram?: string; website?: string; } export interface Country { id: string; name: string; code: string; flag?: string; isActive: boolean; } export interface Business { id: string; ownerId: string; name: string; slug?: string; category: string; location: string; // Legacy: City, Country countryId?: string; country?: Country; city?: string; description: string; logoUrl: string; videoUrl?: string; // YouTube/Vimeo link socialLinks?: SocialLinks; contactEmail: string; contactPhone?: string; websiteUrl?: string; showEmail: boolean; showPhone: boolean; showSocials: boolean; isActive: boolean; verified: boolean; viewCount: number; rating: number; tags: string[]; isSuspended?: boolean; suspensionReason?: string; // New fields for "Entrepreneur of the Month" isFeatured?: boolean; founderName?: string; founderImageUrl?: string; keyMetric?: string; // "3000 clients delivered" offers?: Offer[]; // Joined from database or from mocks } export enum OfferType { PRODUCT = 'PRODUCT', SERVICE = 'SERVICE' } export interface Offer { id: string; businessId: string; title: string; type: OfferType; price: number; currency: 'EUR' | 'XOF'; description?: string; imageUrl: string; active: boolean; } export interface BlogPost { id: string; title: string; excerpt: string; content: string; author: string; date: string; imageUrl: string; } export enum InterviewType { VIDEO = 'VIDEO', ARTICLE = 'ARTICLE' } export interface Interview { id: string; title: string; guestName: string; companyName: string; role: string; type: InterviewType; thumbnailUrl: string; videoUrl?: string; content?: string; excerpt: string; date: string; duration?: string; // e.g. "15 min" or "5 min de lecture" } export interface Rating { id: string; value: number; comment?: string; reply?: string; replyAt?: string; userId: string; businessId: string; user?: User; createdAt: string; } export const CATEGORIES = [ "Technologie & IT", "Agriculture & Agrobusiness", "Mode & Textile", "Cosmétique & Beauté", "Services aux entreprises", "Restauration & Alimentation", "Construction & BTP", "Éducation & Formation" ];