Initial commit: Schedule service for son
This commit is contained in:
commit
af2ea7be06
19 changed files with 2270 additions and 0 deletions
50
backend/models.py
Normal file
50
backend/models.py
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
from pydantic import BaseModel
|
||||
from typing import Optional, Literal
|
||||
from datetime import date
|
||||
|
||||
class TaskCreate(BaseModel):
|
||||
date: str # YYYY-MM-DD
|
||||
title: str
|
||||
repeat_weekly: bool = False
|
||||
copy_to_weekdays: Optional[list[int]] = None # список дней недели для копирования
|
||||
|
||||
class EventCreate(BaseModel):
|
||||
date: str # YYYY-MM-DD
|
||||
start_time: str # HH:MM
|
||||
duration_min: int
|
||||
title: str
|
||||
|
||||
class TaskResponse(BaseModel):
|
||||
id: int
|
||||
date: str
|
||||
title: str
|
||||
kind: Literal["task"] = "task"
|
||||
repeat_weekly: bool = False
|
||||
|
||||
class EventResponse(BaseModel):
|
||||
id: int
|
||||
date: str
|
||||
start_time: str
|
||||
duration_min: int
|
||||
title: str
|
||||
kind: Literal["event"] = "event"
|
||||
|
||||
class ScheduleItem(BaseModel):
|
||||
kind: Literal["task", "event"]
|
||||
id: int
|
||||
date: str
|
||||
title: str
|
||||
start_time: Optional[str] = None
|
||||
duration_min: Optional[int] = None
|
||||
repeat_weekly: Optional[bool] = None
|
||||
|
||||
class ScheduleResponse(BaseModel):
|
||||
items: list[ScheduleItem]
|
||||
|
||||
class UpdateRequest(BaseModel):
|
||||
title: Optional[str] = None
|
||||
date: Optional[str] = None
|
||||
start_time: Optional[str] = None
|
||||
duration_min: Optional[int] = None
|
||||
scope: Optional[Literal["one_date", "series"]] = None # для weekly tasks
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue