import { BusinessProfilePublication, BusinessProfileType, BusinessType } from './enums'; import { Event } from './Event'; import { LocationGeo } from './Location'; import { Media } from './Media'; import { BaseModel } from './Model'; import { Product } from './Product'; import { Service } from './Service'; export interface BusinessLocation { name?: string; address_line: string; street: string; street_extra?: string; province?: string; postal_code?: string; country_code: string; geo?: LocationGeo; } export interface BaseBusinessProfile extends BaseModel { id: number; created_at: string; updated_at: string; object: BusinessProfileType; name: string; handle: string; publication: BusinessProfilePublication; workspace?: string; image?: Media; cover_image?: Media; description?: string; about?: string; tags: string[]; website?: string; social_media?: BusinessProfileSocials; email?: string; phone?: string; support?: BusinessProfileSupport; location?: BusinessLocation; _geo?: LocationGeo; } export interface BusinessProfile extends BaseBusinessProfile { object: BusinessProfileType.BusinessProfile; product_description?: string; year_founded?: string; type: BusinessType; cover_image?: Media; nationality?: string; products?: Product[]; events?: Event[]; services?: Service[]; stats?: { followers: number; orders: number; events: number; products: number; services: number; }; } export interface EventProfile extends BaseBusinessProfile { object: BusinessProfileType.EventProfile; gallery: Media[]; events?: Event[]; stats?: { followers: number; events: number; }; } export interface ServiceProfile extends BaseBusinessProfile { object: BusinessProfileType.ServiceProfile; service_description?: string; gallery: Media[]; services?: Service[]; stats?: { followers: number; services: number; }; } export interface StoreProfile { handle: string; name: string; workspace: string; bio?: string; avatar?: Media; gallery: Media[]; about?: String; location?: BusinessLocation; products?: Product[]; events?: Event[]; services?: Service[]; business?: BusinessProfile; eventProfile?: EventProfile; serviceProfile?: ServiceProfile; stats?: { followers: number; orders: number; events: number; products: number; services: number; }; } export type BusinessProfileSocials = Record<"whatsapp" | "instagram" | "facebook" | "tiktok" | "linkedin" | "twitter", string>; export type BusinessProfileSupport = Record<"email" | "phone" | "url", string>; export type BusinessProfileMinimal = Pick; export type EventProfileMinimal = Pick; export type ServiceProfileMinimal = Pick;