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
« prev ^ index » next coverage.py v7.16.0, created at 2026-10-19 02:39 +0000
1import secrets
2from decimal import Decimal
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
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"""
19 terminal: str = Field(default=env.AZERICARD_MERCHANT_ID)
20 """Bank tərəfindən təyin edilmiş Merchant Terminal ID"""
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."""
27 timestamp: TimeStampOut
28 """GMT-də e-ticarət şlüzünün vaxt damğası: YYYYMMDDHHMMSS"""
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."""
39class AzeriCardMinimalWithAmountDataSchema(AzeriCardMinimalDataSchema):
40 amount: Decimal
41 """Sifarişin ümumi məbləği"""
43 currency: str = Field(min_length=1, max_length=3)
44 """Sifariş valyutası: 3 simvollu valyuta kodu"""