Go-TestAPI/database/models.go

35 lines
856 B
Go
Raw Permalink Normal View History

2024-06-05 08:43:05 +00:00
package database
import "gorm.io/gorm"
type Manufacturer struct {
gorm.Model
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"`
Price uint `validate:"required"`
ManufacturerID uint `validate:"required"`
2024-06-09 12:58:38 +00:00
Manufacturer *Manufacturer `gorm:"foreignKey:ManufacturerID"`
Users []User `gorm:"many2many:user_products;"`
2024-06-05 08:43:05 +00:00
}
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;"`
2024-06-09 12:58:38 +00:00
Tokens []Token
Money uint `gorm:"default:0"`
2024-06-05 08:43:05 +00:00
}