"use server";

import FileOp from "@/lib/cpanel/api2/Fileman/fileop";
import DelSubDomain from "@/lib/cpanel/api2/SubDomain/DelSubDomain";
import { ServerResponse } from "@/lib/actions";
import { getCpanelVars } from "@/models/cpanel";
import { ResultSetHeader } from "mysql2";
import { ServerAction } from "@/lib/actions";

export default async function deleteSubdomain(formData: FormData) {
  const { error, con, dict } = await ServerAction();

  if (error) {
    return ServerResponse({
      operation: false,
      data: error,
    });
  }

  const cpanel = getCpanelVars();

  const site = formData.get("site") as string;

  try {
    await DelSubDomain({
      domain: `${site}.${cpanel.domain}`,
    });

    await FileOp({
      operation: "trash",
      sourceFiles: `FEDSITE_${site}`,
    });

    await con.query<ResultSetHeader>("DELETE FROM DOMAINS WHERE NAME = ?", [
      site,
    ]);

    return ServerResponse({
      operation: true,
      message: dict.alerts.delete_project.success,
    });
  } catch (error) {
    return ServerResponse({
      operation: false,
      message: dict.alerts.general.unexpected_error,
      data: error,
    });
  } finally {
    con.release();
  }
}
