Adding opening dates and amount

This commit is contained in:
2025-02-04 23:23:41 +01:00
parent f26bd9846a
commit 39c4ab9102
2 changed files with 16 additions and 9 deletions

View File

@@ -6,7 +6,7 @@ from fastapi_pagination import Page
from fastapi_pagination.ext.sqlmodel import paginate
from account.account_routes import AccountFilters
from account.schemas import AccountRead, CategoryCreate, CategoryUpdate
from account.schemas import CategoryRead, CategoryCreate, CategoryUpdate
from account.models import Account
from db import SessionDep
from user.manager import get_current_user
@@ -14,37 +14,37 @@ from user.manager import get_current_user
router = APIRouter()
@router.post("")
def create_category(category: CategoryCreate, session: SessionDep, current_user=Depends(get_current_user)) -> AccountRead:
def create_category(category: CategoryCreate, session: SessionDep, current_user=Depends(get_current_user)) -> CategoryRead:
result = Account.create(category, session)
return result
@router.get("")
def read_categories(session: SessionDep,
filters: AccountFilters = FilterDepends(AccountFilters),
current_user=Depends(get_current_user)) -> Page[AccountRead]:
current_user=Depends(get_current_user)) -> Page[CategoryRead]:
return paginate(session, Account.list_categories(filters))
@router.get("expenses")
def read_expenses(session: SessionDep,
filters: AccountFilters = FilterDepends(AccountFilters),
current_user=Depends(get_current_user)) -> Page[AccountRead]:
current_user=Depends(get_current_user)) -> Page[CategoryRead]:
return paginate(session, Account.list_expenses(filters))
@router.get("incomes")
def read_incomes(session: SessionDep,
filters: AccountFilters = FilterDepends(AccountFilters),
current_user=Depends(get_current_user)) -> Page[AccountRead]:
current_user=Depends(get_current_user)) -> Page[CategoryRead]:
return paginate(session, Account.list_incomes(filters))
@router.get("/{category_id}")
def read_category(category_id: UUID, session: SessionDep, current_user=Depends(get_current_user)) -> AccountRead:
def read_category(category_id: UUID, session: SessionDep, current_user=Depends(get_current_user)) -> CategoryRead:
category = Account.get(session, category_id)
if not category:
raise HTTPException(status_code=404, detail="Category not found")
return category
@router.put("/{category_id}")
def update_category(category_id: UUID, category: CategoryUpdate, session: SessionDep, current_user=Depends(get_current_user)) -> AccountRead:
def update_category(category_id: UUID, category: CategoryUpdate, session: SessionDep, current_user=Depends(get_current_user)) -> CategoryRead:
db_category = Account.get(session, category_id)
if not db_category:
raise HTTPException(status_code=404, detail="Category not found")

View File

@@ -1,3 +1,5 @@
from datetime import date
from decimal import Decimal
from typing import Optional
from uuid import UUID, uuid4
@@ -7,7 +9,6 @@ from pydantic import Field as PydField
from account.enums import Asset, Liability, CategoryFamily
class AccountBase(SQLModel):
name: str = Field(index=True)
parent_account_id: Optional[UUID] = Field(default=None, foreign_key="account.id")
@@ -19,11 +20,14 @@ class AccountBaseId(AccountBase):
path: str = Field(index=True)
class AccountRead(AccountBaseId):
pass
opening_date: date = Field()
opening_balance: Decimal = Field(decimal_places=2, default=0)
class BaseAccountWrite(AccountBase):
path: SkipJsonSchema[str] = Field(default="")
family: SkipJsonSchema[str] = Field(default="")
opening_date: date = Field()
opening_balance: Decimal = Field(decimal_places=2, default=0)
class AccountWrite(BaseAccountWrite):
type: Asset | Liability = Field()
@@ -43,6 +47,9 @@ class AccountCreate(AccountWrite):
class AccountUpdate(AccountWrite):
pass
class CategoryRead(AccountBaseId):
pass
class CategoryWrite(BaseAccountWrite):
type: CategoryFamily = Field()