2025-06-01 10:05:16 +00:00

53 lines
1.2 KiB
Python

from datetime import datetime
from typing import Optional
from pydantic import BaseModel
from app.models.transaction import TransactionType
# Shared properties
class TransactionBase(BaseModel):
transaction_type: Optional[TransactionType] = None
quantity: Optional[int] = None
unit_price: Optional[float] = None
reference_number: Optional[str] = None
notes: Optional[str] = None
transaction_date: Optional[datetime] = None
item_id: Optional[int] = None
# Properties to receive on transaction creation
class TransactionCreate(TransactionBase):
transaction_type: TransactionType
quantity: int
item_id: int
transaction_date: Optional[datetime] = datetime.utcnow()
# Properties to receive on transaction update
class TransactionUpdate(TransactionBase):
pass
# Properties shared by models in DB
class TransactionInDBBase(TransactionBase):
id: int
transaction_type: TransactionType
quantity: int
item_id: int
transaction_date: datetime
recorded_by_id: Optional[int] = None
class Config:
from_attributes = True
# Properties to return to client
class Transaction(TransactionInDBBase):
pass
# Properties stored in DB
class TransactionInDB(TransactionInDBBase):
pass