part of '../printer.dart';

abstract class IPrinterRepository {
  Future<Either<PrinterFailure, bool>> connectBluetooth(String macAddress);
  Future<Either<PrinterFailure, bool>> disconectBluetooth();
  Future<Either<PrinterFailure, bool>> isBluetoothEnabled();
  Future<Either<PrinterFailure, List<BluetoothInfo>>>
  getPairedBluetoothDevices();
  Future<Either<PrinterFailure, Unit>> createPrinter(Printer printer);
  Future<Either<PrinterFailure, Unit>> updatePrinter(Printer printer, int id);
  Future<Either<PrinterFailure, Unit>> deletePrinter(int id);
  Future<Either<PrinterFailure, Printer>> getPrinterByCode(String code);
  Future<Either<PrinterFailure, bool>> printStruct(
    Printer printer,
    List<int> printValue,
  );

  Future<Either<PrinterFailure, Unit>> printStruckOrder({required Order order});
  Future<Either<PrinterFailure, Unit>> printStruckSaveOrder({
    required Order order,
  });
  Future<Either<PrinterFailure, Unit>> printStruckCashier({
    required Order order,
  });
  Future<Either<PrinterFailure, Unit>> printStruckPayment({
    required Order order,
  });
  Future<Either<PrinterFailure, Unit>> printStruckChecker({
    required Order order,
  });
  Future<Either<PrinterFailure, Unit>> printStruckKitchen({
    required Order order,
  });
  Future<Either<PrinterFailure, Unit>> printStruckBar({required Order order});
  Future<Either<PrinterFailure, Unit>> printStruckVoid({required Order order});
  Future<Either<PrinterFailure, Unit>> printStruckSplitBill({
    required Order order,
  });
}
