import api from './api'; // Types export interface AgentType { id: string; name: string; slug: string; description: string | null; } export interface AgentProfile { id: string; userId: string; firstName: string; lastName: string; slug: string; email: string | null; phone: string | null; bio: string | null; avatar: string | null; licenseNumber: string | null; experience: number | null; specializations: string[]; languages: string[]; serviceAreas: string[]; rating: number | null; reviewCount: number; isVerified: boolean; isFeatured: boolean; isActive: boolean; agentTypeId: string | null; agentType: AgentType | null; user?: { id: string; email: string; avatar: string | null; }; } interface ApiResponse { success: boolean; data: T; message?: string; } export interface FieldValueInput { fieldSlug: string; value: string | number | boolean | string[] | Record | null; } export interface FieldValueResponse { fieldSlug: string; fieldName: string; fieldType: string; sectionSlug: string; sectionName: string; value: unknown; } export interface GetFieldValuesResponse { agentProfileId: string; fieldValues: FieldValueResponse[]; } export interface SaveFieldValuesResponse { message: string; savedCount: number; data: unknown[]; } // Agents Service for Web class AgentsService { private basePath = '/agents'; async getMyProfile(): Promise { const response = await api.get>(`${this.basePath}/profile/me`); return response.data.data; } async getAgentById(id: string): Promise { const response = await api.get>(`${this.basePath}/${id}`); return response.data.data; } async updateProfile(data: Partial): Promise { const response = await api.put>(`${this.basePath}/profile`, data); return response.data.data; } async saveFieldValues(fieldValues: FieldValueInput[]): Promise { const response = await api.put>( `${this.basePath}/profile/field-values`, { fieldValues } ); return response.data.data; } async getFieldValues(): Promise { const response = await api.get>( `${this.basePath}/profile/field-values` ); return response.data.data; } } export const agentsService = new AgentsService();