import { createCoreAPIClient } from "@/lib/features/coreClient";

const coreClient = createCoreAPIClient();

export async function addDestinationUnitTravellerPermissions(payload: {
  travellerPermissions: {
    type: string;
    is_allowed: boolean;
    note?: string;
  }[];
  destination_id: string;
  unit_id: string;
}) {
  const response = await coreClient<null>(
    `/admin/v1/destinations/${payload.destination_id}/units/${payload.unit_id}/traveller-permissions`,
    {
      method: "POST",
      body: JSON.stringify({
        travellerPermissions: payload.travellerPermissions,
      }),
    },
  );
  return response;
}

export async function updateDestinationUnitTravellerPermissions(payload: {
  travellerPermissions: {
    id: string;
    type?: string;
    is_allowed?: boolean;
    note?: string;
  }[];
  destination_id: string;
  unit_id: string;
}) {
  const response = await coreClient<null>(
    `/admin/v1/destinations/${payload.destination_id}/units/${payload.unit_id}/traveller-permissions`,
    {
      method: "PATCH",
      body: JSON.stringify({
        travellerPermissions: payload.travellerPermissions,
      }),
    },
  );
  return response;
}

export async function deleteDestinationUnitTravellerPermissions(payload: {
  travellerPermissions: {
    id: string;
  }[];
  destination_id: string;
  unit_id: string;
}) {
  const response = await coreClient<null>(
    `/admin/v1/destinations/${payload.destination_id}/units/${payload.unit_id}/traveller-permissions`,
    {
      method: "DELETE",
      body: JSON.stringify({
        travellerPermissions: payload.travellerPermissions,
      }),
    },
  );
  return response;
}
