package model import ( "encoding/json" "time" "gorm.io/gorm" ) // BaseModel is the GORM base model with soft delete and timestamps. // Corresponds to Chatwoot's ApplicationRecord concern pattern. type BaseModel struct { ID uint `gorm:"primaryKey" json:"id"` CreatedAt time.Time `gorm:"autoCreateTime" json:"created_at"` UpdatedAt time.Time `gorm:"autoUpdateTime" json:"updated_at"` DeletedAt gorm.DeletedAt `gorm:"index" json:"deleted_at,omitempty"` } // BaseModelWithoutID is for models that define their own ID field. type BaseModelWithoutID struct { CreatedAt time.Time `gorm:"autoCreateTime" json:"created_at"` UpdatedAt time.Time `gorm:"autoUpdateTime" json:"updated_at"` DeletedAt gorm.DeletedAt `gorm:"index" json:"deleted_at,omitempty"` }