package models import ( "time" "gorm.io/datatypes" ) type Job struct { ID string `gorm:"type:varchar;primaryKey" json:"id"` // no default; supply from app QueueName string `gorm:"type:varchar;not null" json:"queue_name"` Status string `gorm:"type:varchar;not null" json:"status"` Arguments datatypes.JSON `gorm:"type:jsonb;not null;default:'{}'"` Result datatypes.JSON `gorm:"type:jsonb;not null;default:'{}'"` LastError *string `gorm:"type:varchar"` RetryCount int `gorm:"not null;default:0"` MaxRetry int `gorm:"not null;default:0"` RetryInterval int `gorm:"not null;default:0"` ScheduledAt time.Time `gorm:"type:timestamptz;default:now();index"` StartedAt *time.Time `gorm:"type:timestamptz;index"` CreatedAt time.Time `gorm:"type:timestamptz;column:created_at;not null;default:now()"` UpdatedAt time.Time `gorm:"type:timestamptz;autoUpdateTime;column:updated_at;not null;default:now()"` }