add order and payment
This commit is contained in:
@@ -1,116 +1,47 @@
|
||||
package request
|
||||
|
||||
import (
|
||||
"furtuna-be/internal/constants/order"
|
||||
"furtuna-be/internal/constants/transaction"
|
||||
"furtuna-be/internal/entity"
|
||||
"time"
|
||||
)
|
||||
|
||||
type Order struct {
|
||||
BranchID int64 `json:"branch_id" validate:"required"`
|
||||
Amount float64 `json:"amount" validate:"required"`
|
||||
CustomerName string `json:"customer_name" validate:"required"`
|
||||
CustomerPhone string `json:"customer_phone" validate:"required"`
|
||||
Pax int `json:"pax" validate:"required"`
|
||||
PartnerID int64 `json:"partner_id" validate:"required"`
|
||||
PaymentMethod transaction.PaymentMethod `json:"payment_method" validate:"required"`
|
||||
OrderItem []OrderItem `json:"order_items" validate:"required"`
|
||||
OrderItems []OrderItem `json:"order_items" validate:"required"`
|
||||
}
|
||||
|
||||
type OrderItem struct {
|
||||
ItemID int64 `json:"item_id" validate:"required"`
|
||||
ItemType order.ItemType `json:"item_type" validate:"required"`
|
||||
Price float64 `json:"price" validate:"required"`
|
||||
Qty int64 `json:"qty" validate:"required"`
|
||||
ProductID int64 `json:"product_id" validate:"required"`
|
||||
Quantity int64 `json:"quantity" validate:"required"`
|
||||
}
|
||||
|
||||
type OrderParam struct {
|
||||
Search string `form:"search" json:"search" example:"name,branch_name,item_name"`
|
||||
StatusActive order.OrderSearchStatus `form:"status_active" json:"status_active" example:"active,inactive"`
|
||||
Status order.OrderStatus `form:"status" json:"status" example:"NEW,PAID,CANCEL"`
|
||||
BranchID int64 `form:"branch_id" json:"branch_id" example:"1"`
|
||||
Limit int `form:"limit" json:"limit" example:"10"`
|
||||
Offset int `form:"offset" json:"offset" example:"0"`
|
||||
}
|
||||
|
||||
func (p *OrderParam) ToEntity() entity.OrderSearch {
|
||||
return entity.OrderSearch{
|
||||
Search: p.Search,
|
||||
StatusActive: p.StatusActive,
|
||||
Status: p.Status,
|
||||
BranchID: p.BranchID,
|
||||
Limit: p.Limit,
|
||||
Offset: p.Offset,
|
||||
}
|
||||
}
|
||||
|
||||
func (o *Order) ToEntity() *entity.Order {
|
||||
var ordItems []entity.OrderItem
|
||||
if len(o.OrderItem) > 0 {
|
||||
for _, i := range o.OrderItem {
|
||||
ordItems = append(ordItems, entity.OrderItem{
|
||||
ItemID: i.ItemID,
|
||||
ItemType: i.ItemType,
|
||||
Price: i.Price,
|
||||
Qty: i.Qty,
|
||||
})
|
||||
func (o *Order) ToEntity(createdBy int64) *entity.OrderRequest {
|
||||
orderItems := make([]entity.OrderItemRequest, len(o.OrderItems))
|
||||
for i, item := range o.OrderItems {
|
||||
orderItems[i] = entity.OrderItemRequest{
|
||||
ProductID: item.ProductID,
|
||||
Quantity: item.Quantity,
|
||||
}
|
||||
}
|
||||
|
||||
transaction := entity.Transaction{
|
||||
BranchID: o.BranchID,
|
||||
CustomerName: o.CustomerName,
|
||||
CustomerPhone: o.CustomerPhone,
|
||||
PaymentMethod: o.PaymentMethod,
|
||||
}
|
||||
|
||||
return &entity.Order{
|
||||
BranchID: o.BranchID,
|
||||
Amount: o.Amount,
|
||||
CustomerName: o.CustomerName,
|
||||
CustomerPhone: o.CustomerPhone,
|
||||
Pax: o.Pax,
|
||||
Transaction: transaction,
|
||||
OrderItem: ordItems,
|
||||
return &entity.OrderRequest{
|
||||
PartnerID: o.PartnerID,
|
||||
PaymentMethod: string(o.PaymentMethod),
|
||||
OrderItems: orderItems,
|
||||
CreatedBy: createdBy,
|
||||
}
|
||||
}
|
||||
|
||||
type OrderTotalRevenueParam struct {
|
||||
Year int `form:"year" json:"year" example:"1,2,3"`
|
||||
Month int `form:"month" json:"month" example:"1,2,3"`
|
||||
BranchID int64 `form:"branch_id" json:"branch_id" example:"1"`
|
||||
DateStart *time.Time `form:"date_start" json:"date_start" example:"2024-01-01" time_format:"2006-1-2"`
|
||||
DateEnd *time.Time `form:"date_end" json:"date_end" example:"2024-01-01" time_format:"2006-1-2"`
|
||||
type Execute struct {
|
||||
PartnerID int64 `json:"partner_id" validate:"required"`
|
||||
Token string `json:"token"`
|
||||
}
|
||||
|
||||
func (p *OrderTotalRevenueParam) ToEntity() entity.OrderTotalRevenueSearch {
|
||||
return entity.OrderTotalRevenueSearch{
|
||||
Year: p.Year,
|
||||
Month: p.Month,
|
||||
BranchID: p.BranchID,
|
||||
DateStart: p.DateStart,
|
||||
DateEnd: p.DateEnd,
|
||||
}
|
||||
}
|
||||
|
||||
type OrderBranchRevenueParam struct {
|
||||
DateStart *time.Time `form:"date_start" json:"date_start" example:"2024-01-01" time_format:"2006-1-2"`
|
||||
DateEnd *time.Time `form:"date_end" json:"date_end" example:"2024-01-01" time_format:"2006-1-2"`
|
||||
}
|
||||
|
||||
func (p *OrderBranchRevenueParam) ToEntity() entity.OrderBranchRevenueSearch {
|
||||
return entity.OrderBranchRevenueSearch{
|
||||
DateStart: p.DateStart,
|
||||
DateEnd: p.DateEnd,
|
||||
}
|
||||
}
|
||||
|
||||
type UpdateStatus struct {
|
||||
Status order.OrderStatus `form:"status" json:"status" example:"NEW,PAID,CANCEL"`
|
||||
}
|
||||
|
||||
func (o *UpdateStatus) ToEntity() *entity.Order {
|
||||
return &entity.Order{
|
||||
Status: o.Status,
|
||||
func (e Execute) ToOrderExecuteRequest(createdBy int64) *entity.OrderExecuteRequest {
|
||||
return &entity.OrderExecuteRequest{
|
||||
CreatedBy: createdBy,
|
||||
PartnerID: e.PartnerID,
|
||||
Token: e.Token,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user