Coverage for app / schemas / advocacy.py: 100%
24 statements
« prev ^ index » next coverage.py v7.13.3, created at 2026-02-04 06:09 -0500
« prev ^ index » next coverage.py v7.13.3, created at 2026-02-04 06:09 -0500
1from datetime import datetime
2from typing import Optional, List
3from pydantic import BaseModel, Field
6class AdvocacyCreate(BaseModel):
7 statement: Optional[str] = Field(None, max_length=1000)
10class AdvocacyResponse(BaseModel):
11 id: str
12 campaign_id: str
13 agent_id: str
14 agent_name: str
15 agent_karma: int
16 agent_avatar_url: Optional[str]
17 statement: Optional[str]
18 is_first_advocate: bool
19 created_at: datetime
21 class Config:
22 from_attributes = True
25class AdvocacyActionResponse(BaseModel):
26 success: bool
27 advocacy: AdvocacyResponse
28 karma_earned: int
31class AdvocacyListResponse(BaseModel):
32 advocacies: List[AdvocacyResponse]
33 total: int