package model import ( "errors" "fmt" "gorm.io/gorm" "kng_feed_api/database" ) type Availability struct { CodeCarCaDe string `gorm:"size:11;not null; unique; index; primaryKey" json:"code_carcade"` Available int `gorm:"default=0" json:"available"` } type AvailabilityArray struct { AvailabilityArray []Availability `binding:"dive" json:"items"` } func (availability *Availability) CreateOrUpdate() error { err := database.Database.Save(&availability).Error if err != nil { return fmt.Errorf("не удалось сохранить код %s", availability.CodeCarCaDe) } return nil } func GetAllAvailability() ([]Availability, error) { var availability []Availability err := database.Database.Find(&availability).Error if err != nil { return availability, err } return availability, nil } func GetOneAvailability(code string) (Availability, error) { var availability Availability err := database.Database.First(&availability, code).Error if err != nil { if errors.Is(err, gorm.ErrRecordNotFound) { return availability, fmt.Errorf("объект с кодом %s не найден", code) } return availability, err } return availability, nil }