diff --git a/main b/main index 5d28bd1..3cbad27 100755 Binary files a/main and b/main differ diff --git a/modules/structs/crm.go b/modules/structs/crm.go index f25f8cf..e305657 100644 --- a/modules/structs/crm.go +++ b/modules/structs/crm.go @@ -51,6 +51,7 @@ type CrmTableCustomer struct { DealPhase uint8 FirstName string LastName string + Company string CreatedAt time.Time Telephone string Email string diff --git a/public/swagger/swagger.json b/public/swagger/swagger.json index 2a4114e..ba173c7 100644 --- a/public/swagger/swagger.json +++ b/public/swagger/swagger.json @@ -1200,6 +1200,12 @@ "CrmTableCustomer": { "type": "object", "properties": { + "AssignedEmployee": { + "type": "string" + }, + "Company": { + "type": "string" + }, "CreatedAt": { "type": "string", "format": "date-time" diff --git a/routers/router/api/v1/crm/crm.go b/routers/router/api/v1/crm/crm.go index 7ad3ae7..08c80de 100644 --- a/routers/router/api/v1/crm/crm.go +++ b/routers/router/api/v1/crm/crm.go @@ -1,6 +1,7 @@ package crm import ( + "fmt" "jannex/admin-dashboard-backend/modules/crm" "jannex/admin-dashboard-backend/modules/database" "jannex/admin-dashboard-backend/modules/logger" @@ -285,8 +286,22 @@ func CreateCrmCustomer(c *fiber.Ctx) error { crmCustomer["CreatedBy"] = c.Locals("userId").(string) crmCustomer["CreatedAt"] = time.Now() + // check if company name already exists + + var count int64 + + database.DB.Model(&structs.CrmCustomer{}).Where("company = ?", crmCustomer["Company"]).Count(&count) + + fmt.Println("count", count, crmCustomer["Company"]) + + if count > 0 { + logger.AddCrmLog(rslogger.LogTypeError, "Failed to create crm customer as company name already exists: %v", crmCustomer) + return c.SendStatus(fiber.StatusConflict) + } + result := database.DB.Model(&structs.CrmCustomer{}).Create(&crmCustomer) + // TODO: thats not working correctly if err := handleError(result, c); err != nil { return err }