"""字段库 Repository 协议(依赖倒置)。""" from __future__ import annotations from typing import Protocol from app.domain.entities.condition_field import ConditionField class ConditionFieldRepository(Protocol): def list(self) -> list[ConditionField]: """按 sort_order, name 排序返回全部条目(含停用项)。""" ... def get(self, name: str) -> ConditionField | None: ... def insert_missing(self, items: list[ConditionField]) -> int: """只插入不存在的条目(seed 内置字段用)。 语义上是「只补不删、不覆盖」:已存在的行**原样保留** —— 用户在字段库里 改过的中文名/含义不会被下次 seed 冲掉(与 factor_definition 同规矩)。 """ ... def save(self, item: ConditionField) -> ConditionField: """新增或整体更新一条(自定义字段增改、内置字段改文案/停用)。""" ... def delete(self, name: str) -> bool: ...