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 TransactionResponse(PydanticBaseModel): transaction_date: datetime category: str name_description: str amount: float type: TransactionType class TransactionCreate(TransactionResponse): user_id: int class Transaction(TransactionResponse): user: User class IncomeStatementCreate(PydanticBaseModel): user_id: int date_from: datetime date_to: datetime class IncomeStatementResponse(PydanticBaseModel): id: int date_from: datetime date_to: datetime income: dict expenses: dict