Adding opening dates and amount
This commit is contained in:
@@ -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")
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user