import {
  BillingCheckoutResponse,
  GetCourseByIdResponse,
  MyCourse,
  MyCourseProgress,
} from "@/lib/types/courses";
import { GetCourseByIdForCurrentUserResponse } from "../../types/courses";
import { axiosInstance } from "@/lib/api/services/apiClient";

export const LearnerCourseService = {
  async coursesProgress({
    data,
  }: {
    data: {
      courseId: number;
      lastLessonId: number;
      lastStepId: number;
    //   completed?: boolean;
    };
  }): Promise<MyCourseProgress> {
    const response = await axiosInstance.patch("/me/courses/progress", data);
    return response.data;
  },

  async myCourses(): Promise<MyCourse[]> {
    const response = await axiosInstance.get("/me/courses");
    return response.data;
  },

  async getCourseByIdForAnyOne({
    courseId,
  }: {
    courseId: number;
  }): Promise<GetCourseByIdResponse> {
    const response = await axiosInstance.get(`/courses/${courseId}/content`);
    return response.data;
  },

  async getCourseByIdForCurrentUser({
    courseId,
  }: {
    courseId: number;
  }): Promise<GetCourseByIdForCurrentUserResponse> {
    const response = await axiosInstance.get(`/me/courses/${courseId}/content`);
    return response.data;
  },

  async billingCheckout(courseData: {
    courseId: number;
  }): Promise<BillingCheckoutResponse> {
    const response = await axiosInstance.post("/billing/checkout", courseData);
    return response.data;
  },
};
