diff --git a/control-plane/api/internal/leads/handler.go b/control-plane/api/internal/leads/handler.go index d127535..5465c67 100644 --- a/control-plane/api/internal/leads/handler.go +++ b/control-plane/api/internal/leads/handler.go @@ -30,10 +30,16 @@ func (h *Handler) Create(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"error": "requête invalide"}) return } - l, err := h.store.Create(Lead{ + + lead := Lead{ Telegram: sanitize(req.Telegram), - Message: sanitize(req.Message), - }) + } + + if msg := sanitize(req.Message); msg != "" { + lead.Message = &msg + } + + l, err := h.store.Create(lead) if err != nil { c.JSON(http.StatusInternalServerError, gin.H{"error": "erreur serveur"}) return diff --git a/control-plane/api/internal/leads/leads.go b/control-plane/api/internal/leads/leads.go index 54d05dd..737b4ef 100644 --- a/control-plane/api/internal/leads/leads.go +++ b/control-plane/api/internal/leads/leads.go @@ -30,7 +30,7 @@ func (s Status) Valid() bool { type Lead struct { ID string `gorm:"type:uuid;primaryKey" json:"id"` Telegram string `gorm:"size:120;not null" json:"telegram"` - Message string `gorm:"size:2000" json:"message"` + Message *string `gorm:"size:2000" json:"message"` Status Status `gorm:"size:20;not null;index" json:"status"` CreatedAt time.Time `json:"created_at"` } diff --git a/web/src/lib/api.ts b/web/src/lib/api.ts index 4fcf52d..a35bfbd 100644 --- a/web/src/lib/api.ts +++ b/web/src/lib/api.ts @@ -46,9 +46,8 @@ export type Role = 'admin' | 'client' export interface Lead { id: string - company: string - email: string - message: string + Telegram: string + message?: string status: string created_at: string } @@ -124,7 +123,7 @@ export const api = { expired_at: string }>('GET', '/auth/me'), logout: () => request<{ status: string }>('POST', '/auth/logout'), - createLead: (telegram: string, message: string) => + createLead: (telegram: string, message?: string) => request('POST', '/leads', { telegram, message }), listLeads: () => request<{ items: Lead[] }>('GET', '/leads'), setLeadStatus: (id: string, status: string) => diff --git a/web/src/pages/backoffice/Demos.tsx b/web/src/pages/backoffice/Demos.tsx index 009b00e..8947d06 100644 --- a/web/src/pages/backoffice/Demos.tsx +++ b/web/src/pages/backoffice/Demos.tsx @@ -314,9 +314,6 @@ export function Demos() { Aucune donnée. )} - - - diff --git a/web/src/pages/backoffice/Leads.tsx b/web/src/pages/backoffice/Leads.tsx index 19889af..d795b9a 100644 --- a/web/src/pages/backoffice/Leads.tsx +++ b/web/src/pages/backoffice/Leads.tsx @@ -81,8 +81,7 @@ export function Leads() { {leads.map((l) => ( - {l.company} - {l.email} + {l.Telegram} {l.status}