feature/outlet-table #10
@ -27,6 +27,7 @@ type OrderRepository interface {
|
|||||||
UpdatePaymentStatus(ctx context.Context, id uuid.UUID, status entities.PaymentStatus) error
|
UpdatePaymentStatus(ctx context.Context, id uuid.UUID, status entities.PaymentStatus) error
|
||||||
UpdateStatus(ctx context.Context, id uuid.UUID, status entities.OrderStatus) error
|
UpdateStatus(ctx context.Context, id uuid.UUID, status entities.OrderStatus) error
|
||||||
GetNextOrderNumber(ctx context.Context, organizationID, outletID uuid.UUID) (string, error)
|
GetNextOrderNumber(ctx context.Context, organizationID, outletID uuid.UUID) (string, error)
|
||||||
|
ListByOutletID(ctx context.Context, outletID uuid.UUID, limit, offset int) ([]*entities.Order, int64, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
type OrderRepositoryImpl struct {
|
type OrderRepositoryImpl struct {
|
||||||
@ -270,3 +271,27 @@ func (r *OrderRepositoryImpl) GetNextOrderNumber(ctx context.Context, organizati
|
|||||||
orderNumber := fmt.Sprintf("ORD/%04d%02d/%06d", year, month, sequence.SequenceNumber)
|
orderNumber := fmt.Sprintf("ORD/%04d%02d/%06d", year, month, sequence.SequenceNumber)
|
||||||
return orderNumber, nil
|
return orderNumber, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (r *OrderRepositoryImpl) ListByOutletID(ctx context.Context, outletID uuid.UUID, limit, offset int) ([]*entities.Order, int64, error) {
|
||||||
|
var orders []*entities.Order
|
||||||
|
var total int64
|
||||||
|
|
||||||
|
query := r.db.WithContext(ctx).Model(&entities.Order{}).
|
||||||
|
Preload("Organization").
|
||||||
|
Preload("Outlet").
|
||||||
|
Preload("User").
|
||||||
|
Preload("OrderItems").
|
||||||
|
Preload("OrderItems.Product").
|
||||||
|
Preload("OrderItems.ProductVariant").
|
||||||
|
Preload("Payments").
|
||||||
|
Preload("Payments.PaymentMethod").
|
||||||
|
Preload("Payments.PaymentOrderItems").
|
||||||
|
Where("outlet_id = ?", outletID)
|
||||||
|
|
||||||
|
if err := query.Count(&total).Error; err != nil {
|
||||||
|
return nil, 0, err
|
||||||
|
}
|
||||||
|
|
||||||
|
err := query.Limit(limit).Offset(offset).Order("created_at DESC").Find(&orders).Error
|
||||||
|
return orders, total, err
|
||||||
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user