from fastapi import APIRouter, Depends, Query
from sqlalchemy.orm import Session

from app.database import get_db
from app.dependencies import require_admin_token
from app.models import User
from app.schemas import ContactMessageListResponse, ContactMessageOut
from app.services.contact_service import list_contact_messages

router = APIRouter(tags=["admin-contact"])


@router.get(
    "/list-contact-messages",
    response_model=ContactMessageListResponse,
    summary="List landing-page contact form submissions",
)
def get_contact_messages(
    db: Session = Depends(get_db),
    _: User = Depends(require_admin_token),
    skip: int = Query(0, ge=0),
    limit: int = Query(50, ge=1, le=200),
):
    rows, total = list_contact_messages(db, skip=skip, limit=limit)
    return ContactMessageListResponse(
        total=total,
        messages=[ContactMessageOut.model_validate(row) for row in rows],
    )
