feat(crm): complete contact label avatar gaps

This commit is contained in:
2026-06-05 02:53:24 +08:00
parent 5cf735076d
commit 7a033e28a0
16 changed files with 512 additions and 31 deletions
+8
View File
@@ -985,10 +985,15 @@ func registerV1Routes(g *gin.RouterGroup, h *Handlers) {
contacts.PUT("/:contact_id", h.Contact.Update)
contacts.PATCH("/:contact_id", h.Contact.Update)
contacts.DELETE("/:contact_id", h.Contact.Delete)
contacts.DELETE("/:contact_id/avatar", h.Contact.DeleteAvatar)
// M4 G3: Contact extension routes (active, export, import, contactable_inboxes, custom_attributes)
contacts.GET("/:contact_id/conversations", h.Contact.ListConversations)
contacts.GET("/:contact_id/contactable_inboxes", h.Contact.ContactableInboxes)
contacts.GET("/:contact_id/labels", h.Contact.ListLabels)
contacts.GET("/:contact_id/labels/", h.Contact.ListLabels)
contacts.POST("/:contact_id/labels", h.Contact.UpdateLabels)
contacts.POST("/:contact_id/labels/", h.Contact.UpdateLabels)
contacts.DELETE("/:contact_id/custom_attributes", h.Contact.DeleteCustomAttributes)
contacts.POST("/:contact_id/destroy_custom_attributes", h.Contact.DestroyCustomAttributes)
@@ -1002,6 +1007,7 @@ func registerV1Routes(g *gin.RouterGroup, h *Handlers) {
// Contact inboxes (ref: Chatwoot nested contact_inboxes under contacts)
contacts.GET("/:contact_id/contact_inboxes", h.Contact.ListContactInboxes)
contacts.POST("/:contact_id/contact_inboxes", h.Contact.CreateContactInbox)
contacts.POST("/:contact_id/contact_inboxes/", h.Contact.CreateContactInbox)
contacts.DELETE("/:contact_id/contact_inboxes/:inbox_id", h.Contact.DeleteContactInbox)
}
@@ -1022,6 +1028,8 @@ func registerV1Routes(g *gin.RouterGroup, h *Handlers) {
companies.PUT("/:company_id", h.Company.Update)
companies.PATCH("/:company_id", h.Company.Update)
companies.DELETE("/:company_id", h.Company.Delete)
companies.POST("/:company_id/destroy_custom_attributes", h.Company.DestroyCustomAttributes)
companies.DELETE("/:company_id/avatar", h.Company.DeleteAvatar)
// Nested contacts under a company
companies.GET("/:company_id/contacts", h.Company.ListContacts)
companies.GET("/:company_id/contacts/search", h.Company.SearchContacts)