Coverage for src/integrify/lsim/bulk/schemas/request.py: 100%

37 statements  

« prev     ^ index     » next       coverage.py v7.9.2, created at 2025-09-01 02:22 +0000

1from pydantic import Field 

2 

3from integrify.lsim import env 

4from integrify.lsim.types import DateTime 

5from integrify.schemas import PayloadBaseModel 

6 

7 

8class SendBulkSMSOneMessageRequestSchema(PayloadBaseModel): 

9 controlid: int 

10 

11 msisdns: list[str] 

12 bulkmessage: str 

13 

14 scheduled: DateTime 

15 login: str = Field(env.LSIM_LOGIN, validate_default=True) # type: ignore[assignment] 

16 password: str = Field(default=env.LSIM_PASSWORD, validate_default=True) # type: ignore[assignment] 

17 title: str = Field(default=env.LSIM_SENDER_NAME, validate_default=True) # type: ignore[assignment] 

18 

19 operation: str = 'submit' 

20 isbulk: bool = True 

21 

22 

23class SendBulkSMSDifferentMessagesRequestSchema(PayloadBaseModel): 

24 controlid: int 

25 

26 msisdns: list[str] 

27 messages: list[str] 

28 

29 scheduled: DateTime 

30 login: str = Field(env.LSIM_LOGIN, validate_default=True) # type: ignore[assignment] 

31 password: str = Field(default=env.LSIM_PASSWORD, validate_default=True) # type: ignore[assignment] 

32 title: str = Field(default=env.LSIM_SENDER_NAME, validate_default=True) # type: ignore[assignment] 

33 

34 operation: str = 'submit' 

35 isbulk: bool = False 

36 

37 

38class GetBulkSMSReportRequestSchema(PayloadBaseModel): 

39 taskid: int 

40 

41 login: str = Field(env.LSIM_LOGIN, validate_default=True) # type: ignore[assignment] 

42 password: str = Field(default=env.LSIM_PASSWORD, validate_default=True) # type: ignore[assignment] 

43 operation: str = 'report' 

44 

45 

46class GetBulkSMSDeatiledReportRequestSchema(GetBulkSMSReportRequestSchema): 

47 operation: str = 'detailedreport' 

48 

49 

50class GetBulkSMSDeatiledWithDateReportRequestSchema(GetBulkSMSReportRequestSchema): 

51 operation: str = 'detailedreportwithdate' 

52 

53 

54class GetBalanceRequestSchema(PayloadBaseModel): 

55 login: str = Field(env.LSIM_LOGIN, validate_default=True) # type: ignore[assignment] 

56 password: str = Field(default=env.LSIM_PASSWORD, validate_default=True) # type: ignore[assignment] 

57 operation: str = 'units'