evo-ai/src/schemas/schemas.py
2025-04-25 15:30:54 -03:00

65 lines
1.3 KiB
Python

from pydantic import BaseModel, Field
from typing import Optional, Dict, Any
from datetime import datetime
from uuid import UUID
class ClientBase(BaseModel):
name: str
class ClientCreate(ClientBase):
pass
class Client(ClientBase):
id: UUID
created_at: datetime
class Config:
from_attributes = True
class ContactBase(BaseModel):
ext_id: Optional[str] = None
name: Optional[str] = None
meta: Optional[Dict[str, Any]] = Field(default_factory=dict)
class ContactCreate(ContactBase):
client_id: UUID
class Contact(ContactBase):
id: UUID
client_id: UUID
class Config:
from_attributes = True
class AgentBase(BaseModel):
name: str
type: str = Field(..., pattern="^(llm|sequential|parallel|loop)$")
model: str
api_key: str
instruction: Optional[str] = None
config: Optional[Dict[str, Any]] = Field(default_factory=dict)
class AgentCreate(AgentBase):
client_id: UUID
class Agent(AgentBase):
id: UUID
client_id: UUID
class Config:
from_attributes = True
class MessageBase(BaseModel):
session_id: UUID
sender: str
content: str
class MessageCreate(MessageBase):
pass
class Message(MessageBase):
id: int
created_at: datetime
class Config:
from_attributes = True