from pydantic import BaseModel from typing import Optional from datetime import datetime from enum import Enum class TransactionType(str, Enum): STOCK_IN = "stock_in" STOCK_OUT = "stock_out" ADJUSTMENT = "adjustment" class TransactionBase(BaseModel): transaction_type: TransactionType quantity: int unit_price: Optional[float] = None reference: Optional[str] = None notes: Optional[str] = None item_id: int class TransactionCreate(TransactionBase): pass class TransactionUpdate(BaseModel): transaction_type: Optional[TransactionType] = None quantity: Optional[int] = None unit_price: Optional[float] = None reference: Optional[str] = None notes: Optional[str] = None item_id: Optional[int] = None class TransactionInDBBase(TransactionBase): id: int user_id: int created_at: datetime updated_at: datetime class Config: from_attributes = True class Transaction(TransactionInDBBase): pass