/// Order Repository Interface
///
/// Defines the contract for order-related data operations.
library;

import 'package:worker/features/orders/domain/entities/order_status.dart';
import 'package:worker/features/orders/domain/entities/payment_term.dart';

/// Order Repository Interface
abstract class OrderRepository {
  /// Get list of available order statuses
  Future<List<OrderStatus>> getOrderStatusList();

  /// Get list of available payment terms
  Future<List<PaymentTerm>> getPaymentTermsList();

  /// Create new order
  Future<Map<String, dynamic>> createOrder({
    required List<Map<String, dynamic>> items,
    required Map<String, dynamic> deliveryAddress,
    required String paymentMethod,
    bool needsInvoice = false,
    bool needsNegotiation = false,
    String? notes,
  });

  /// Generate QR code for payment
  Future<Map<String, dynamic>> generateQrCode(String orderId);
}
