init app
This commit is contained in:
60
schemas.py
Normal file
60
schemas.py
Normal file
@@ -0,0 +1,60 @@
|
||||
from pydantic import BaseModel, Field
|
||||
from datetime import datetime
|
||||
from typing import Optional, List
|
||||
from models import TaskStatus, RecurrenceType
|
||||
|
||||
# Reminder Schemas
|
||||
class ReminderBase(BaseModel):
|
||||
trigger_time: datetime
|
||||
recurrence_type: RecurrenceType = RecurrenceType.none
|
||||
recurrence_interval: Optional[int] = None
|
||||
remind_count_limit: int = 0
|
||||
notify_push: bool = False
|
||||
notify_telegram: bool = False
|
||||
|
||||
class ReminderCreate(ReminderBase):
|
||||
task_id: int
|
||||
|
||||
class ReminderUpdate(BaseModel):
|
||||
trigger_time: Optional[datetime] = None
|
||||
recurrence_type: Optional[RecurrenceType] = None
|
||||
recurrence_interval: Optional[int] = None
|
||||
remind_count_limit: Optional[int] = None
|
||||
remind_count_current: Optional[int] = None
|
||||
notify_push: Optional[bool] = None
|
||||
notify_telegram: Optional[bool] = None
|
||||
|
||||
class Reminder(ReminderBase):
|
||||
id: int
|
||||
task_id: int
|
||||
remind_count_current: int
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
# Task Schemas
|
||||
class TaskBase(BaseModel):
|
||||
title: str
|
||||
description: Optional[str] = None
|
||||
telegram_user_id: str
|
||||
|
||||
class TaskCreate(TaskBase):
|
||||
pass
|
||||
|
||||
class TaskUpdate(BaseModel):
|
||||
title: Optional[str] = None
|
||||
description: Optional[str] = None
|
||||
status: Optional[TaskStatus] = None
|
||||
|
||||
class Task(TaskBase):
|
||||
id: int
|
||||
status: TaskStatus
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
reminders: List[Reminder] = []
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
Reference in New Issue
Block a user