tipitypy/db/word.go

35 lines
568 B
Go
Raw Normal View History

2025-02-15 18:06:22 +01:00
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
}