self-order+notification #5

Merged
aefril merged 26 commits from self-order+notification into main 2026-05-12 11:41:03 +00:00
2 changed files with 9 additions and 6 deletions
Showing only changes of commit c24a8a8c13 - Show all commits

View File

@ -50,8 +50,10 @@ type SelfOrderMenuVariant struct {
} }
type SelfOrderCreateOrderRequest struct { type SelfOrderCreateOrderRequest struct {
SessionID string `json:"session_id" validate:"required"` SessionID string `json:"session_id" validate:"required"`
OrderItems []SelfOrderCreateOrderItem `json:"order_items" validate:"required,min=1,dive"` CustomerName string `json:"customer_name" validate:"required"`
OrderType string `json:"order_type" validate:"required,oneof=dine_in takeaway delivery"`
OrderItems []SelfOrderCreateOrderItem `json:"order_items" validate:"required,min=1,dive"`
} }
type SelfOrderCreateOrderItem struct { type SelfOrderCreateOrderItem struct {
@ -62,7 +64,7 @@ type SelfOrderCreateOrderItem struct {
} }
type SelfOrderListCategoriesRequest struct { type SelfOrderListCategoriesRequest struct {
OrganizationID string `form:"organisasi_id" validate:"required"` OrganizationID string `form:"organization_id" validate:"required"`
OutletID string `form:"outlet_id" validate:"required"` OutletID string `form:"outlet_id" validate:"required"`
} }

View File

@ -330,6 +330,7 @@ func (h *SelfOrderHandler) CreateOrder(c *gin.Context) {
metadata := make(map[string]interface{}) metadata := make(map[string]interface{})
metadata["self_order"] = true metadata["self_order"] = true
metadata["session_id"] = session.ID metadata["session_id"] = session.ID
metadata["customer_name"] = req.CustomerName
tableID := table.ID tableID := table.ID
modelReq := &models.CreateOrderRequest{ modelReq := &models.CreateOrderRequest{
@ -337,7 +338,7 @@ func (h *SelfOrderHandler) CreateOrder(c *gin.Context) {
UserID: userID, UserID: userID,
TableID: &tableID, TableID: &tableID,
TableNumber: &table.TableName, TableNumber: &table.TableName,
OrderType: constants.OrderTypeDineIn, OrderType: constants.OrderType(req.OrderType),
OrderItems: orderItems, OrderItems: orderItems,
Metadata: metadata, Metadata: metadata,
} }
@ -466,7 +467,7 @@ func (h *SelfOrderHandler) ListCategories(c *gin.Context) {
if req.OrganizationID == "" { if req.OrganizationID == "" {
util.HandleResponse(c.Writer, c.Request, contract.BuildErrorResponse([]*contract.ResponseError{ util.HandleResponse(c.Writer, c.Request, contract.BuildErrorResponse([]*contract.ResponseError{
contract.NewResponseError(constants.MissingFieldErrorCode, constants.RequestEntity, "organisasi_id is required"), contract.NewResponseError(constants.MissingFieldErrorCode, constants.RequestEntity, "organization_id is required"),
}), "SelfOrderHandler::ListCategories") }), "SelfOrderHandler::ListCategories")
return return
} }
@ -481,7 +482,7 @@ func (h *SelfOrderHandler) ListCategories(c *gin.Context) {
orgID, err := uuid.Parse(req.OrganizationID) orgID, err := uuid.Parse(req.OrganizationID)
if err != nil { if err != nil {
util.HandleResponse(c.Writer, c.Request, contract.BuildErrorResponse([]*contract.ResponseError{ util.HandleResponse(c.Writer, c.Request, contract.BuildErrorResponse([]*contract.ResponseError{
contract.NewResponseError(constants.ValidationErrorCode, constants.RequestEntity, "invalid organisasi_id format"), contract.NewResponseError(constants.ValidationErrorCode, constants.RequestEntity, "invalid organization_id format"),
}), "SelfOrderHandler::ListCategories") }), "SelfOrderHandler::ListCategories")
return return
} }