File size: 1,403 Bytes
01a1238
a911135
01a1238
a18c333
a911135
 
 
 
01a1238
 
427638d
 
 
 
 
 
 
 
 
01a1238
 
 
db9d9b2
01a1238
 
 
 
 
 
2046386
01a1238
 
 
 
 
a18c333
a911135
 
 
 
 
 
 
 
 
 
01a1238
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# App/Messages/Schema.py
from pydantic import BaseModel, UUID4, Field, ConfigDict, condecimal, constr, validator
from datetime import datetime
from typing import Optional, Dict, Union
import uuid

from pydantic import BaseModel, UUID4, Field, validator, ConfigDict
from uuid import uuid4, UUID


class TransactionSchema(BaseModel):
    transaction_id: str
    amount_received: float
    phone_number: str
    name: str
    date: datetime
    new_balance: float


class PayloadSchema(BaseModel):
    message: str
    phoneNumber: str
    receivedAt: datetime
    simNumber: Optional[int]


class MessageCreate(BaseModel):
    deviceId: Optional[str]
    event: Optional[str]
    id: Optional[str]
    payload: PayloadSchema
    webhookId: Optional[str]


class MessageResponse(BaseModel):
    id: Optional[Union[UUID4, str]] = None
    device_id: Optional[str] = None
    event: Optional[str] = None
    message_id: Optional[str] = None
    webhook_id: Optional[str] = None
    message_content: Optional[str] = None
    phone_number: Optional[str] = None
    received_at: Optional[datetime] = None
    sim_number: Optional[int] = None
    parsed_data: Optional[Dict] = None  # Include parsed_data in the response
    created_time: Optional[datetime] = None
    model_config = ConfigDict(from_attributes=True)

    # class Config:
    #     orm_mode = True
    #     allow_population_by_field_name = True