Coverage for packages/postaguvercini/src/integrify/postaguvercini/schemas/request.py: 100%

34 statements  

« prev     ^ index     » next       coverage.py v7.16.0, created at 2026-10-19 02:39 +0000

1from integrify.postaguvercini import env 

2from integrify.postaguvercini.schemas.enums import ChannelType 

3from integrify.postaguvercini.schemas.utils import BaseSchema 

4from integrify.postaguvercini.types import DateTime 

5from integrify.schemas import PayloadBaseModel 

6from pydantic import Field 

7from typing_extensions import TypedDict 

8 

9 

10class SendSingleSMSRequestSchema(PayloadBaseModel, BaseSchema): 

11 message: str 

12 receivers: list[str] 

13 

14 # Not required 

15 send_date: DateTime 

16 expire_date: DateTime 

17 channel: ChannelType = ChannelType.OTP 

18 originator: str | None = None 

19 username: str = Field(env.POSTA_GUVERCINI_USERNAME, validate_default=True) 

20 password: str = Field(env.POSTA_GUVERCINI_PASSWORD, validate_default=True) 

21 

22 

23class SMSMessage(TypedDict): 

24 receiver: str 

25 message: str 

26 

27 

28class SendMultipleSMSRequestSchema(PayloadBaseModel, BaseSchema): 

29 messages: list[SMSMessage] 

30 

31 # Not required 

32 send_date: DateTime 

33 expire_date: DateTime 

34 channel: ChannelType = ChannelType.OTP 

35 originator: str | None = None 

36 username: str = Field(env.POSTA_GUVERCINI_USERNAME, validate_default=True) 

37 password: str = Field(env.POSTA_GUVERCINI_PASSWORD, validate_default=True) 

38 

39 

40class StatusRequestSchema(PayloadBaseModel, BaseSchema): 

41 message_ids: list[str] 

42 # Not required 

43 username: str = Field(env.POSTA_GUVERCINI_USERNAME, validate_default=True) 

44 password: str = Field(env.POSTA_GUVERCINI_PASSWORD, validate_default=True) 

45 

46 

47class CreditBalanceRequestSchema(PayloadBaseModel, BaseSchema): 

48 # Not required 

49 username: str = Field(env.POSTA_GUVERCINI_USERNAME, validate_default=True) 

50 password: str = Field(env.POSTA_GUVERCINI_PASSWORD, validate_default=True)