- Add wheel scroll navigation in month view (debounced, prevents rapid scrolling) - Allow editing color on system calendars (Birthdays) - name field disabled - Event templates: full CRUD backend (model, schema, router, migration 011) - Event templates: sidebar section with create/edit/delete, click to pre-fill EventForm - Register event_templates router at /api/event-templates Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
44 lines
1.1 KiB
Python
44 lines
1.1 KiB
Python
from pydantic import BaseModel, ConfigDict
|
|
from datetime import datetime
|
|
from typing import Optional
|
|
|
|
|
|
class EventTemplateCreate(BaseModel):
|
|
name: str
|
|
title: str
|
|
description: Optional[str] = None
|
|
duration_minutes: int = 60
|
|
calendar_id: Optional[int] = None
|
|
recurrence_rule: Optional[str] = None
|
|
all_day: bool = False
|
|
location_id: Optional[int] = None
|
|
is_starred: bool = False
|
|
|
|
|
|
class EventTemplateUpdate(BaseModel):
|
|
name: Optional[str] = None
|
|
title: Optional[str] = None
|
|
description: Optional[str] = None
|
|
duration_minutes: Optional[int] = None
|
|
calendar_id: Optional[int] = None
|
|
recurrence_rule: Optional[str] = None
|
|
all_day: Optional[bool] = None
|
|
location_id: Optional[int] = None
|
|
is_starred: Optional[bool] = None
|
|
|
|
|
|
class EventTemplateResponse(BaseModel):
|
|
id: int
|
|
name: str
|
|
title: str
|
|
description: Optional[str]
|
|
duration_minutes: int
|
|
calendar_id: Optional[int]
|
|
recurrence_rule: Optional[str]
|
|
all_day: bool
|
|
location_id: Optional[int]
|
|
is_starred: bool
|
|
created_at: datetime
|
|
|
|
model_config = ConfigDict(from_attributes=True)
|