package model // Breed 品种。原来建档时品种是个自由文本输入框,用户手打「柯基」「柯基犬」 // 「威尔士柯基」都算不同品种,后面想按品种做体重基准、常见病提示这类事就没法做。 type Breed struct { Base Species string `gorm:"size:16;index" json:"species"` // cat | dog Name string `gorm:"size:64" json:"name"` // Initial 首字母,A-Z,用来做侧边索引。 // // 存字段而不是运行时算:Go 标准库没有拼音,引一个拼音库只为了取首字母不值得, // 而且多音字(「柴犬」的柴、「藏獒」的藏)自动转常出错——「藏獒」按 cang // 还是 zang 分组,人来定比库来猜靠谱。后台新增品种时手填这一位。 Initial string `gorm:"size:1;index" json:"initial"` // SizeClass 成年体型,只有犬类用:small(<10kg) / medium(10-25) / large(25-40) / giant(>40)。 // // 生命阶段的判定要靠它。狗的发育完全取决于体型——大丹犬 8 个月还在长骨头, // 吉娃娃 8 个月已经性成熟;大丹犬 7 岁进老年,吉娃娃 7 岁还是中年。 // 不能靠当前体重判断(幼犬体重说明不了成年后多大),只能靠品种。 SizeClass string `gorm:"size:16;index" json:"size_class"` Sort int `json:"sort"` Enabled bool `gorm:"default:true" json:"enabled"` }