2025-06-27 16:41:30 +00:00

76 lines
1.6 KiB
Python

from datetime import datetime
from typing import Optional
from pydantic import BaseModel, EmailStr
from app.models.task import TaskStatus, TaskPriority
class UserBase(BaseModel):
email: EmailStr
full_name: Optional[str] = None
phone_number: Optional[str] = None
whatsapp_number: Optional[str] = None
class UserCreate(UserBase):
password: str
class UserResponse(UserBase):
id: int
is_active: bool
created_at: datetime
class Config:
from_attributes = True
class UserLogin(BaseModel):
email: EmailStr
password: str
class Token(BaseModel):
access_token: str
token_type: str
class TaskBase(BaseModel):
title: str
description: Optional[str] = None
priority: TaskPriority = TaskPriority.MEDIUM
due_date: Optional[datetime] = None
scheduled_at: Optional[datetime] = None
class TaskCreate(TaskBase):
pass
class TaskUpdate(BaseModel):
title: Optional[str] = None
description: Optional[str] = None
priority: Optional[TaskPriority] = None
status: Optional[TaskStatus] = None
due_date: Optional[datetime] = None
scheduled_at: Optional[datetime] = None
class TaskResponse(TaskBase):
id: int
status: TaskStatus
ai_suggested_time: Optional[datetime] = None
whatsapp_reminder_sent: bool
whatsapp_completion_sent: bool
owner_id: int
created_at: datetime
updated_at: Optional[datetime] = None
completed_at: Optional[datetime] = None
class Config:
from_attributes = True
class HealthResponse(BaseModel):
status: str
timestamp: datetime
version: str