Customer Order

This commit is contained in:
aditya.siregar
2024-08-04 01:16:25 +07:00
parent 265dd9b6e8
commit bdf930445c
30 changed files with 832 additions and 43 deletions
+4
View File
@@ -15,6 +15,10 @@ type DiscoveryHomeParam struct {
Discover string `form:"discover" json:"discover" example:"0"`
}
type DiscoverySearchByID struct {
ID int64 `form:"id" json:"id" example:"0"`
}
func (d *DiscoveryHomeParam) ToEntity() *entity.DiscoverySearch {
if d.Limit == 0 {
d.Limit = 10
+47
View File
@@ -12,6 +12,30 @@ type Order struct {
OrderItems []OrderItem `json:"order_items" validate:"required"`
}
type CustomerOrder struct {
PartnerID int64 `json:"partner_id" validate:"required"`
PaymentMethod transaction.PaymentMethod `json:"payment_method" validate:"required"`
OrderItems []OrderItem `json:"order_items" validate:"required"`
}
func (o *CustomerOrder) 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,
}
}
return &entity.OrderRequest{
PartnerID: o.PartnerID,
PaymentMethod: string(o.PaymentMethod),
OrderItems: orderItems,
CreatedBy: createdBy,
Source: "ONLINE",
}
}
type OrderParam struct {
PaymentType string `form:"payment_type" json:"payment_type" example:"CASH"`
StartDate string `form:"start_date" json:"start_date"`
@@ -56,6 +80,7 @@ func (o *Order) ToEntity(createdBy int64) *entity.OrderRequest {
PaymentMethod: string(o.PaymentMethod),
OrderItems: orderItems,
CreatedBy: createdBy,
Source: "POS",
}
}
@@ -71,3 +96,25 @@ func (e Execute) ToOrderExecuteRequest(createdBy int64) *entity.OrderExecuteRequ
Token: e.Token,
}
}
type OrderParamCustomer struct {
ID int64 `form:"id" json:"id" example:"10"`
Limit int `form:"limit" json:"limit" example:"10"`
Offset int `form:"offset" json:"offset" example:"0"`
}
func (o *OrderParamCustomer) ToOrderEntity(ctx mycontext.Context) entity.OrderSearch {
if o.Limit == 0 {
o.Limit = 10
}
return entity.OrderSearch{
PartnerID: ctx.GetPartnerID(),
SiteID: ctx.GetSiteID(),
IsAdmin: ctx.IsAdmin(),
Limit: o.Limit,
Offset: o.Offset,
CreatedBy: ctx.RequestedBy(),
IsCustomer: true,
}
}
+27
View File
@@ -72,3 +72,30 @@ func (p *UserParam) ToEntity(ctx mycontext.Context) entity.UserSearch {
Offset: p.Offset,
}
}
type UserRegister struct {
Name string `json:"name" validate:"required"`
Email string `json:"email" validate:"required"`
PhoneNumber string `json:"phone_number" validate:"required"`
Password string `json:"password" validate:"required"`
}
func (e *UserRegister) Validate() error {
validate := validator.New()
if err := validate.Struct(e); err != nil {
return err
}
return nil
}
func (u *UserRegister) ToEntity() *entity.User {
return &entity.User{
Name: u.Name,
Email: u.Email,
PhoneNumber: u.PhoneNumber,
Password: u.Password,
RoleID: role.Customer,
UserType: "CUSTOMER",
}
}