admin felület fejlesztése garázs, előfizeztési csomagok
This commit is contained in:
54
backend/app/api/v1/endpoints/regions.py
Normal file
54
backend/app/api/v1/endpoints/regions.py
Normal file
@@ -0,0 +1,54 @@
|
||||
# /opt/docker/dev/service_finder/backend/app/api/v1/endpoints/regions.py
|
||||
"""
|
||||
🌍 Global Region Registry API Endpoint.
|
||||
|
||||
Public endpoint that returns the list of active region configurations.
|
||||
Used by the frontend to drive locale-aware formatting (dates, numbers, currencies)
|
||||
and financial calculations (VAT, pricing).
|
||||
|
||||
Schema: system.region_config
|
||||
"""
|
||||
import logging
|
||||
from typing import List
|
||||
|
||||
from fastapi import APIRouter, Depends
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
from sqlalchemy import select
|
||||
|
||||
from app.api.deps import get_db
|
||||
from app.models.core_logic import RegionConfig
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@router.get("/regions", response_model=List[dict])
|
||||
async def list_active_regions(
|
||||
db: AsyncSession = Depends(get_db),
|
||||
):
|
||||
"""
|
||||
GET /api/v1/system/regions
|
||||
|
||||
Returns all active region configurations from the system.region_config table.
|
||||
This is a public endpoint (no auth required) used by the frontend to:
|
||||
- Format dates, numbers, and currencies according to locale
|
||||
- Calculate VAT rates for pricing
|
||||
- Determine timezone for date displays
|
||||
"""
|
||||
stmt = select(RegionConfig).where(RegionConfig.is_active == True).order_by(RegionConfig.country_code)
|
||||
result = await db.execute(stmt)
|
||||
regions = result.scalars().all()
|
||||
|
||||
return [
|
||||
{
|
||||
"country_code": r.country_code,
|
||||
"name": r.name,
|
||||
"currency": r.currency,
|
||||
"default_vat_rate": r.default_vat_rate,
|
||||
"locale_code": r.locale_code,
|
||||
"timezone": r.timezone,
|
||||
"is_active": r.is_active,
|
||||
}
|
||||
for r in regions
|
||||
]
|
||||
Reference in New Issue
Block a user