feat: income
This commit is contained in:
@@ -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
|
||||
@@ -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
97
schemas/transaction.py
Normal 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
|
||||
Reference in New Issue
Block a user