# App/Messages/Schema.py | |
from pydantic import BaseModel, UUID4, Field, ConfigDict, condecimal, constr | |
from datetime import datetime | |
from typing import Optional | |
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: UUID4 | |
device_id: Optional[str] | |
event: Optional[str] | |
message_id: Optional[str] | |
webhook_id: Optional[str] | |
message_content: str | |
phone_number: str | |
received_at: datetime | |
sim_number: Optional[int] | |
parsed_data: Optional[dict] # Include parsed_data in the response | |
created_time: datetime | |
model_config = ConfigDict(from_attributes=True) | |
# class Config: | |
# orm_mode = True | |
# allow_population_by_field_name = True | |