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