import { ManagerParamsEntity } from '../entities';

export interface IBaseDataServicesRepository {
  handleCustomRequest(manager: ManagerParamsEntity): Promise<void>;

  //get data
  handleGetOne(manager: ManagerParamsEntity): Promise<void>;
  handleGetMany(manager: ManagerParamsEntity): Promise<void>;

  //create and edit
  handleCreate(manager: ManagerParamsEntity): Promise<void>;
  handleEdit(manager: ManagerParamsEntity): Promise<void>;

  //delete
  handleDelete(manager: ManagerParamsEntity): Promise<void>;
  handleBatchDelete(manager: ManagerParamsEntity): Promise<void>;

  //confirm process data
  handleConfirmProcessData(manager: ManagerParamsEntity): Promise<void>;
  handleBatchConfirmProcessData(manager: ManagerParamsEntity): Promise<void>;

  //cancel data
  handleCancelProcessData(manager: ManagerParamsEntity): Promise<void>;
  handleBatchCancelProcessData(manager: ManagerParamsEntity): Promise<void>;

  //activate
  handleActivate(manager: ManagerParamsEntity): Promise<void>;
  handleBatchActivate(manager: ManagerParamsEntity): Promise<void>;

  //deactivate
  handleDeactivate(manager: ManagerParamsEntity): Promise<void>;
  handleBatchDeactivate(manager: ManagerParamsEntity): Promise<void>;

  //confirm process transaction
  handleConfirmProcessTransaction(manager: ManagerParamsEntity): Promise<void>;
  handleBatchConfirmProcessTransaction(manager: ManagerParamsEntity): Promise<void>;

  //confirm cancel transaction
  handleCancelProcessTransaction(manager: ManagerParamsEntity): Promise<void>;
  handleBatchCancelProcessTransaction(manager: ManagerParamsEntity): Promise<void>;

  //confirm rollback transaction
  handleRollbackProcessTransaction(manager: ManagerParamsEntity): Promise<void>;
  handleBatchRollbackProcessTransaction(manager: ManagerParamsEntity): Promise<void>;

  //confirm hold transaction
  handleHoldProcessTransaction(manager: ManagerParamsEntity): Promise<void>;
  handleBatchHoldProcessTransaction(manager: ManagerParamsEntity): Promise<void>;
}
