Coverage for polar/integrations/discord/schemas.py: 76%

19 statements  

« prev     ^ index     » next       coverage.py v7.10.6, created at 2025-12-05 17:15 +0000

1from typing import Any 1a

2 

3from pydantic import field_validator 1a

4from pydantic_extra_types.color import Color 1a

5 

6from polar.kit.schemas import Schema 1a

7 

8 

9class DiscordGuildRole(Schema): 1a

10 id: str 1a

11 name: str 1a

12 position: int 1a

13 is_polar_bot: bool 1a

14 color: Color 1a

15 

16 @field_validator("color", mode="before") 1a

17 @classmethod 1a

18 def int_color_to_hex(cls, v: Any) -> str: 1a

19 if isinstance(v, int): 

20 return hex(v)[2:].zfill(6) 

21 return v 

22 

23 

24class DiscordGuild(Schema): 1a

25 name: str 1a

26 roles: list[DiscordGuildRole] 1a