import { jsx, jsxs } from "react/jsx-runtime";
import { B as Badge } from "./badge-J-zeQvMg.js";
import { format } from "date-fns";
import GradeSubmissionDialog from "./grade-submission-dialog-At4heYQ5.js";
import "@radix-ui/react-slot";
import "class-variance-authority";
import "./utils-DLCPGU0v.js";
import "clsx";
import "tailwind-merge";
import "./button-CdJZJLGw.js";
import "react";
import "./dialog-DGP_3dPQ.js";
import "@radix-ui/react-dialog";
import "lucide-react";
import "./scroll-area-CDdrLubh.js";
import "@radix-ui/react-scroll-area";
import "./assignment-grade-form-BUYKGynJ.js";
import "./input-error-D1JIzedA.js";
import "./loading-button-CCIxhJrY.js";
import "./input-BsvJqbcd.js";
import "./label-0rIIfpX0.js";
import "@radix-ui/react-label";
import "./select-BYx0MCUK.js";
import "@radix-ui/react-select";
import "./textarea-Z0d4V-ti.js";
import "@inertiajs/react";
const SubmissionsTableColumn = (translate) => {
  const { table } = translate;
  return [
    {
      accessorKey: "student",
      header: "Student Name",
      cell: ({ row }) => {
        const student = row.original.student;
        return /* @__PURE__ */ jsxs("div", { className: "py-1", children: [
          /* @__PURE__ */ jsx("p", { className: "font-medium", children: (student == null ? void 0 : student.name) || "N/A" }),
          /* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-xs", children: (student == null ? void 0 : student.email) || "" })
        ] });
      }
    },
    {
      accessorKey: "is_late",
      header: () => /* @__PURE__ */ jsx("div", { className: "text-center", children: "Submission" }),
      cell: ({ row }) => {
        const isLate = row.getValue("is_late");
        return /* @__PURE__ */ jsx("div", { className: "py-1 text-center", children: /* @__PURE__ */ jsx(Badge, { variant: isLate ? "destructive" : "default", children: isLate ? "Late Submission" : "On Time" }) });
      }
    },
    // {
    //    accessorKey: 'attachment_path',
    //    header: 'Submission',
    //    cell: ({ row }) => {
    //       const submission = row.original;
    //       return (
    //          <div className="py-1">
    //             {submission.attachment_type === 'url' ? (
    //                <a
    //                   target="_blank"
    //                   rel="noopener noreferrer"
    //                   href={submission.attachment_path}
    //                   className="text-primary flex items-center gap-1 text-sm hover:underline"
    //                >
    //                   <ExternalLink className="h-3 w-3" />
    //                   View URL
    //                </a>
    //             ) : (
    //                <a href={submission.attachment_path} download className="text-primary flex items-center gap-1 text-sm hover:underline">
    //                   <FileText className="h-3 w-3" />
    //                   Download File
    //                </a>
    //             )}
    //          </div>
    //       );
    //    },
    // },
    {
      accessorKey: "submitted_at",
      header: "Submitted At",
      cell: ({ row }) => {
        const date = row.getValue("submitted_at");
        return /* @__PURE__ */ jsxs("div", { className: "py-1 text-sm", children: [
          /* @__PURE__ */ jsx("p", { children: format(new Date(date), "MMM dd, yyyy") }),
          /* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-xs", children: format(new Date(date), "hh:mm a") })
        ] });
      }
    },
    {
      accessorKey: "status",
      header: () => /* @__PURE__ */ jsx("div", { className: "text-center", children: "Status" }),
      cell: ({ row }) => {
        const status = row.getValue("status");
        const isLate = row.original.is_late;
        const getVariant = () => {
          if (status === "graded") return "default";
          if (isLate) return "destructive";
          return "secondary";
        };
        const getLabel = () => {
          if (status === "graded") return "Graded";
          if (isLate) return "Late";
          return "Pending";
        };
        return /* @__PURE__ */ jsx("div", { className: "py-1 text-center", children: /* @__PURE__ */ jsx(Badge, { variant: getVariant(), children: getLabel() }) });
      }
    },
    {
      accessorKey: "marks_obtained",
      header: () => /* @__PURE__ */ jsx("div", { className: "text-center", children: "Marks" }),
      cell: ({ row }) => {
        var _a, _b, _c;
        const marks = row.getValue("marks_obtained");
        const submission = row.original;
        const isGraded = submission.status === "graded";
        const isLate = submission.is_late;
        const totalMarks = isLate ? ((_a = submission.assignment) == null ? void 0 : _a.late_total_mark) || 0 : ((_b = submission.assignment) == null ? void 0 : _b.total_mark) || 0;
        return /* @__PURE__ */ jsx("div", { className: "py-1 text-center", children: isGraded ? /* @__PURE__ */ jsxs("div", { children: [
          /* @__PURE__ */ jsxs("p", { className: "font-semibold", children: [
            marks,
            " / ",
            totalMarks
          ] }),
          isLate && /* @__PURE__ */ jsxs("p", { className: "text-muted-foreground text-xs", children: [
            "(Late: Max ",
            (_c = submission.assignment) == null ? void 0 : _c.late_total_mark,
            ")"
          ] })
        ] }) : /* @__PURE__ */ jsxs("div", { children: [
          /* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-sm", children: "Not Graded" }),
          /* @__PURE__ */ jsxs("p", { className: "text-muted-foreground text-xs", children: [
            "Max: ",
            totalMarks
          ] })
        ] }) });
      }
    },
    {
      id: "actions",
      header: () => /* @__PURE__ */ jsx("div", { className: "text-end", children: table.action }),
      cell: ({ row }) => {
        const submission = row.original;
        return /* @__PURE__ */ jsx("div", { className: "flex justify-end gap-2 py-1", children: /* @__PURE__ */ jsx(GradeSubmissionDialog, { submission }) });
      }
    }
  ];
};
export {
  SubmissionsTableColumn as default
};
