from enum import Enum from datetime import datetime from typing import List, Optional from app.schema.base import BaseModel, PydanticBaseModel class TransactionType(str, Enum): INCOME = "income" EXPENSE = "expense" class UserCreate(PydanticBaseModel): name: str email: str hashed_password: str class UserUpdate(PydanticBaseModel): name: str email: str hashed_password: str class UserResponse(PydanticBaseModel): id: int name: str email: str is_deleted: bool class User(BaseModel): name: str email: str hashed_password: str is_deleted: bool = False transactions: "List[Transaction]" = [] class TransactionOutput(BaseModel): transaction_date: datetime category: str name_description: str amount: float type: TransactionType class Transaction(TransactionOutput): user: User