import {
  Category,
  CategoryFormValues,
} from "../../data/datasource/api/entities/category";

/**
 * Interface representing a repository for handling category-related operations.
 */
export interface CategoryRepositoryInf {
  /**
   * Registers a new category.
   * @param form - The category data to register.
   * @returns A promise that resolves when the category is registered.
   */
  registerCategory(form: CategoryFormValues): Promise<void>;

  /**
   * Retrieves a list of categories.
   * @returns A promise that resolves to an array of Category objects.
   */
  getCategories(): Promise<Category[]>;

  /**
   * Deletes an existing category.
   * @param category - The category to delete.
   * @returns A promise that resolves when the category is deleted.
   */
  deleteCategory(category: Category): Promise<void>;
}
