60 lines
1.6 KiB
Go
Raw Normal View History

2023-10-08 15:59:42 +07:00
package request
import (
"furtuna-be/internal/constants/transaction"
"furtuna-be/internal/entity"
)
type Order struct {
2024-06-04 02:59:31 +07:00
PartnerID int64 `json:"partner_id" validate:"required"`
2023-10-08 15:59:42 +07:00
PaymentMethod transaction.PaymentMethod `json:"payment_method" validate:"required"`
2024-06-04 02:59:31 +07:00
OrderItems []OrderItem `json:"order_items" validate:"required"`
2023-10-08 15:59:42 +07:00
}
2024-07-26 11:37:22 +07:00
type HistoryOrderParam struct {
Limit int `form:"limit" json:"limit" example:"10"`
Offset int `form:"offset" json:"offset" example:"0"`
}
func (o *HistoryOrderParam) ToEntity() entity.HistoryOrderSearch {
return entity.HistoryOrderSearch{
Limit: o.Limit,
Offset: o.Offset,
}
}
2023-10-08 15:59:42 +07:00
type OrderItem struct {
2024-06-04 02:59:31 +07:00
ProductID int64 `json:"product_id" validate:"required"`
Quantity int64 `json:"quantity" validate:"required"`
2023-10-08 15:59:42 +07:00
}
2024-06-04 02:59:31 +07:00
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,
2023-10-08 15:59:42 +07:00
}
}
2024-06-04 02:59:31 +07:00
return &entity.OrderRequest{
PartnerID: o.PartnerID,
PaymentMethod: string(o.PaymentMethod),
OrderItems: orderItems,
CreatedBy: createdBy,
2023-10-08 15:59:42 +07:00
}
}
2024-06-04 02:59:31 +07:00
type Execute struct {
PartnerID int64 `json:"partner_id" validate:"required"`
Token string `json:"token"`
2023-10-08 15:59:42 +07:00
}
2024-06-04 02:59:31 +07:00
func (e Execute) ToOrderExecuteRequest(createdBy int64) *entity.OrderExecuteRequest {
return &entity.OrderExecuteRequest{
CreatedBy: createdBy,
PartnerID: e.PartnerID,
Token: e.Token,
2023-10-08 15:59:42 +07:00
}
}