import uuid
from typing import Any

from fastapi import APIRouter
from fastapi.responses import JSONResponse

from app.api.deps import SessionDep
from app.models import ProductEvent, ProductEventCreate

router = APIRouter()


@router.post("/")
def create_event(*, session: SessionDep, product_event_in: ProductEventCreate) -> Any:
    """
    Create new event.
    """
    event_data = {**product_event_in.model_dump(), "public_id": f"evt-{uuid.uuid4()}"}
    db_obj = ProductEvent.model_validate(event_data)

    session.add(db_obj)
    session.commit()
    session.refresh(db_obj)

    return JSONResponse(content={"status": "ok"})
