"""Public contact form."""
import os
from datetime import datetime, timezone
from fastapi import APIRouter

from deps import get_db
from models import ContactIn
from emailer import send_email, render_contact_admin

router = APIRouter(prefix="/contact", tags=["contact"])


@router.post("")
async def submit_contact(payload: ContactIn):
    db = get_db()
    doc = {**payload.model_dump(), "created_at": datetime.now(timezone.utc).isoformat()}
    await db.contact_messages.insert_one(doc)
    recipient = os.environ.get("CONTACT_RECIPIENT_EMAIL", os.environ.get("ADMIN_EMAIL"))
    html = render_contact_admin(payload.name, payload.email, payload.company or "", payload.message)
    result = await send_email(recipient, f"Nuevo lead: {payload.name}", html, reply_to=payload.email)
    return {"ok": True, "email_sent": result.get("ok", False)}
