import apiClient from "../api-client";
import { Color, ColorAPI, GetColorResponse, GetIndustryResponse, Industry, IndustryAPI } from "../types/models/design-templates";

export default class filterService {
  static async fetchIndustries(): Promise<GetIndustryResponse> {
    try {
      const response = await apiClient.post("/getIndustry", {
        pagination: false,
      });

      const dataArray: IndustryAPI[] = response.data?.message?.data ?? [];

      const industries: Industry[] = dataArray.map((item) => ({
        _id: item._id,
        name: item.IndustriesName,
        status: item.status,
      }));

      return {
        success: response.data?.status ?? true,
        data: industries,
        message: "Industries fetched successfully",
      };
    } catch (error) {
      console.error("Error in filterService:fetchIndustries", error);
      throw error;
    }
  }

  static async fetchColors(): Promise<GetColorResponse> {
    try {
      const response = await apiClient.post("/getColor", {
        pagination: false,
      });

      const dataArray: ColorAPI[] = response.data?.message?.data ?? [];

      const colors: Color[] = dataArray.map((item) => ({
        _id: item._id,
        name: item.ColorName,
        hexCode: item.HexCode,
        isActive: item.IsActive,
      }));

      return {
        success: response.data?.status ?? true,
        data: colors,
        message: "Colors fetched successfully",
      };
    } catch (error) {
      console.error("Error in filterService:fetchColors", error);
      throw error;
    }
  }
}
