feat: income

This commit is contained in:
2024-12-12 20:23:19 +04:00
parent daa34b2808
commit e5712224e1
16 changed files with 574 additions and 463 deletions

View File

@@ -1,86 +0,0 @@
import datetime
from typing import Optional
from schemas.base import OkMessageSchema, BaseSchema, PaginationInfoSchema
from schemas.user import UserSchema
# region Entities
class BaseExpenseTagSchema(BaseSchema):
name: str
class ExpenseTagSchema(BaseExpenseTagSchema):
id: int
class ExpenseSchemaBase(BaseSchema):
id: int
name: str
comment: str
amount: float
created_by_user: UserSchema
spent_date: datetime.date
tags: list[ExpenseTagSchema]
class UpdateExpenseSchema(BaseSchema):
id: Optional[int] = None
name: str
comment: Optional[str] = ""
amount: float
spent_date: datetime.date
tags: list[str] = []
# endregion
# region Requests
class UpdateExpenseRequest(BaseSchema):
expense: UpdateExpenseSchema
class CreateExpenseTagRequest(BaseSchema):
tag: BaseExpenseTagSchema
class UpdateExpenseTagRequest(BaseSchema):
tag: ExpenseTagSchema
# endregion
# region Responses
class GetAllExpensesResponse(BaseSchema):
expenses: list[ExpenseSchemaBase]
pagination_info: PaginationInfoSchema
class UpdateExpenseResponse(OkMessageSchema):
pass
class DeleteExpenseResponse(OkMessageSchema):
pass
class GetAllExpenseTagsResponse(BaseSchema):
tags: list[ExpenseTagSchema]
class CreateExpenseTagResponse(OkMessageSchema):
pass
class UpdateExpenseTagResponse(OkMessageSchema):
pass
class DeleteExpenseTagResponse(OkMessageSchema):
pass
# endregion

View File

@@ -31,7 +31,8 @@ class CommonProfitFilters(BaseSchema):
base_marketplace_key: str
deal_status_id: int
manager_id: int
tag_id: int
expense_tag_id: int
income_tag_id: int
class GetProfitChartDataRequest(CommonProfitFilters):

97
schemas/transaction.py Normal file
View File

@@ -0,0 +1,97 @@
import datetime
from typing import Optional
from schemas.base import OkMessageSchema, BaseSchema, PaginationInfoSchema
from schemas.user import UserSchema
# region Entities
class BaseTransactionTagSchema(BaseSchema):
name: str
is_income: bool
class TransactionTagSchema(BaseTransactionTagSchema):
id: int
class TransactionSchemaBase(BaseSchema):
id: int
name: str
comment: str
amount: float
created_by_user: UserSchema
spent_date: datetime.date
is_income: bool
tags: list[TransactionTagSchema]
class UpdateTransactionSchema(BaseSchema):
id: Optional[int] = None
name: str
comment: Optional[str] = ""
amount: float
spent_date: datetime.date
is_income: bool
tags: list[str] = []
# endregion
# region Requests
class GetAllTransactionsRequest(BaseSchema):
is_income: bool
class UpdateTransactionRequest(BaseSchema):
transaction: UpdateTransactionSchema
class CreateTransactionTagRequest(BaseSchema):
tag: BaseTransactionTagSchema
class UpdateTransactionTagRequest(BaseSchema):
tag: TransactionTagSchema
# endregion
# region Responses
class GetAllTransactionsResponse(BaseSchema):
transactions: list[TransactionSchemaBase]
pagination_info: PaginationInfoSchema
class UpdateTransactionResponse(OkMessageSchema):
pass
class DeleteTransactionResponse(OkMessageSchema):
pass
class GetTransactionTagsResponse(BaseSchema):
tags: list[TransactionTagSchema]
class GetAllTransactionTagsResponse(BaseSchema):
tags: list[TransactionTagSchema]
class CreateTransactionTagResponse(OkMessageSchema):
pass
class UpdateTransactionTagResponse(OkMessageSchema):
pass
class DeleteTransactionTagResponse(OkMessageSchema):
pass
# endregion