package Models import ( "github.com/gofrs/uuid" "gorm.io/gorm" ) // Base contains common columns for all tables. type Base struct { ID uuid.UUID `gorm:"type:uuid;primary_key;" json:"id"` } // BeforeCreate will set a UUID rather than numeric ID. func (base *Base) BeforeCreate(tx *gorm.DB) error { var ( id uuid.UUID err error ) if !base.ID.IsNil() { return nil } id, err = uuid.NewV4() if err != nil { return err } base.ID = id return nil }