feat: tags for expenses, filters by tags in statistics
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user