| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- from datetime import datetime
- from typing import Optional
- from pydantic import BaseModel, EmailStr
- class BaseResponse(BaseModel):
- # may define additional fields or config shared across responses
- class Config:
- orm_mode = True
- class AccessTokenResponse(BaseResponse):
- token_type: str
- access_token: str
- expires_at: int
- issued_at: int
- refresh_token: str
- refresh_token_expires_at: int
- refresh_token_issued_at: int
- class UserResponse(BaseResponse):
- id: str
- email: EmailStr
- class SmsResponse(BaseResponse):
- id: str
- created_at: datetime
- updated_at: datetime
- phone_number: str
- sending_time: datetime
- send_time: datetime
- class VolunteerResponse(BaseResponse):
- id: str
- created_at: datetime
- updated_at: datetime
- name: str
- surname: str
- email: str
- phone_number: str
- automatic_sms: bool
- slots_id: list[str] = []
- class SlotResponse(BaseResponse):
- id: str
- created_at: datetime
- updated_at: datetime
- title: str
- description: str
- starting_time: datetime
- ending_time: datetime
- volunteers_id: list[str] = []
- class SMSResponse(BaseResponse):
- id: str
- created_at: datetime
- updated_at: datetime
- volunteer_id: Optional[str]
- content: str
- phone_number: str
- sending_time: datetime
- send_time: Optional[datetime]
- class ProjectResponse(BaseResponse):
- id: str
- created_at: datetime
- updated_at: datetime
- name: str
- volunteers: list[VolunteerResponse]
- sms: list[SMSResponse]
- slots: list[SlotResponse]
- class ProjectListResponse(BaseResponse):
- id: str
- created_at: datetime
- updated_at: datetime
- name: str
|