import ApiService from "./ApiService";

// Subscription Plan interfaces
export interface SubscriptionPlan {
  id: number;
  company_id: number;
  company_name: string;
  subscription_id: number;
  subscription_start_date: string;
  subscription_end_date: string;
  duration: number;
  duration_type: string;
  subscription_amount: number;
  status: string;
  created_at: string;
  updated_at: string;
}

export interface SubscriptionPlanFilters {
  search?: string;
  company_id?: string;
  from_date?: string;
  to_date?: string;
  status?: string;
  page?: number;
  limit?: number;
  column_name?: string;
  order?: "ASC" | "DESC";
}

export interface SubscriptionPlanListResponse {
  success: boolean;
  message?: string;
  data: {
    data: SubscriptionPlan[];
    total: number;
    page: number;
    limit: number;
  };
}

// Get Subscription Plans with filters
export async function getSubscriptionPlans(filters?: SubscriptionPlanFilters) {
  const params: any = {
    search: filters?.search || "",
    page: filters?.page || 1,
    limit: filters?.limit || 10,
  };

  if (filters?.company_id) {
    params.company_id = filters.company_id;
  }

  if (filters?.from_date) {
    params.from_date = filters.from_date;
  }

  if (filters?.to_date) {
    params.to_date = filters.to_date;
  }

  if (filters?.status) {
    params.status = filters.status;
  }

  if (filters?.column_name) {
    params.column_name = filters.column_name;
  }

  if (filters?.order) {
    params.order = filters.order;
  }

  return ApiService.request<SubscriptionPlanListResponse>({
    url: "/company-subscription-histories",
    method: "get",
    params,
  });
}

