import { prisma } from "@/lib/prisma";
import { createReviewAction } from "@/server/actions/classifieds";

export async function ReviewForm({
  orderId,
  requestId,
}: {
  orderId?: string;
  requestId?: string;
}) {
  let contractorId: number | null = null;
  if (requestId) {
    const req = await prisma.serviceRequest.findUnique({
      where: { id: Number(requestId) },
    });
    contractorId = req?.contractorId ?? null;
  }
  if (orderId) {
    const order = await prisma.order.findUnique({ where: { id: Number(orderId) } });
    if (order?.requestId) {
      const req = await prisma.serviceRequest.findUnique({
        where: { id: order.requestId },
      });
      contractorId = req?.contractorId ?? null;
    }
  }

  return (
    <form action={createReviewAction} className="card mt-6 space-y-3">
      <h2 className="font-semibold">Dejar reseña</h2>
      {orderId && <input type="hidden" name="orderId" value={orderId} />}
      {requestId && <input type="hidden" name="requestId" value={requestId} />}
      {contractorId && (
        <input type="hidden" name="contractorId" value={contractorId} />
      )}
      <select className="input" name="rating" defaultValue="5">
        {[5, 4, 3, 2, 1].map((n) => (
          <option key={n} value={n}>
            {n} estrellas
          </option>
        ))}
      </select>
      <textarea
        className="input"
        name="comment"
        placeholder="Comentario"
        required
      />
      <button className="btn-primary" type="submit">
        Publicar reseña
      </button>
    </form>
  );
}
