type Order struct {
ID uint `gorm:"primaryKey;autoIncrement;unique"json:"id"`
Owner string `json:"owner"`
Status string `gorm:"default:ordered"json:"status"`
Phone int `json:"phone"`
Order []OrderStructure `gorm:"foreignkey:OrderID" json:"order"`
}
type OrderStructure struct {
ID uint `gorm:"primaryKey;autoIncrement;unique"json:"id"`
OrderID int `json:"-"`
Brand string `json:"brand"`
ItemId int `json:"item_id"`
Img string `json:"img"`
ItemTotal int `json:"item_total"`
Price string `json:"price"`
Quantity int `json:"quantity"`
Title string `json:"title"`
Type string `json:"type"`
}
type Order struct {
ID uint `gorm:"primaryKey;autoIncrement;unique" json:"id"`
Order []OrderProduct `json:"products"`
}
type OrderProduct struct {
OrderID uint `json:"-"`
}
type Order struct {
ID uint `gorm:"primaryKey;autoIncrement;unique" json:"id"`
Order []OrderProduct `gorm:"foreignkey:OrderID" json:"products"`
}
type OrderProduct struct {
OrderID uint `json:"-"`
}
Order []OrderProduct `gorm:"foreignKey:OrderId"json:"products"`
type OrderProduct struct
OrderID uint `json:"-"`
{"Title", x.Title != y.Title, x.Title < y.Title},
для него будет не понятной, т.к. тут не очевидно, что есть операция &&, чтобы понять что это значит нужно найти место где эта конструкция используется и изучить как оно работает и только после этого придёт понимание, а глядя на код columns[i] == "Artist" && x.Artist != y.Artist
этого делать не нужно.c.String(http.StatusOK, string(jsonDataBytes))
type LoginRequest struct {
Email string `json:"email"`
Password string `json:"password"`
}
router.POST("/login", func(c *gin.Context) {
var req LoginRequest
if err := c.ShouldBindJSON(&req); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
if req.Email == "test@gmail.com" && req.Password == "test" {
c.JSON(http.StatusOK, gin.H{"status": "you are logged in"})
return
}
c.JSON(http.StatusUnauthorized, gin.H{"status": "unauthorized"})
})
В общем у нас получается несколько вариантов в зависимости от того, какая у вас задача.
1. Сделать свой scanner/valuer для OrderStructure
Что-то типа такого https://gorm.io/docs/data_types.html
2. Не использовать JSON, а использовать две таблицы, во второй таблице хранить данные OrderStructure.
Я бы выбрал этот вариант, т.к. если у вас не обучающая задача, а вы делаете реальный проект - 99%, что вам очень скоро понадобиться строить разные отчёты, например по проданным товарам и т.д., в этом случае выполнить задачу будет ощутимо проще, чем если тип поля будет JSON.
У вас обучающая задача или реальный проект?