scheduleSon/backend/models.py

52 lines
1.4 KiB
Python
Raw Permalink Normal View History

from pydantic import BaseModel
from typing import Optional, Literal
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
2026-03-22 12:48:20 +03:00
repeat_weekly: bool = False
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"
2026-03-22 12:48:20 +03:00
repeat_weekly: bool = False
class ScheduleItem(BaseModel):
kind: Literal["task", "event"]
id: int
date: str
2026-03-22 12:48:20 +03:00
source_date: Optional[str] = None
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
2026-03-22 12:48:20 +03:00
occurrence_date: Optional[str] = None
scope: Optional[Literal["one_date", "series"]] = None # для weekly tasks