Coverage for packages/azericard/src/integrify/azericard/schemas/common.py: 100%

22 statements  

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

1import secrets 

2from decimal import Decimal 

3 

4from integrify.azericard import env 

5from integrify.azericard.schemas.enums import ( 

6 AuthorizationMiscType, 

7 AuthorizationResponseType, 

8 AuthorizationType, 

9) 

10from integrify.azericard.utils import TimeStampOut 

11from pydantic import BaseModel, Field 

12 

13 

14class AzeriCardMinimalDataSchema(BaseModel): 

15 order: str = Field(min_length=6, max_length=32) 

16 """Satıcı sifariş ID-si, rəqəmsal. Son 6 rəqəm sistem izi audit nömrəsi kimi istifadə olunur, 

17 terminal id üçün bir gün ərzində unikal olmalıdır""" 

18 

19 terminal: str = Field(default=env.AZERICARD_MERCHANT_ID) 

20 """Bank tərəfindən təyin edilmiş Merchant Terminal ID""" 

21 

22 trtype: AuthorizationType | AuthorizationResponseType | AuthorizationMiscType = Field( 

23 min_length=1, max_length=2 

24 ) 

25 """Tranzaksiya növü. Mümkün dəyərlər üçün enum faylına bax.""" 

26 

27 timestamp: TimeStampOut 

28 """GMT-də e-ticarət şlüzünün vaxt damğası: YYYYMMDDHHMMSS""" 

29 

30 nonce: str = Field( 

31 default_factory=lambda: secrets.token_hex(16), 

32 min_length=8, 

33 max_length=32, 

34 ) 

35 """E-Commerce Gateway qeyri-dəyərlidir. Hexadecimal formatda 8-32 

36 təsadüfi baytla doldurulacaq. MAC istifadə edildikdə mövcud olacaq.""" 

37 

38 

39class AzeriCardMinimalWithAmountDataSchema(AzeriCardMinimalDataSchema): 

40 amount: Decimal 

41 """Sifarişin ümumi məbləği""" 

42 

43 currency: str = Field(min_length=1, max_length=3) 

44 """Sifariş valyutası: 3 simvollu valyuta kodu"""