feat: tags for expenses, filters by tags in statistics

This commit is contained in:
2024-11-27 15:49:33 +04:00
parent 48c88cb93a
commit 88ce256850
7 changed files with 271 additions and 36 deletions

View File

@@ -7,6 +7,14 @@ from schemas.user import UserSchema
# region Entities
class BaseExpenseTagSchema(BaseSchema):
name: str
class ExpenseTagSchema(BaseExpenseTagSchema):
id: int
class ExpenseSchemaBase(BaseSchema):
id: int
name: str
@@ -14,6 +22,7 @@ class ExpenseSchemaBase(BaseSchema):
amount: float
created_by_user: UserSchema
spent_date: datetime.date
tags: list[ExpenseTagSchema]
class UpdateExpenseSchema(BaseSchema):
@@ -22,6 +31,7 @@ class UpdateExpenseSchema(BaseSchema):
comment: Optional[str] = ""
amount: float
spent_date: datetime.date
tags: list[str] = []
# endregion
@@ -33,6 +43,14 @@ class UpdateExpenseRequest(BaseSchema):
expense: UpdateExpenseSchema
class CreateExpenseTagRequest(BaseSchema):
tag: BaseExpenseTagSchema
class UpdateExpenseTagRequest(BaseSchema):
tag: ExpenseTagSchema
# endregion
# region Responses
@@ -49,4 +67,20 @@ class UpdateExpenseResponse(OkMessageSchema):
class DeleteExpenseResponse(OkMessageSchema):
pass
class GetAllExpenseTagsResponse(BaseSchema):
tags: list[ExpenseTagSchema]
class CreateExpenseTagResponse(OkMessageSchema):
pass
class UpdateExpenseTagResponse(OkMessageSchema):
pass
class DeleteExpenseTagResponse(OkMessageSchema):
pass
# endregion