import { apiService } from './api'; interface DevisRenewalRequest { devisId: string; nouveaueDateValidite: string; modifications?: string; } interface DevisArchiveRequest { devisId: string; motif: string; } interface ClientFollowUpRequest { devisId: string; clientId: string; type: 'email' | 'telephone' | 'courrier'; message: string; } interface ChantierCreationRequest { devisId: string; dateDebutSouhaitee: string; notes?: string; } interface FactureCreationRequest { devisId: string; type: 'FACTURE' | 'ACOMPTE'; pourcentage?: number; // Pour les acomptes } class DevisActionsService { /** * Renouveler un devis expiré */ async renewDevis(request: DevisRenewalRequest): Promise { try { await apiService.api.post(`/devis/${request.devisId}/renew`, request); } catch (error) { console.error('Erreur lors du renouvellement du devis:', error); throw new Error('Impossible de renouveler le devis. Veuillez réessayer.'); } } /** * Archiver un devis */ async archiveDevis(request: DevisArchiveRequest): Promise { try { await apiService.api.post(`/devis/${request.devisId}/archive`, request); } catch (error) { console.error('Erreur lors de l\'archivage du devis:', error); throw new Error('Impossible d\'archiver le devis. Veuillez réessayer.'); } } /** * Effectuer un suivi client */ async followUpClient(request: ClientFollowUpRequest): Promise { try { await apiService.api.post(`/devis/${request.devisId}/follow-up`, request); } catch (error) { console.error('Erreur lors du suivi client:', error); throw new Error('Impossible d\'effectuer le suivi client. Veuillez réessayer.'); } } /** * Créer un chantier à partir d'un devis accepté */ async createChantierFromDevis(request: ChantierCreationRequest): Promise { try { await apiService.api.post(`/devis/${request.devisId}/create-chantier`, request); } catch (error) { console.error('Erreur lors de la création du chantier:', error); throw new Error('Impossible de créer le chantier. Veuillez réessayer.'); } } /** * Créer une facture à partir d'un devis accepté */ async createFactureFromDevis(request: FactureCreationRequest): Promise { try { await apiService.api.post(`/devis/${request.devisId}/create-facture`, request); } catch (error) { console.error('Erreur lors de la création de la facture:', error); throw new Error('Impossible de créer la facture. Veuillez réessayer.'); } } } export default new DevisActionsService();