- Add access check to display calendar batch query (Security L-01) - Add aria-label, color dot, disabled-during-mutation, h-8 height (UI W-01/W-02/W-03/S-01) - Add display_calendar_id to EventInvitationResponse schema (Code W-02) - Invalidate event-invitations cache on display calendar update (Code S-03) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
from typing import Annotated, Literal, Optional
|
|
from datetime import datetime
|
|
|
|
from pydantic import BaseModel, ConfigDict, Field
|
|
|
|
|
|
class EventInvitationCreate(BaseModel):
|
|
model_config = ConfigDict(extra="forbid")
|
|
user_ids: list[Annotated[int, Field(ge=1, le=2147483647)]] = Field(..., min_length=1, max_length=20)
|
|
|
|
|
|
class EventInvitationRespond(BaseModel):
|
|
model_config = ConfigDict(extra="forbid")
|
|
status: Literal["accepted", "tentative", "declined"]
|
|
|
|
|
|
class EventInvitationOverrideCreate(BaseModel):
|
|
model_config = ConfigDict(extra="forbid")
|
|
status: Literal["accepted", "tentative", "declined"]
|
|
|
|
|
|
class UpdateDisplayCalendar(BaseModel):
|
|
model_config = ConfigDict(extra="forbid")
|
|
calendar_id: Annotated[int, Field(ge=1, le=2147483647)]
|
|
|
|
|
|
class EventInvitationResponse(BaseModel):
|
|
model_config = ConfigDict(from_attributes=True)
|
|
id: int
|
|
event_id: int
|
|
user_id: int
|
|
invited_by: Optional[int]
|
|
status: str
|
|
invited_at: datetime
|
|
responded_at: Optional[datetime]
|
|
invitee_name: Optional[str] = None
|
|
invitee_umbral_name: Optional[str] = None
|
|
display_calendar_id: Optional[int] = None
|