|
|
- package Database
-
- import (
- "time"
-
- "github.com/google/uuid"
- "gorm.io/gorm"
- )
-
- const (
- SubjectProgramming = "Programming"
- SubjectPentesting = "Pentesting"
- )
-
- // Base contains common columns for all tables
- type Base struct {
- ID uuid.UUID `gorm:"primaryKey;autoIncrement:false"`
- CreatedAt time.Time
- UpdatedAt time.Time
- DeletedAt time.Time
- }
-
- // BeforeCreate will set Base struct before every insert
- func (base *Base) BeforeCreate(tx *gorm.DB) error {
- // uuid.New() creates a new random UUID or panics.
- base.ID = uuid.New()
-
- // generate timestamps
- var t time.Time = time.Now()
- base.CreatedAt, base.UpdatedAt = t, t
-
- return nil
- }
-
- // AfterUpdate will update the Base struct after every update
- func (base *Base) AfterUpdate(tx *gorm.DB) error {
- // update timestamps
- base.UpdatedAt = time.Now()
- return nil
- }
-
- type Post struct {
- Base
- Title string `gorm:"type:varchar(256);"`
- Intro string
- HtmlPath string `gorm:"type:varchar(256);uniqueindex;"`
- Subject string `gorm:"type:varchar(256);"`
- MainImage string `gorm:"type:varchar(256);"`
-
- Body string `sql:"-"`
- }
-
- type SidebarLink struct {
- Base
- Name string
- Link string
- }
|