first commit
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
from ...sync_system.strategy import DefaultSyncStrategy
|
||||
from ...sync_system.config import StrategyConfig, OrphanAction, UpdateDirection
|
||||
from schemas.contract.contract import ContractResponse
|
||||
|
||||
|
||||
class ContractSyncStrategy(DefaultSyncStrategy[ContractResponse]):
|
||||
"""
|
||||
Contract 同步策略
|
||||
|
||||
业务规则:
|
||||
1. 使用 (project_id, code) 作为业务唯一键
|
||||
2. 依赖于 project 和 company
|
||||
3. 支持自动绑定
|
||||
4. 默认配置为日常推送模式(本地创建推送到远程,不拉取远程孤儿)
|
||||
|
||||
schema 已在类定义中设置,禁止在初始化时传入其他 schema。
|
||||
"""
|
||||
|
||||
# 类变量:schema 固定为 ContractResponse
|
||||
schema = ContractResponse
|
||||
|
||||
# 类变量:默认配置
|
||||
default_config = StrategyConfig(
|
||||
auto_bind=True,
|
||||
auto_bind_fields=["project_id","company_id", "code"],
|
||||
depend_fields={"project_id": "project", "company_id": "supplier"},
|
||||
local_orphan_action=OrphanAction.CREATE_REMOTE,
|
||||
remote_orphan_action=OrphanAction.NONE,
|
||||
update_direction=UpdateDirection.PUSH,
|
||||
)
|
||||
Reference in New Issue
Block a user