add filter order by outlet id
This commit is contained in:
@@ -23,16 +23,16 @@ type orderUserRepository interface {
|
||||
|
||||
type OrderService interface {
|
||||
CreateOrder(ctx context.Context, req *models.CreateOrderRequest, organizationID uuid.UUID) (*models.OrderResponse, error)
|
||||
AddToOrder(ctx context.Context, orderID uuid.UUID, req *models.AddToOrderRequest) (*models.AddToOrderResponse, error)
|
||||
UpdateOrder(ctx context.Context, id uuid.UUID, req *models.UpdateOrderRequest) (*models.OrderResponse, error)
|
||||
GetOrderByID(ctx context.Context, id uuid.UUID) (*models.OrderResponse, error)
|
||||
AddToOrder(ctx context.Context, orderID uuid.UUID, req *models.AddToOrderRequest, outletID uuid.UUID) (*models.AddToOrderResponse, error)
|
||||
UpdateOrder(ctx context.Context, id uuid.UUID, req *models.UpdateOrderRequest, outletID uuid.UUID) (*models.OrderResponse, error)
|
||||
GetOrderByID(ctx context.Context, id uuid.UUID, outletID uuid.UUID) (*models.OrderResponse, error)
|
||||
ListOrders(ctx context.Context, req *models.ListOrdersRequest) (*models.ListOrdersResponse, error)
|
||||
VoidOrder(ctx context.Context, req *models.VoidOrderRequest, voidedBy uuid.UUID) error
|
||||
RefundOrder(ctx context.Context, id uuid.UUID, req *models.RefundOrderRequest, refundedBy uuid.UUID) error
|
||||
CreatePayment(ctx context.Context, req *models.CreatePaymentRequest) (*models.PaymentResponse, error)
|
||||
RefundPayment(ctx context.Context, paymentID uuid.UUID, refundAmount float64, reason string, refundedBy uuid.UUID) error
|
||||
SetOrderCustomer(ctx context.Context, orderID uuid.UUID, req *models.SetOrderCustomerRequest, organizationID uuid.UUID) (*models.SetOrderCustomerResponse, error)
|
||||
SplitBill(ctx context.Context, req *models.SplitBillRequest) (*models.SplitBillResponse, error)
|
||||
VoidOrder(ctx context.Context, req *models.VoidOrderRequest, voidedBy uuid.UUID, outletID uuid.UUID) error
|
||||
RefundOrder(ctx context.Context, id uuid.UUID, req *models.RefundOrderRequest, refundedBy uuid.UUID, outletID uuid.UUID) error
|
||||
CreatePayment(ctx context.Context, req *models.CreatePaymentRequest, outletID uuid.UUID) (*models.PaymentResponse, error)
|
||||
RefundPayment(ctx context.Context, paymentID uuid.UUID, refundAmount float64, reason string, refundedBy uuid.UUID, outletID uuid.UUID) error
|
||||
SetOrderCustomer(ctx context.Context, orderID uuid.UUID, req *models.SetOrderCustomerRequest, organizationID uuid.UUID, outletID uuid.UUID) (*models.SetOrderCustomerResponse, error)
|
||||
SplitBill(ctx context.Context, req *models.SplitBillRequest, outletID uuid.UUID) (*models.SplitBillResponse, error)
|
||||
}
|
||||
|
||||
type OrderServiceImpl struct {
|
||||
@@ -216,7 +216,7 @@ func (s *OrderServiceImpl) createIngredientTransactions(ctx context.Context, ord
|
||||
return allTransactions, nil
|
||||
}
|
||||
|
||||
func (s *OrderServiceImpl) AddToOrder(ctx context.Context, orderID uuid.UUID, req *models.AddToOrderRequest) (*models.AddToOrderResponse, error) {
|
||||
func (s *OrderServiceImpl) AddToOrder(ctx context.Context, orderID uuid.UUID, req *models.AddToOrderRequest, outletID uuid.UUID) (*models.AddToOrderResponse, error) {
|
||||
if orderID == uuid.Nil {
|
||||
return nil, fmt.Errorf("invalid order ID")
|
||||
}
|
||||
@@ -229,7 +229,7 @@ func (s *OrderServiceImpl) AddToOrder(ctx context.Context, orderID uuid.UUID, re
|
||||
var ingredientTransactions []*contract.CreateOrderIngredientTransactionRequest
|
||||
|
||||
err := s.txManager.WithTransaction(ctx, func(txCtx context.Context) error {
|
||||
addResp, err := s.orderProcessor.AddToOrder(txCtx, orderID, req)
|
||||
addResp, err := s.orderProcessor.AddToOrder(txCtx, orderID, req, outletID)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to add items to order: %w", err)
|
||||
}
|
||||
@@ -257,12 +257,12 @@ func (s *OrderServiceImpl) AddToOrder(ctx context.Context, orderID uuid.UUID, re
|
||||
return response, nil
|
||||
}
|
||||
|
||||
func (s *OrderServiceImpl) UpdateOrder(ctx context.Context, id uuid.UUID, req *models.UpdateOrderRequest) (*models.OrderResponse, error) {
|
||||
func (s *OrderServiceImpl) UpdateOrder(ctx context.Context, id uuid.UUID, req *models.UpdateOrderRequest, outletID uuid.UUID) (*models.OrderResponse, error) {
|
||||
if err := s.validateUpdateOrderRequest(req); err != nil {
|
||||
return nil, fmt.Errorf("validation error: %w", err)
|
||||
}
|
||||
|
||||
response, err := s.orderProcessor.UpdateOrder(ctx, id, req)
|
||||
response, err := s.orderProcessor.UpdateOrder(ctx, id, req, outletID)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to update order: %w", err)
|
||||
}
|
||||
@@ -270,12 +270,12 @@ func (s *OrderServiceImpl) UpdateOrder(ctx context.Context, id uuid.UUID, req *m
|
||||
return response, nil
|
||||
}
|
||||
|
||||
func (s *OrderServiceImpl) GetOrderByID(ctx context.Context, id uuid.UUID) (*models.OrderResponse, error) {
|
||||
func (s *OrderServiceImpl) GetOrderByID(ctx context.Context, id uuid.UUID, outletID uuid.UUID) (*models.OrderResponse, error) {
|
||||
if id == uuid.Nil {
|
||||
return nil, fmt.Errorf("invalid order ID")
|
||||
}
|
||||
|
||||
response, err := s.orderProcessor.GetOrderByID(ctx, id)
|
||||
response, err := s.orderProcessor.GetOrderByID(ctx, id, outletID)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to get order: %w", err)
|
||||
}
|
||||
@@ -296,7 +296,7 @@ func (s *OrderServiceImpl) ListOrders(ctx context.Context, req *models.ListOrder
|
||||
return response, nil
|
||||
}
|
||||
|
||||
func (s *OrderServiceImpl) VoidOrder(ctx context.Context, req *models.VoidOrderRequest, voidedBy uuid.UUID) error {
|
||||
func (s *OrderServiceImpl) VoidOrder(ctx context.Context, req *models.VoidOrderRequest, voidedBy uuid.UUID, outletID uuid.UUID) error {
|
||||
if req.OrderID == uuid.Nil {
|
||||
return fmt.Errorf("invalid order ID")
|
||||
}
|
||||
@@ -305,7 +305,7 @@ func (s *OrderServiceImpl) VoidOrder(ctx context.Context, req *models.VoidOrderR
|
||||
return fmt.Errorf("invalid user ID")
|
||||
}
|
||||
|
||||
if err := s.orderProcessor.VoidOrder(ctx, req, voidedBy); err != nil {
|
||||
if err := s.orderProcessor.VoidOrder(ctx, req, voidedBy, outletID); err != nil {
|
||||
return fmt.Errorf("failed to void order: %w", err)
|
||||
}
|
||||
|
||||
@@ -316,7 +316,7 @@ func (s *OrderServiceImpl) VoidOrder(ctx context.Context, req *models.VoidOrderR
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *OrderServiceImpl) RefundOrder(ctx context.Context, id uuid.UUID, req *models.RefundOrderRequest, refundedBy uuid.UUID) error {
|
||||
func (s *OrderServiceImpl) RefundOrder(ctx context.Context, id uuid.UUID, req *models.RefundOrderRequest, refundedBy uuid.UUID, outletID uuid.UUID) error {
|
||||
// Validate inputs
|
||||
if id == uuid.Nil {
|
||||
return fmt.Errorf("invalid order ID")
|
||||
@@ -331,19 +331,19 @@ func (s *OrderServiceImpl) RefundOrder(ctx context.Context, id uuid.UUID, req *m
|
||||
}
|
||||
|
||||
// Process order refund
|
||||
if err := s.orderProcessor.RefundOrder(ctx, id, req, refundedBy); err != nil {
|
||||
if err := s.orderProcessor.RefundOrder(ctx, id, req, refundedBy, outletID); err != nil {
|
||||
return fmt.Errorf("failed to refund order: %w", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *OrderServiceImpl) CreatePayment(ctx context.Context, req *models.CreatePaymentRequest) (*models.PaymentResponse, error) {
|
||||
func (s *OrderServiceImpl) CreatePayment(ctx context.Context, req *models.CreatePaymentRequest, outletID uuid.UUID) (*models.PaymentResponse, error) {
|
||||
if err := s.validateCreatePaymentRequest(req); err != nil {
|
||||
return nil, fmt.Errorf("validation error: %w", err)
|
||||
}
|
||||
|
||||
response, err := s.orderProcessor.CreatePayment(ctx, req)
|
||||
response, err := s.orderProcessor.CreatePayment(ctx, req, outletID)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to create payment: %w", err)
|
||||
}
|
||||
@@ -355,7 +355,7 @@ func (s *OrderServiceImpl) CreatePayment(ctx context.Context, req *models.Create
|
||||
return response, nil
|
||||
}
|
||||
|
||||
func (s *OrderServiceImpl) RefundPayment(ctx context.Context, paymentID uuid.UUID, refundAmount float64, reason string, refundedBy uuid.UUID) error {
|
||||
func (s *OrderServiceImpl) RefundPayment(ctx context.Context, paymentID uuid.UUID, refundAmount float64, reason string, refundedBy uuid.UUID, outletID uuid.UUID) error {
|
||||
// Validate inputs
|
||||
if paymentID == uuid.Nil {
|
||||
return fmt.Errorf("invalid payment ID")
|
||||
@@ -368,14 +368,14 @@ func (s *OrderServiceImpl) RefundPayment(ctx context.Context, paymentID uuid.UUI
|
||||
}
|
||||
|
||||
// Process payment refund
|
||||
if err := s.orderProcessor.RefundPayment(ctx, paymentID, refundAmount, reason, refundedBy); err != nil {
|
||||
if err := s.orderProcessor.RefundPayment(ctx, paymentID, refundAmount, reason, refundedBy, outletID); err != nil {
|
||||
return fmt.Errorf("failed to refund payment: %w", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *OrderServiceImpl) SetOrderCustomer(ctx context.Context, orderID uuid.UUID, req *models.SetOrderCustomerRequest, organizationID uuid.UUID) (*models.SetOrderCustomerResponse, error) {
|
||||
func (s *OrderServiceImpl) SetOrderCustomer(ctx context.Context, orderID uuid.UUID, req *models.SetOrderCustomerRequest, organizationID uuid.UUID, outletID uuid.UUID) (*models.SetOrderCustomerResponse, error) {
|
||||
// Validate inputs
|
||||
if orderID == uuid.Nil {
|
||||
return nil, fmt.Errorf("invalid order ID")
|
||||
@@ -391,7 +391,7 @@ func (s *OrderServiceImpl) SetOrderCustomer(ctx context.Context, orderID uuid.UU
|
||||
}
|
||||
|
||||
// Process setting customer for order
|
||||
response, err := s.orderProcessor.SetOrderCustomer(ctx, orderID, req, organizationID)
|
||||
response, err := s.orderProcessor.SetOrderCustomer(ctx, orderID, req, organizationID, outletID)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to set customer for order: %w", err)
|
||||
}
|
||||
@@ -584,12 +584,12 @@ func (s *OrderServiceImpl) validateSetOrderCustomerRequest(req *models.SetOrderC
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *OrderServiceImpl) SplitBill(ctx context.Context, req *models.SplitBillRequest) (*models.SplitBillResponse, error) {
|
||||
func (s *OrderServiceImpl) SplitBill(ctx context.Context, req *models.SplitBillRequest, outletID uuid.UUID) (*models.SplitBillResponse, error) {
|
||||
if err := s.validateSplitBillRequest(req); err != nil {
|
||||
return nil, fmt.Errorf("validation error: %w", err)
|
||||
}
|
||||
|
||||
response, err := s.orderProcessor.SplitBill(ctx, req)
|
||||
response, err := s.orderProcessor.SplitBill(ctx, req, outletID)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to split bill: %w", err)
|
||||
}
|
||||
@@ -680,7 +680,7 @@ func (s *OrderServiceImpl) occupyTableWithOrder(ctx context.Context, tableID, or
|
||||
}
|
||||
|
||||
func (s *OrderServiceImpl) handleTableReleaseOnPayment(ctx context.Context, orderID uuid.UUID) error {
|
||||
order, err := s.orderProcessor.GetOrderByID(ctx, orderID)
|
||||
order, err := s.orderProcessor.GetOrderByID(ctx, orderID, uuid.Nil)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to get order: %w", err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user