Go-TestAPI/database/models.go

35 lines
856 B
Go

package database
import "gorm.io/gorm"
type Manufacturer struct {
gorm.Model
Name string `gorm:"unique" validate:"required,custom_unique=Name"`
}
type Product struct {
gorm.Model
Name string `validate:"required"`
Price uint `validate:"required"`
ManufacturerID uint `validate:"required"`
Manufacturer *Manufacturer `gorm:"foreignKey:ManufacturerID"`
Users []User `gorm:"many2many:user_products;"`
}
type Token struct {
gorm.Model
UserID uint
Token string
User *User `gorm:"foreignKey:UserID;references:ID"`
}
type User struct {
gorm.Model
Name string `validate:"required"`
Email string `validate:"required"`
Password string `validate:"required"`
Products []Product `gorm:"many2many:user_products;"`
Tokens []Token
Money uint `gorm:"default:0"`
}