import aio_pika
from fastapi import Request

from rvpc.pydantic_models import NewCard


async def new_card_message(request: Request, loc_name: str) -> None:
    ex = await request.app.state.channel.get_exchange("new_card")
    message = NewCard(location_name=loc_name)

    await ex.publish(
        aio_pika.Message(body=message.model_dump_json().encode()),
        routing_key="",
    )
