30 lines
988 B
Python
30 lines
988 B
Python
from dataclasses import dataclass, field
|
|
import json
|
|
import datetime
|
|
|
|
from application.database_postgres.BaseModel import BasePayload, BaseModel
|
|
|
|
class TransactionsModel(BaseModel):
|
|
table_name = "transactions"
|
|
primary_key = "item_uuid"
|
|
primary_key_type = "uuid"
|
|
|
|
@dataclass
|
|
class Payload(BasePayload):
|
|
item_uuid: str
|
|
transaction_created_by: str
|
|
transaction_name: str
|
|
transaction_type: str
|
|
transaction_created_at: datetime.datetime = field(init=False)
|
|
transaction_quantity: float = 0.00
|
|
transaction_description: str = ''
|
|
transaction_cost: float = 0.00
|
|
transaction_data: dict = field(default_factory=dict)
|
|
|
|
def __post_init__(self):
|
|
self.transaction_created_at = datetime.datetime.now()
|
|
|
|
def payload_dictionary(self):
|
|
payload = super().payload_dictionary()
|
|
payload['transaction_data'] = json.dumps(self.transaction_data)
|
|
return payload |