vaulterm/server/models/base_model.go
2024-11-12 19:15:13 +07:00

34 lines
563 B
Go

package models
import (
"strings"
"time"
"github.com/oklog/ulid/v2"
"gorm.io/gorm"
)
type Model struct {
ID string `gorm:"primarykey;type:varchar(26)" json:"id"`
}
func (m *Model) BeforeCreate(tx *gorm.DB) error {
if m.ID == "" {
m.ID = m.GenerateID()
}
return nil
}
func (m *Model) GenerateID() string {
return strings.ToLower(ulid.Make().String())
}
type Timestamps struct {
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
}
type SoftDeletes struct {
DeletedAt gorm.DeletedAt `gorm:"index" json:"deletedAt"`
}