package pgModels import ( gonanoid "github.com/matoous/go-nanoid/v2" "gorm.io/gorm" "time" ) type BaseModel struct { ID string `gorm:"primaryKey"` CreatedAt time.Time UpdatedAt time.Time DeletedAt gorm.DeletedAt `gorm:"index"` } func (base *BaseModel) BeforeCreate(db *gorm.DB) error { id, err := gonanoid.New() if err != nil { return err } base.ID = id return nil }