package model import "time" type CaptainSkillStatus string const ( CaptainSkillStatusDraft CaptainSkillStatus = "draft" CaptainSkillStatusActive CaptainSkillStatus = "active" CaptainSkillStatusArchived CaptainSkillStatus = "archived" ) type CaptainSkill struct { ID uint `gorm:"primaryKey;autoIncrement" json:"id"` AccountID uint `gorm:"not null;uniqueIndex:idx_captain_skills_account_name" json:"account_id"` Name string `gorm:"size:255;not null;uniqueIndex:idx_captain_skills_account_name" json:"name"` Description string `gorm:"size:1024;not null" json:"description"` InstructionsMD string `gorm:"type:text;not null" json:"instructions_md"` Status CaptainSkillStatus `gorm:"size:20;not null;default:draft;index" json:"status"` Version uint `gorm:"not null;default:1" json:"version"` References []CaptainSkillReference `gorm:"foreignKey:SkillID;constraint:OnDelete:CASCADE" json:"references,omitempty"` CreatedAt time.Time `gorm:"autoCreateTime" json:"created_at"` UpdatedAt time.Time `gorm:"autoUpdateTime" json:"updated_at"` } func (CaptainSkill) TableName() string { return "captain_skills" } type CaptainSkillReference struct { ID uint `gorm:"primaryKey;autoIncrement" json:"id"` SkillID uint `gorm:"not null;uniqueIndex:idx_captain_skill_refs_key;uniqueIndex:idx_captain_skill_refs_position" json:"skill_id"` ReferenceKey string `gorm:"size:255;not null;uniqueIndex:idx_captain_skill_refs_key" json:"reference_key"` ContentMD string `gorm:"type:text;not null" json:"content_md"` Position int `gorm:"not null;uniqueIndex:idx_captain_skill_refs_position" json:"position"` CreatedAt time.Time `gorm:"autoCreateTime" json:"created_at"` UpdatedAt time.Time `gorm:"autoUpdateTime" json:"updated_at"` } func (CaptainSkillReference) TableName() string { return "captain_skill_references" } type CaptainAssistantSkill struct { ID uint `gorm:"primaryKey;autoIncrement" json:"id"` AccountID uint `gorm:"not null;index" json:"account_id"` AssistantID uint `gorm:"not null;uniqueIndex:idx_captain_assistant_skill" json:"assistant_id"` SkillID uint `gorm:"not null;uniqueIndex:idx_captain_assistant_skill;index" json:"skill_id"` CreatedAt time.Time `gorm:"autoCreateTime" json:"created_at"` } func (CaptainAssistantSkill) TableName() string { return "captain_assistant_skills" }