UMBRA/backend/app/schemas/location.py
Kyle Pope d811890509 Add Sheet forms, recurrence UI, all-day fix, LocationPicker
- Sheet component: slide-in panel replacing Dialog for all forms
- EventForm: structured recurrence picker, all-day end-date offset fix,
  LocationPicker with OSM search integration
- CalendarPage: scope dialog for editing/deleting recurring events
- TodoForm/ReminderForm/LocationForm: migrated to Sheet with 2-col layouts
- LocationPicker: debounced search combining local DB + Nominatim results
- Backend: /locations/search endpoint with OSM proxy
- CSS: slimmer all-day event bars in calendar grid
- Types: RecurrenceRule interface, extended CalendarEvent fields

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 00:42:12 +08:00

37 lines
781 B
Python

from pydantic import BaseModel, ConfigDict
from datetime import datetime
from typing import Optional, Literal
class LocationSearchResult(BaseModel):
source: Literal["local", "nominatim"]
location_id: Optional[int] = None
name: str
address: str
class LocationCreate(BaseModel):
name: str
address: str
category: str = "other"
notes: Optional[str] = None
class LocationUpdate(BaseModel):
name: Optional[str] = None
address: Optional[str] = None
category: Optional[str] = None
notes: Optional[str] = None
class LocationResponse(BaseModel):
id: int
name: str
address: str
category: str
notes: Optional[str]
created_at: datetime
updated_at: datetime
model_config = ConfigDict(from_attributes=True)