Spaces:
Sleeping
Sleeping
Download schemas.py from Ilirt/dataflow-server: direct link, hf CLI and curl.
- Browser
- Download file 4.43 kB
-
https://huggingface.co/spaces/Ilirt/dataflow-server/resolve/main/schemas.py
- Command line
-
hf download hf://spaces/Ilirt/dataflow-server/schemas.py
-
curl -L -o schemas.py https://huggingface.co/spaces/Ilirt/dataflow-server/resolve/main/schemas.py
4.43 kB
| """ | |
| DataFlow Server β Pydantic Schemas | |
| """ | |
| from pydantic import BaseModel, EmailStr | |
| from typing import Optional, List | |
| from datetime import datetime | |
| # βββ Auth βββ | |
| class UserLogin(BaseModel): | |
| email: str | |
| password: str | |
| class UserRegister(BaseModel): | |
| full_name: str | |
| email: str | |
| password: str | |
| position: Optional[str] = None | |
| role: str = "developer" | |
| class Token(BaseModel): | |
| access_token: str | |
| token_type: str = "bearer" | |
| user_id: str | |
| full_name: str | |
| role: str | |
| class UserOut(BaseModel): | |
| id: str | |
| full_name: str | |
| email: str | |
| position: Optional[str] | |
| role: str | |
| language: str | |
| currency: str | |
| timezone: str | |
| two_factor_enabled: bool | |
| biometric_enabled: bool | |
| model_config = {"from_attributes": True} | |
| # βββ Project βββ | |
| class ProjectCreate(BaseModel): | |
| name: str | |
| description: str = "" | |
| start_date: datetime | |
| end_date: datetime | |
| budget: float | |
| status: str = "active" | |
| class ProjectUpdate(BaseModel): | |
| name: Optional[str] = None | |
| description: Optional[str] = None | |
| end_date: Optional[datetime] = None | |
| budget: Optional[float] = None | |
| spent: Optional[float] = None | |
| status: Optional[str] = None | |
| progress: Optional[float] = None | |
| risk_level: Optional[str] = None | |
| class ProjectOut(BaseModel): | |
| id: str | |
| name: str | |
| description: str | |
| start_date: datetime | |
| end_date: datetime | |
| budget: float | |
| spent: float | |
| status: str | |
| progress: float | |
| risk_level: str | |
| owner_id: Optional[str] | |
| created_at: datetime | |
| model_config = {"from_attributes": True} | |
| # βββ Task βββ | |
| class SubTaskOut(BaseModel): | |
| id: str | |
| title: str | |
| completed: bool | |
| model_config = {"from_attributes": True} | |
| class TaskCreate(BaseModel): | |
| title: str | |
| description: str = "" | |
| project_id: str | |
| status: str = "todo" | |
| priority: str = "medium" | |
| assignee_id: Optional[str] = None | |
| assignee_name: Optional[str] = None | |
| deadline: Optional[datetime] = None | |
| tags: str = "" | |
| class TaskUpdate(BaseModel): | |
| title: Optional[str] = None | |
| status: Optional[str] = None | |
| priority: Optional[str] = None | |
| assignee_id: Optional[str] = None | |
| assignee_name: Optional[str] = None | |
| deadline: Optional[datetime] = None | |
| class TaskOut(BaseModel): | |
| id: str | |
| title: str | |
| description: str | |
| project_id: str | |
| status: str | |
| priority: str | |
| assignee_id: Optional[str] | |
| assignee_name: Optional[str] | |
| deadline: Optional[datetime] | |
| created_at: datetime | |
| tags: str | |
| subtasks: List[SubTaskOut] = [] | |
| model_config = {"from_attributes": True} | |
| # βββ Expense βββ | |
| class ExpenseCreate(BaseModel): | |
| project_id: str | |
| title: str | |
| amount: float | |
| category: str | |
| date: Optional[datetime] = None | |
| description: Optional[str] = None | |
| class ExpenseUpdate(BaseModel): | |
| status: Optional[str] = None | |
| amount: Optional[float] = None | |
| title: Optional[str] = None | |
| class ExpenseOut(BaseModel): | |
| id: str | |
| project_id: str | |
| title: str | |
| amount: float | |
| category: str | |
| date: datetime | |
| status: str | |
| description: Optional[str] | |
| receipt_url: Optional[str] | |
| created_at: datetime | |
| model_config = {"from_attributes": True} | |
| # βββ Document βββ | |
| class DocumentOut(BaseModel): | |
| id: str | |
| name: str | |
| project_id: str | |
| type: str | |
| size_bytes: int | |
| is_favorite: bool | |
| extracted_text: Optional[str] | |
| recognition_confidence: Optional[float] | |
| detected_type: Optional[str] | |
| extracted_amount: Optional[float] | |
| extracted_date: Optional[datetime] | |
| extracted_supplier: Optional[str] | |
| uploaded_at: datetime | |
| model_config = {"from_attributes": True} | |
| # βββ Notification βββ | |
| class NotificationOut(BaseModel): | |
| id: str | |
| title: str | |
| body: str | |
| type: str | |
| is_read: bool | |
| created_at: datetime | |
| model_config = {"from_attributes": True} | |
| # βββ AI Forecast βββ | |
| class ForecastOut(BaseModel): | |
| id: str | |
| project_id: str | |
| current_spent: float | |
| planned_budget: float | |
| risk_level: str | |
| overrun_probability: float | |
| optimistic_forecast: float | |
| realistic_forecast: float | |
| pessimistic_forecast: float | |
| recommendations: str | |
| generated_at: datetime | |
| model_config = {"from_attributes": True} | |
| class ForecastRequest(BaseModel): | |
| project_id: str | |
| class OCRRequest(BaseModel): | |
| project_id: str | |