package model // 养护模板:按「物种 × 阶段」配置建档时生成的今日任务 / 30天计划 / 提醒。 // 管理员可 AI 生成草稿后修改保存;建档时按宠物物种阶段套用,查不到回退内置默认。 // 物种取值 const ( SpeciesCat = "cat" SpeciesDog = "dog" ) // 模板明细的类别 const ( CareKindTask = "task" // 今日任务 CareKindPlan = "plan" // 30天计划节点 CareKindReminder = "reminder" // 提醒 ) // CareTemplate 一套模板 = 一个 (species, stage) 组合 type CareTemplate struct { Base Species string `gorm:"size:16;uniqueIndex:idx_species_stage" json:"species"` // cat | dog Stage string `gorm:"size:48;uniqueIndex:idx_species_stage" json:"stage"` // 与 onboarding 阶段一致 Items []CareTemplateItem `gorm:"foreignKey:TemplateID" json:"items"` } // CareTemplateItem 模板明细,kind 区分三类;不同类只用到部分字段 type CareTemplateItem struct { Base TemplateID string `gorm:"size:24;index" json:"template_id"` Kind string `gorm:"size:16;index" json:"kind"` // task | plan | reminder Sort int `json:"sort"` Title string `gorm:"size:128" json:"title"` Description string `gorm:"size:512" json:"description"` // task 专用 Priority string `gorm:"size:16" json:"priority"` // 重要 / 普通(空) SheetType string `gorm:"size:32" json:"sheet_type"` // 关联记录弹层:weight/poop/food/vaccine... // plan 专用 Day int `json:"day"` // 第 N 天(0=今天) DayLabel string `gorm:"size:32" json:"day_label"` // 展示标签 // reminder 专用 ReminderType string `gorm:"size:32" json:"reminder_type"` // vaccine/deworm/weight/monthlyReport OffsetDays int `json:"offset_days"` // 到期 = 今天 + N 天;<=0 表示无固定到期,用频率 Frequency string `gorm:"size:64" json:"frequency"` // 频率描述,如「每周二、周五」 }