import { getSettings } from "@/lib/session";
import { updateSettingsAction } from "@/server/actions/admin";

export default async function AdminSettingsPage({
  searchParams,
}: {
  searchParams: Promise<{ ok?: string }>;
}) {
  const s = await getSettings();
  const sp = await searchParams;
  return (
    <div>
      <h1 className="text-2xl font-semibold">Settings</h1>
      {sp.ok && <p className="mt-2 text-sm text-[var(--lime)]">Guardado.</p>}
      <form action={updateSettingsAction} className="card mt-4 space-y-3">
        <div className="grid gap-3 sm:grid-cols-2">
          <div>
            <label className="label">Client fee %</label>
            <input className="input" name="clientFeePercent" type="number" step="0.1" defaultValue={s.clientFeePercent} />
          </div>
          <div>
            <label className="label">Founder client fee %</label>
            <input className="input" name="founderClientFeePercent" type="number" step="0.1" defaultValue={s.founderClientFeePercent} />
          </div>
          <div>
            <label className="label">Contractor retention %</label>
            <input className="input" name="contractorRetentionPercent" type="number" step="0.1" defaultValue={s.contractorRetentionPercent} />
          </div>
          <div>
            <label className="label">Founder retention %</label>
            <input className="input" name="founderContractorRetentionPercent" type="number" step="0.1" defaultValue={s.founderContractorRetentionPercent} />
          </div>
          <div>
            <label className="label">Monthly fee</label>
            <input className="input" name="contractorMonthlyFee" type="number" step="0.01" defaultValue={s.contractorMonthlyFee} />
          </div>
          <div>
            <label className="label">Founders limit</label>
            <input className="input" name="foundersLimit" type="number" defaultValue={s.foundersLimit} />
          </div>
          <div>
            <label className="label">Activation days</label>
            <input className="input" name="founderActivationDays" type="number" defaultValue={s.founderActivationDays} />
          </div>
          <div>
            <label className="label">Max listings</label>
            <input className="input" name="maxListingsPerUser" type="number" defaultValue={s.maxListingsPerUser} />
          </div>
          <div>
            <label className="label">Max jobs</label>
            <input className="input" name="maxJobsPerUser" type="number" defaultValue={s.maxJobsPerUser} />
          </div>
          <div>
            <label className="label">Auction days</label>
            <input className="input" name="auctionDefaultDays" type="number" defaultValue={s.auctionDefaultDays} />
          </div>
        </div>
        <input className="input" name="platformName" defaultValue={s.platformName} />
        <input className="input" name="supportEmail" defaultValue={s.supportEmail} />
        <input className="input" name="supportPhone" defaultValue={s.supportPhone} />
        <textarea className="input" name="blockedKeywords" defaultValue={s.blockedKeywords} />

        {[
          ["chatFilterEnabled", s.chatFilterEnabled, "Chat filter"],
          ["requireVerification", s.requireVerification, "Require verification"],
          ["autoApproveListings", s.autoApproveListings, "Auto approve listings"],
          ["maintenanceMode", s.maintenanceMode, "Maintenance mode"],
          ["allowGuestBrowse", s.allowGuestBrowse, "Allow guest browse"],
          ["moduleServices", s.moduleServices, "Module services"],
          ["moduleClassifieds", s.moduleClassifieds, "Module classifieds"],
          ["moduleJobs", s.moduleJobs, "Module jobs"],
          ["jobPostRequireVerify", s.jobPostRequireVerify, "Job post requires verify"],
          ["notifyAdminsOnTicket", s.notifyAdminsOnTicket, "Notify admins on ticket"],
        ].map(([name, checked, label]) => (
          <label key={String(name)} className="flex items-center gap-2 text-sm">
            <input
              type="checkbox"
              name={String(name)}
              defaultChecked={Boolean(checked)}
            />
            {String(label)}
          </label>
        ))}
        <button className="btn-primary" type="submit">
          Guardar settings
        </button>
      </form>
    </div>
  );
}
