import 'package:niogu_app/features/goods/raw_materials/domain/entities/raw_material.dart';
import 'package:niogu_app/features/pos/domain/entities/pos.dart';

abstract class IPosRepository {
  Stream<List<DisplayProductPos>> watchDisplayProductPos(String outletId);

  Stream<List<AlreadyCustomer>> watchAlreadyCustomers(String outletId);

  Future<bool> checkRawMaterialStockSufficient(
    String productVariantId,
    double productQuantity,
  );

  Future<List<UpdateStockRawMaterial>> getProductUseMaterials(
    String productVariantId,
    double productQuantity,
  );

  Future<void> addSale(
    CustomerInformation? customer,
    NewSale newSale,
    List<ItemSale> itemSales,
  );
}
