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

1from datetime import datetime 

2from typing import Optional, List 

3from pydantic import BaseModel, Field 

4 

5 

6class AdvocacyCreate(BaseModel): 

7 statement: Optional[str] = Field(None, max_length=1000) 

8 

9 

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 

20 

21 class Config: 

22 from_attributes = True 

23 

24 

25class AdvocacyActionResponse(BaseModel): 

26 success: bool 

27 advocacy: AdvocacyResponse 

28 karma_earned: int 

29 

30 

31class AdvocacyListResponse(BaseModel): 

32 advocacies: List[AdvocacyResponse] 

33 total: int