Files
sundynix-pets/pets-be/internal/breeds

犬种目录与百科

数据结构

  • sundynix_breed:UUID 主键、中文名、英文名、别名、拼音与首字母、启用状态;起源地、FCI 编号和分组、肩高、体重、寿命、介绍、性格、运动、毛发护理、相处笔记、指数。field_sources 使用 PostgreSQL JSONB 保存展示字段的来源机构。
  • sundynix_breed_reference:UUID 主键,breed_id 关联犬种;机构、机构内编号、原始页面链接、核对日期、事实字段(JSONB)。每个犬种与机构唯一。参考尺寸和指数按机构分别保存,不合并为统一标准。
  • sundynix_pet.breed_id:可空。选目录品种时关联 UUID;手动填写时仅保留 breed 文本。
  • editorial_locked:管理员保存资料后锁定展示内容,重复导入不会覆盖人工修改或清空的字段。来源资料只读,导入仅在其事实内容发生变化时更新。

展示

管理端 /admin/breeds 支持每页 10 条分页、名称/别名/拼音搜索、A–Z 筛选、启停与新增编辑。编辑窗切换“展示资料 / 官方来源”,可以对照各机构标准与评分。展示字段可手动完善,缺失字段留空。

小程序“知识”提供搜索、中文拼音 A–Z 筛选和详情;详情分为基本信息、性格指数、散步与护理、资料出处,字段注明来源,引用链接可复制。所有文案为简短中文整理,不保留来源长篇文章或图片。品种选择组件复用于新增/编辑档案,也允许手填。

采集与导入

2026-10-05:CKU 公开列表 348 项,按中文名称去重后 347 项。补充中华田园犬、混种犬、贵宾犬三项实用分类,合计 350 项。

  • CKU:https://www.cku.org.cn/oa-web/api/v1/open/getFciDogAll 88 个详情接口有完整资料,整理基本事实与简短性格标签。
  • FCI:https://www.fci.be/en/nomenclature/ 使用编号准确关联目录,保存官方名称、原产地和分组;变种保留自己的中文档案,来源标明基础标准范围。分组页面归属国字段用于起源地参考,尺寸不从目录推测。
  • AKC:https://www.akc.org/dog-breeds/ 只使用准确英文名或已核对的等价名称匹配,提取结构化尺寸、寿命和指数。尺寸展示统一换算 cm/kg,原始单位保留在来源资料。变种不套用父犬种的 AKC 展示数据;父犬种参考资料明确标注标准范围。
  • 英国皇家犬业俱乐部:https://www.royalkennelclub.com/breeds-a-z 本机直连超时,先从官方页面核对 8 个犬种的运动、护理和寿命信息,记录于 rkc_facts.json。

data.json 保存中文目录与已有摘要;enrichment.json 保存多来源的事实快照和展示补充。rkc_facts.json 是人工核对的事实记录。

从仓库根目录执行 python3 pets-be/scripts/collect_breed_facts.py 可重新生成补充数据。采集脚本仅用 Python 标准库,缓存置于 /private/tmp/pawprint-breed-sources;机构连接失败不伪造数据。

服务器迁移时自动导入;也可在 pets-be 目录执行 go run ./cmd/seedbreeds。内容无变化时跳过资料更新。导入不会恢复管理员改名或停用的品种,人工编辑后的展示内容不会被刷新覆盖。