refactor(postgres): use generics for IDs
Some checks failed
Gitea Build Check / Build (push) Failing after 4m57s

Signed-off-by: soxx <soxx@fenpa.ws>
This commit is contained in:
SoXX 2024-06-24 22:31:18 +02:00
parent d90736b1b6
commit 31c4249129

View File

@ -7,27 +7,26 @@ import (
)
type ID interface {
AnthroveUserID
AnthroveSourceID
AnthrovePostID
AnthroveUserID | AnthroveSourceID | AnthrovePostID
}
type BaseModel struct {
ID string `gorm:"primaryKey"`
type BaseModel[T ID] struct {
ID T `gorm:"primaryKey"`
CreatedAt time.Time
UpdatedAt time.Time
DeletedAt gorm.DeletedAt `gorm:"index"`
}
func (base *BaseModel) BeforeCreate(db *gorm.DB) error {
func (base *BaseModel[T]) BeforeCreate(db *gorm.DB) error {
var defaultVar T
if base.ID == "" {
if base.ID == defaultVar {
id, err := gonanoid.New(25)
if err != nil {
return err
}
base.ID = id
base.ID = T(id)
}
return nil