# app/modules/payments/routes/api/admin.py
"""
Admin routes for payments module.

Provides routes for:
- Payment gateway configuration
- Transaction monitoring
- Refund management
"""

import logging

from fastapi import APIRouter, Depends

from app.api.deps import require_module_access
from app.modules.enums import FrontendType

router = APIRouter(
    prefix="/payments",
    dependencies=[Depends(require_module_access("payments", FrontendType.ADMIN))],
)
logger = logging.getLogger(__name__)


@router.get("/gateways")  # noqa: API001
async def list_gateways():
    """List configured payment gateways."""
    # TODO: Implement gateway listing
    return {
        "gateways": [
            {"code": "stripe", "name": "Stripe", "enabled": True},
            {"code": "paypal", "name": "PayPal", "enabled": False},
            {"code": "bank_transfer", "name": "Bank Transfer", "enabled": True},
        ]
    }


@router.get("/transactions")  # noqa: API001
async def list_transactions():
    """List recent transactions across all gateways."""
    # TODO: Implement transaction listing
    return {"transactions": [], "total": 0}


@router.post("/refunds/{transaction_id}")  # noqa: API-004, API001
async def issue_refund(transaction_id: str, amount: float | None = None):
    """Issue a refund for a transaction."""
    # TODO: Implement refund logic
    return {
        "status": "pending",
        "transaction_id": transaction_id,
        "refund_amount": amount,
    }
