# 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