2024-06-05 08:43:05 +00:00
|
|
|
package database
|
|
|
|
|
|
|
|
import "gorm.io/gorm"
|
|
|
|
|
|
|
|
type Manufacturer struct {
|
|
|
|
gorm.Model
|
2024-06-05 15:53:24 +00:00
|
|
|
Name string `gorm:"unique" validate:"required,custom_unique=Name"`
|
2024-06-05 08:43:05 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
type Product struct {
|
|
|
|
gorm.Model
|
2024-06-06 15:03:22 +00:00
|
|
|
Name string `validate:"required"`
|
2024-06-06 08:11:07 +00:00
|
|
|
Price uint `validate:"required"`
|
|
|
|
ManufacturerID uint `validate:"required"`
|
2024-06-05 08:43:05 +00:00
|
|
|
Manufacturer *Manufacturer `gorm:"foreignKey:ManufacturerID;references:ID"`
|
|
|
|
}
|
|
|
|
|
2024-06-06 16:02:59 +00:00
|
|
|
type Token struct {
|
|
|
|
gorm.Model
|
|
|
|
UserID uint
|
|
|
|
Token string
|
|
|
|
User *User `gorm:"foreignKey:UserID;references:ID"`
|
|
|
|
}
|
|
|
|
|
2024-06-05 08:43:05 +00:00
|
|
|
type User struct {
|
|
|
|
gorm.Model
|
2024-06-07 12:52:09 +00:00
|
|
|
Name string `validate:"required"`
|
|
|
|
Email string `validate:"required"`
|
|
|
|
Password string `validate:"required"`
|
|
|
|
Products []Product `gorm:"many2many:user_products;"`
|
|
|
|
Tokens []Token `gorm:"many2many:user_token;"`
|
|
|
|
Money uint `gorm:"default:0"`
|
2024-06-05 08:43:05 +00:00
|
|
|
}
|