diff --git a/internal/entity/order.go b/internal/entity/order.go index 10d2ccc..7be9262 100644 --- a/internal/entity/order.go +++ b/internal/entity/order.go @@ -92,6 +92,7 @@ type OrderItem struct { Product *Product `gorm:"foreignKey:ItemID;references:ID"` ItemName string `gorm:"type:varchar;column:item_name"` Description string `gorm:"type:varchar;column:description"` + Notes string `gorm:"type:varchar;column:notes"` } func (OrderItem) TableName() string { @@ -118,6 +119,7 @@ type OrderItemRequest struct { ProductID int64 `json:"product_id" validate:"required"` Quantity int `json:"quantity" validate:"required"` Description string `json:"description"` + Notes string `json:"notes"` } type OrderExecuteRequest struct { diff --git a/internal/entity/order_inquiry.go b/internal/entity/order_inquiry.go index 1af1109..79aff0e 100644 --- a/internal/entity/order_inquiry.go +++ b/internal/entity/order_inquiry.go @@ -87,6 +87,7 @@ func (oi *OrderInquiry) AddOrderItem(item OrderItemRequest, product *Product) { Quantity: item.Quantity, CreatedBy: oi.CreatedBy, Product: product, + Notes: item.Notes, }) } @@ -122,6 +123,7 @@ func (i *OrderInquiry) ToOrder(paymentMethod, paymentProvider string) *Order { CreatedBy: i.CreatedBy, CreatedAt: now, Product: item.Product, + Notes: item.Notes, } } diff --git a/internal/handlers/http/order.go b/internal/handlers/http/order.go index 5041b19..7546ff8 100644 --- a/internal/handlers/http/order.go +++ b/internal/handlers/http/order.go @@ -58,8 +58,9 @@ func (o *InquiryRequest) GetPaymentProvider() string { } type OrderItemRequest struct { - ProductID int64 `json:"product_id" validate:"required"` - Quantity int `json:"quantity" validate:"required,min=1"` + ProductID int64 `json:"product_id" validate:"required"` + Quantity int `json:"quantity" validate:"required,min=1"` + Notes string `json:"notes"` } type ExecuteRequest struct { @@ -91,6 +92,7 @@ func (h *Handler) Inquiry(c *gin.Context) { orderItems[i] = entity.OrderItemRequest{ ProductID: item.ProductID, Quantity: item.Quantity, + Notes: item.Notes, } } diff --git a/internal/handlers/request/order.go b/internal/handlers/request/order.go index 9ef0044..1eabf33 100644 --- a/internal/handlers/request/order.go +++ b/internal/handlers/request/order.go @@ -95,6 +95,7 @@ type OrderItem struct { ProductID int64 `json:"product_id" validate:"required"` Quantity int `json:"quantity" validate:"required"` Description string `json:"description"` + Notes string `json:"notes"` } func (o *Order) ToEntity(partnerID, createdBy int64) *entity.OrderRequest { @@ -162,6 +163,7 @@ func (o *OrderCustomer) ToEntity(partnerID, createdBy int64) *entity.OrderReques ProductID: item.ProductID, Quantity: item.Quantity, Description: item.Description, + Notes: item.Notes, } } diff --git a/internal/handlers/response/order_inquiry.go b/internal/handlers/response/order_inquiry.go index d9bce8c..5676a85 100644 --- a/internal/handlers/response/order_inquiry.go +++ b/internal/handlers/response/order_inquiry.go @@ -28,6 +28,7 @@ type OrderItemResponse struct { Price float64 `json:"price"` Quantity int `json:"quantity"` Subtotal float64 `json:"subtotal"` + Notes string `json:"notes"` } func mapToOrderItemResponses(items []entity.OrderItem) []OrderItemResponse { @@ -113,6 +114,7 @@ func MapToOrderItemResponses(items []entity.OrderItem) []OrderItemResponse { Price: item.Price, Quantity: item.Quantity, Subtotal: item.Price * float64(item.Quantity), + Notes: item.Notes, }) } return result diff --git a/internal/repository/models/order.go b/internal/repository/models/order.go index 086e656..4753374 100644 --- a/internal/repository/models/order.go +++ b/internal/repository/models/order.go @@ -40,6 +40,7 @@ type OrderItemDB struct { CreatedBy int64 `gorm:"column:created_by"` CreatedAt time.Time `gorm:"column:created_at"` Product ProductDB `gorm:"foreignKey:ItemID;references:ID"` + Notes string `gorm:"column:notes"` } func (OrderItemDB) TableName() string { @@ -83,6 +84,7 @@ type InquiryItemDB struct { Quantity int `gorm:"column:quantity"` CreatedBy int64 `gorm:"column:created_by"` CreatedAt time.Time `gorm:"column:created_at"` + Notes string `gorm:"column:notes"` } func (InquiryItemDB) TableName() string { diff --git a/internal/repository/orde_repo.go b/internal/repository/orde_repo.go index fd633ee..2d25a2a 100644 --- a/internal/repository/orde_repo.go +++ b/internal/repository/orde_repo.go @@ -148,6 +148,7 @@ func (r *orderRepository) CreateInquiry(ctx mycontext.Context, inquiry *entity.O Quantity: item.Quantity, CreatedBy: item.CreatedBy, CreatedAt: time.Now(), + Notes: item.Notes, }) } @@ -202,6 +203,7 @@ func (r *orderRepository) FindInquiryByID(ctx mycontext.Context, id string) (*en Quantity: itemDB.Quantity, CreatedBy: itemDB.CreatedBy, CreatedAt: itemDB.CreatedAt, + Notes: itemDB.Notes, }) } inquiry.OrderItems = orderItems @@ -264,6 +266,7 @@ func (r *orderRepository) toDomainOrderModel(dbModel *models.OrderDB) *entity.Or Quantity: itemDB.Quantity, CreatedBy: itemDB.CreatedBy, CreatedAt: itemDB.CreatedAt, + Notes: itemDB.Notes, }) } @@ -300,6 +303,7 @@ func (r *orderRepository) toOrderItemDBModel(item *entity.OrderItem) models.Orde Quantity: item.Quantity, CreatedBy: item.CreatedBy, CreatedAt: item.CreatedAt, + Notes: item.Notes, } }