feat: additional expenses
This commit is contained in:
		
							
								
								
									
										52
									
								
								schemas/expense.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								schemas/expense.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,52 @@
 | 
			
		||||
import datetime
 | 
			
		||||
from typing import Optional
 | 
			
		||||
 | 
			
		||||
from schemas.base import OkMessageSchema, BaseSchema, PaginationInfoSchema
 | 
			
		||||
from schemas.user import UserSchema
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# region Entities
 | 
			
		||||
 | 
			
		||||
class ExpenseSchemaBase(BaseSchema):
 | 
			
		||||
    id: int
 | 
			
		||||
    name: str
 | 
			
		||||
    comment: str
 | 
			
		||||
    amount: float
 | 
			
		||||
    created_by_user: UserSchema
 | 
			
		||||
    spent_date: datetime.date
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class UpdateExpenseSchema(BaseSchema):
 | 
			
		||||
    id: Optional[int] = None
 | 
			
		||||
    name: str
 | 
			
		||||
    comment: Optional[str] = ""
 | 
			
		||||
    amount: float
 | 
			
		||||
    spent_date: datetime.date
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# endregion
 | 
			
		||||
 | 
			
		||||
# region Requests
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class UpdateExpenseRequest(BaseSchema):
 | 
			
		||||
    expense: UpdateExpenseSchema
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# endregion
 | 
			
		||||
 | 
			
		||||
# region Responses
 | 
			
		||||
 | 
			
		||||
class GetAllExpensesResponse(BaseSchema):
 | 
			
		||||
    expenses: list[ExpenseSchemaBase]
 | 
			
		||||
    pagination_info: PaginationInfoSchema
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class UpdateExpenseResponse(OkMessageSchema):
 | 
			
		||||
    pass
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class DeleteExpenseResponse(OkMessageSchema):
 | 
			
		||||
    pass
 | 
			
		||||
 | 
			
		||||
# endregion
 | 
			
		||||
		Reference in New Issue
	
	Block a user