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
« 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
10class SendSingleSMSRequestSchema(PayloadBaseModel, BaseSchema):
11 message: str
12 receivers: list[str]
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)
23class SMSMessage(TypedDict):
24 receiver: str
25 message: str
28class SendMultipleSMSRequestSchema(PayloadBaseModel, BaseSchema):
29 messages: list[SMSMessage]
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)
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)
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)