diff --git a/internal/entity/order.go b/internal/entity/order.go index 5b14663..fab2f1d 100644 --- a/internal/entity/order.go +++ b/internal/entity/order.go @@ -13,6 +13,7 @@ type Order struct { Total float64 `gorm:"type:numeric;not null;column:total"` Fee float64 `gorm:"type:numeric;not null;column:fee"` SiteID *int64 `gorm:"type:numeric;not null;column:site_id"` + Site *Site `gorm:"foreignKey:SiteID;constraint:OnDelete:CASCADE;"` CreatedAt time.Time `gorm:"autoCreateTime;column:created_at"` UpdatedAt time.Time `gorm:"autoUpdateTime;column:updated_at"` CreatedBy int64 `gorm:"type:int;column:created_by"` diff --git a/internal/handlers/http/customerorder/order.go b/internal/handlers/http/customerorder/order.go index 978d97b..99a7f77 100644 --- a/internal/handlers/http/customerorder/order.go +++ b/internal/handlers/http/customerorder/order.go @@ -233,6 +233,12 @@ func (h *Handler) toOrderDetail(order *entity.Order) *response.OrderDetail { qrCode = order.RefID } + var siteName string + + if order.Site != nil { + siteName = order.Site.Name + } + orderDetail := &response.OrderDetail{ ID: order.ID, QRCode: qrCode, @@ -244,6 +250,7 @@ func (h *Handler) toOrderDetail(order *entity.Order) *response.OrderDetail { Status: order.Status, PaymentLink: paymentLink, PaymentToken: paymentToken, + SiteName: siteName, } orderDetail.OrderItems = make([]response.OrderDetailItem, len(order.OrderItems)) diff --git a/internal/handlers/response/order.go b/internal/handlers/response/order.go index b009b5a..7eac86d 100644 --- a/internal/handlers/response/order.go +++ b/internal/handlers/response/order.go @@ -167,6 +167,7 @@ type PaymentDistribution struct { type OrderDetail struct { ID int64 `json:"id"` QRCode string `json:"qr_code"` + SiteName string `json:"site_name"` FullName string `json:"full_name"` Email string `json:"email"` PhoneNumber string `json:"phone_number"` diff --git a/internal/repository/orders/order.go b/internal/repository/orders/order.go index afedceb..702c386 100644 --- a/internal/repository/orders/order.go +++ b/internal/repository/orders/order.go @@ -52,6 +52,7 @@ func (r *OrderRepository) FindByID(ctx context.Context, id int64) (*entity.Order Preload("OrderItems", func(db *gorm.DB) *gorm.DB { return db.Preload("Product") }). + Preload("Site"). Preload("User"). Preload("Payment"). First(&order, id).Error