feat(v2): 实现SQLite对公租赁经验加工与卡片预审轨迹闭环
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
"""Contracts for BR-61..65; no client supplied identity, domain or release state."""
|
||||
from typing import Literal
|
||||
from pydantic import BaseModel, ConfigDict, Field
|
||||
|
||||
class Input(BaseModel):
|
||||
model_config = ConfigDict(extra='forbid')
|
||||
|
||||
class QueryInput(Input):
|
||||
mode: Literal['filters', 'natural', 'sql'] = 'filters'
|
||||
text: str = Field(default='', max_length=4000)
|
||||
filters: dict = Field(default_factory=dict)
|
||||
|
||||
class SelectionInput(Input):
|
||||
preview_id: str = Field(min_length=1, max_length=180)
|
||||
selected_ids: list[str] | None = Field(default=None, max_length=240)
|
||||
|
||||
class ExtractionInput(Input):
|
||||
project_id: str = Field(min_length=1, max_length=180)
|
||||
selection_id: str = Field(min_length=1, max_length=180)
|
||||
kind: Literal['skill', 'rule_set']
|
||||
requirement: str = Field(default='', max_length=2000)
|
||||
|
||||
class PackageFile(Input):
|
||||
path: str = Field(min_length=1, max_length=512)
|
||||
content_base64: str = Field(max_length=2800000)
|
||||
|
||||
class PackageInput(Input):
|
||||
project_id: str = Field(min_length=1, max_length=180)
|
||||
required_field: str | None = Field(default=None, max_length=180)
|
||||
files: list[PackageFile] = Field(min_length=1, max_length=100)
|
||||
|
||||
class Proposal(Input):
|
||||
title: str = Field(min_length=1, max_length=200)
|
||||
description: str = Field(min_length=1, max_length=2000)
|
||||
action: str = Field(min_length=1, max_length=2000)
|
||||
exceptions: str = Field(min_length=1, max_length=2000)
|
||||
field: str = Field(min_length=1, max_length=180)
|
||||
operator: Literal['lt', 'lte', 'gt', 'gte', 'eq'] = 'lt'
|
||||
threshold: str | None = Field(default=None, max_length=40)
|
||||
Reference in New Issue
Block a user