first commit
This commit is contained in:
103
types.ts
Normal file
103
types.ts
Normal file
@@ -0,0 +1,103 @@
|
||||
|
||||
export enum UserRole {
|
||||
VISITOR = 'VISITOR',
|
||||
ENTREPRENEUR = 'ENTREPRENEUR',
|
||||
ADMIN = 'ADMIN'
|
||||
}
|
||||
|
||||
export interface User {
|
||||
id: string;
|
||||
name: string;
|
||||
email: string;
|
||||
role: UserRole;
|
||||
avatar?: string;
|
||||
}
|
||||
|
||||
export interface SocialLinks {
|
||||
facebook?: string;
|
||||
linkedin?: string;
|
||||
instagram?: string;
|
||||
website?: string;
|
||||
}
|
||||
|
||||
export interface Business {
|
||||
id: string;
|
||||
ownerId: string;
|
||||
name: string;
|
||||
category: string;
|
||||
location: string; // City, Country
|
||||
description: string;
|
||||
logoUrl: string;
|
||||
videoUrl?: string; // YouTube/Vimeo link
|
||||
socialLinks?: SocialLinks;
|
||||
contactEmail: string;
|
||||
contactPhone?: string;
|
||||
verified: boolean;
|
||||
viewCount: number;
|
||||
rating: number;
|
||||
tags: string[];
|
||||
|
||||
// New fields for "Entrepreneur of the Month"
|
||||
isFeatured?: boolean;
|
||||
founderName?: string;
|
||||
founderImageUrl?: string;
|
||||
keyMetric?: string; // "3000 clients delivered"
|
||||
}
|
||||
|
||||
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 const CATEGORIES = [
|
||||
"Technologie & IT",
|
||||
"Agriculture & Agrobusiness",
|
||||
"Mode & Textile",
|
||||
"Cosmétique & Beauté",
|
||||
"Services aux entreprises",
|
||||
"Restauration & Alimentation",
|
||||
"Construction & BTP",
|
||||
"Éducation & Formation"
|
||||
];
|
||||
Reference in New Issue
Block a user