refactor: add service layer architecture with Pydantic validation

- Add services layer (PartyService, ScheduleService, ProductService, ServiceCenterService)
- Add ServiceProvider for dependency injection
- Add Pydantic input validation on all MCP tools
- Add thread-safety to TrytonSettings with double-checked locking
- Update tests to mock ServiceProvider instead of direct client calls
- Add pydantic dependency
This commit is contained in:
2026-03-14 22:12:33 -05:00
parent 6154b83455
commit 861f5030f4
13 changed files with 545 additions and 199 deletions

View File

@@ -0,0 +1,28 @@
from typing import Any, Dict, List, Optional
from dataclasses import dataclass
@dataclass
class TrytonResponse:
success: bool
data: Any = None
error: Optional[str] = None
@property
def is_error(self) -> bool:
return not self.success
class BaseService:
def __init__(self, client: Any):
self._client = client
def call(self, method: str, args: List[Any]) -> TrytonResponse:
try:
response = self._client.call(method, args)
return TrytonResponse(success=True, data=response)
except Exception as e:
return TrytonResponse(success=False, error=str(e))
def _get_client(self) -> Any:
return self._client