import { axiosClient } from "@/lib/axios";
import { ApiResponse } from "@/types/api.types";
import {
  CreateOrganizationPayload,
  UpdateOrganizationPayload,
  Organization,
} from "../types/organization.type";

export const organizationService = {
  getOrganization: async (): Promise<ApiResponse<Organization>> => {
    const response = await axiosClient.get<ApiResponse<Organization>>(
      "/organizations/get-organization"
    );
    return response.data;
  },

  createOrganization: async (
    payload: CreateOrganizationPayload
  ): Promise<ApiResponse<Organization>> => {
    const formData = new FormData();
    formData.append("name", payload.name);
    formData.append("gstin", payload.gstin);
    if (payload.logo) formData.append("logo", payload.logo);

    const response = await axiosClient.post<ApiResponse<Organization>>(
      "/organizations/create-organization",
      formData,
      {
        headers: { "Content-Type": "multipart/form-data" },
      }
    );
    return response.data;
  },

  updateOrganization: async (
    payload: UpdateOrganizationPayload
  ): Promise<ApiResponse<Organization>> => {
    const formData = new FormData();
    if (payload.name) formData.append("name", payload.name);
    if (payload.gstin) formData.append("gstin", payload.gstin);

    if (payload.logo) formData.append("logo", payload.logo);

    const response = await axiosClient.put<ApiResponse<Organization>>(
      "/organizations/update-organization",
      formData,
      {
        headers: { "Content-Type": "multipart/form-data" },
      }
    );
    return response.data;
  },
};
