hesabixArc/hesabixAPI/adapters/api/v1/tax_units.py

64 lines
2.2 KiB
Python
Raw Normal View History

2025-10-07 00:46:29 +03:30
from fastapi import APIRouter, Depends, Request
2025-09-30 17:12:53 +03:30
from sqlalchemy.orm import Session
2025-10-07 00:46:29 +03:30
from typing import Dict, Any
2025-09-30 17:12:53 +03:30
from adapters.db.session import get_db
from adapters.db.models.tax_unit import TaxUnit
from adapters.api.v1.schemas import SuccessResponse
2025-10-07 00:46:29 +03:30
from app.core.responses import success_response
2025-09-30 17:12:53 +03:30
router = APIRouter(prefix="/tax-units", tags=["tax-units"])
2025-10-07 00:46:29 +03:30
@router.get("/",
summary="لیست واحدهای مالیاتی",
description="دریافت لیست تمام واحدهای مالیاتی استاندارد",
2025-09-30 17:12:53 +03:30
response_model=SuccessResponse,
responses={
200: {
"description": "لیست واحدهای مالیاتی با موفقیت دریافت شد",
"content": {
"application/json": {
"example": {
"success": True,
"message": "لیست واحدهای مالیاتی دریافت شد",
"data": [
{
"id": 1,
2025-10-07 00:46:29 +03:30
"name": "کیلوگرم",
"code": "کیلوگرم",
"description": None,
2025-09-30 17:12:53 +03:30
"created_at": "2024-01-01T00:00:00Z",
"updated_at": "2024-01-01T00:00:00Z"
}
]
}
}
}
}
}
)
2025-10-07 00:46:29 +03:30
def list_tax_units(
2025-09-30 17:12:53 +03:30
request: Request,
db: Session = Depends(get_db)
2025-10-07 00:46:29 +03:30
) -> Dict[str, Any]:
"""دریافت لیست تمام واحدهای مالیاتی استاندارد"""
2025-09-30 17:12:53 +03:30
2025-10-07 00:46:29 +03:30
# Query all tax units (they are global now)
tax_units = db.query(TaxUnit).order_by(TaxUnit.name).all()
2025-09-30 17:12:53 +03:30
# Convert to response format
tax_unit_dicts = []
for tax_unit in tax_units:
tax_unit_dict = {
"id": tax_unit.id,
"name": tax_unit.name,
"code": tax_unit.code,
"description": tax_unit.description,
"created_at": tax_unit.created_at.isoformat(),
"updated_at": tax_unit.updated_at.isoformat()
}
2025-10-07 00:46:29 +03:30
tax_unit_dicts.append(tax_unit_dict)
2025-09-30 17:12:53 +03:30
2025-10-07 00:46:29 +03:30
return success_response(tax_unit_dicts, request)