tipitypy/db/word.go
2025-02-15 19:21:41 +02:00

35 lines
568 B
Go

package db
import (
"errors"
"gorm.io/gorm"
)
type Word struct {
gorm.Model
Value string
}
var (
ErrCardValueEmpty = errors.New("the 'Value' field for 'Word' cannot be empty")
ErrCardValueNotUnique = errors.New("the 'Value' field for 'Word' have to be unique for user")
)
func (c *Word) BeforeSave(tx *gorm.DB) error {
if c.Value == "" {
return ErrCardValueEmpty
}
var dup Word
if err := tx.Find(&dup, Word{Value: c.Value}).Error; err != nil {
return err
}
if c.ID != dup.ID && dup.ID != 0 {
return ErrCardValueNotUnique
}
return nil
}