From 3a86251fabdee8c2eaa792c7e17c32e9887d2d27 Mon Sep 17 00:00:00 2001 From: Anang Yusman Date: Mon, 19 Jan 2026 23:35:19 +0800 Subject: [PATCH] update --- app/database/entity/products.entity.go | 1 + app/module/clients/controller/clients.controller.go | 1 + app/module/products/mapper/products.mapper.go | 1 + app/module/products/repository/products.repository.go | 4 ++++ app/module/products/request/products.request.go | 9 +++++++++ app/module/products/response/products.response.go | 1 + docs/docs.go | 9 --------- docs/swagger.json | 9 --------- docs/swagger.yaml | 6 ------ 9 files changed, 17 insertions(+), 24 deletions(-) diff --git a/app/database/entity/products.entity.go b/app/database/entity/products.entity.go index f582f6f..9f286a3 100644 --- a/app/database/entity/products.entity.go +++ b/app/database/entity/products.entity.go @@ -11,6 +11,7 @@ type Products struct { Price *string `json:"price" gorm:"type:varchar"` ThumbnailPath *string `json:"thumbnail_path" gorm:"type:varchar"` Colors *string `json:"colors" gorm:"type:text"` // JSON array stored as text + Status *string `json:"status" gorm:"type:varchar"` IsActive *bool `json:"is_active" gorm:"type:bool;default:true"` CreatedAt time.Time `json:"created_at" gorm:"default:now()"` UpdatedAt time.Time `json:"updated_at" gorm:"default:now()"` diff --git a/app/module/clients/controller/clients.controller.go b/app/module/clients/controller/clients.controller.go index 343930b..8293e16 100644 --- a/app/module/clients/controller/clients.controller.go +++ b/app/module/clients/controller/clients.controller.go @@ -9,6 +9,7 @@ import ( "github.com/google/uuid" "github.com/rs/zerolog" + _ "jaecoo-be/utils/response" // 🔥 INI KUNCINYA utilRes "jaecoo-be/utils/response" utilVal "jaecoo-be/utils/validator" ) diff --git a/app/module/products/mapper/products.mapper.go b/app/module/products/mapper/products.mapper.go index 12c0ae0..7c4a8af 100644 --- a/app/module/products/mapper/products.mapper.go +++ b/app/module/products/mapper/products.mapper.go @@ -24,6 +24,7 @@ func ProductsResponseMapper(product *entity.Products, host string) *res.Products Price: product.Price, ThumbnailPath: product.ThumbnailPath, Colors: colors, + Status: product.Status, IsActive: product.IsActive, CreatedAt: product.CreatedAt, UpdatedAt: product.UpdatedAt, diff --git a/app/module/products/repository/products.repository.go b/app/module/products/repository/products.repository.go index 6d282e2..9523516 100644 --- a/app/module/products/repository/products.repository.go +++ b/app/module/products/repository/products.repository.go @@ -45,6 +45,10 @@ func (_i *productsRepository) GetAll(req request.ProductsQueryRequest) (products query = query.Where("variant = ?", *req.Variant) } + if req.Status != nil && *req.Status != "" { + query = query.Where("status = ?", *req.Status) + } + query = query.Where("is_active = ?", true) query.Count(&count) diff --git a/app/module/products/request/products.request.go b/app/module/products/request/products.request.go index 65777a8..1298900 100644 --- a/app/module/products/request/products.request.go +++ b/app/module/products/request/products.request.go @@ -9,12 +9,14 @@ import ( type ProductsQueryRequest struct { Title *string `json:"title"` Variant *string `json:"variant"` + Status *string `json:"status"` Pagination *paginator.Pagination `json:"pagination"` } type ProductsQueryRequestContext struct { Title string `json:"title"` Variant string `json:"variant"` + Status string `json:"status"` } func (req ProductsQueryRequestContext) ToParamRequest() ProductsQueryRequest { @@ -26,6 +28,9 @@ func (req ProductsQueryRequestContext) ToParamRequest() ProductsQueryRequest { if variant := req.Variant; variant != "" { request.Variant = &variant } + if status := req.Status; status != "" { + request.Status = &status + } return request } @@ -36,6 +41,7 @@ type ProductsCreateRequest struct { Price *string `json:"price"` ThumbnailPath *string `json:"thumbnail_path"` Colors []string `json:"colors"` + Status *string `json:"status"` } func (req ProductsCreateRequest) ToEntity() *entity.Products { @@ -51,6 +57,7 @@ func (req ProductsCreateRequest) ToEntity() *entity.Products { Price: req.Price, ThumbnailPath: req.ThumbnailPath, Colors: &colorsStr, + Status: req.Status, } } @@ -60,6 +67,7 @@ type ProductsUpdateRequest struct { Price *string `json:"price"` ThumbnailPath *string `json:"thumbnail_path"` Colors []string `json:"colors"` + Status *string `json:"status"` IsActive *bool `json:"is_active"` } @@ -76,6 +84,7 @@ func (req ProductsUpdateRequest) ToEntity() *entity.Products { Price: req.Price, ThumbnailPath: req.ThumbnailPath, Colors: &colorsStr, + Status: req.Status, IsActive: req.IsActive, } } diff --git a/app/module/products/response/products.response.go b/app/module/products/response/products.response.go index fe9145b..251f197 100644 --- a/app/module/products/response/products.response.go +++ b/app/module/products/response/products.response.go @@ -12,6 +12,7 @@ type ProductsResponse struct { ThumbnailPath *string `json:"thumbnail_path"` ThumbnailUrl *string `json:"thumbnail_url"` Colors []string `json:"colors"` + Status *string `json:"status"` IsActive *bool `json:"is_active"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` diff --git a/docs/docs.go b/docs/docs.go index 9fc1e33..68a0ace 100644 --- a/docs/docs.go +++ b/docs/docs.go @@ -4714,15 +4714,6 @@ const docTemplate = `{ } } }, - "/clients-test": { - "get": { - "tags": [ - "Clients" - ], - "summary": "TEST CLIENTS", - "responses": {} - } - }, "/clients/{id}": { "get": { "security": [ diff --git a/docs/swagger.json b/docs/swagger.json index cd9f49a..5f1394a 100644 --- a/docs/swagger.json +++ b/docs/swagger.json @@ -4703,15 +4703,6 @@ } } }, - "/clients-test": { - "get": { - "tags": [ - "Clients" - ], - "summary": "TEST CLIENTS", - "responses": {} - } - }, "/clients/{id}": { "get": { "security": [ diff --git a/docs/swagger.yaml b/docs/swagger.yaml index e5b4efe..cb89830 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -3892,12 +3892,6 @@ paths: summary: Create Clients tags: - Clients - /clients-test: - get: - responses: {} - summary: TEST CLIENTS - tags: - - Clients /clients/{id}: delete: description: API for delete Clients