import { exec } from "../exec";

type Payload = {
  project: string;
  domain: string;
  db: string;
  ssl: "letsencrypt" | "none";
};

export async function deployToPrd(jobId: number, payload: Payload) {
  payload.db = payload.db || payload.project;
  
  if (!/^[a-zA-Z0-9_-]+$/.test(payload.project)) throw new Error("Invalid project");
  if (!/^[a-zA-Z0-9.-]+$/.test(payload.domain)) throw new Error("Invalid domain");
  if (!/^[a-zA-Z0-9_-]+$/.test(payload.db)) throw new Error("Invalid db");

  const scriptPath = "/var/www/html/wordpress-manager-v2/scripts/deploy-to-prd.sh";

  await exec(jobId, "bash", [
    scriptPath,
    payload.project,
    payload.domain,
    payload.db,
    payload.ssl
  ]);
}
