/// Request model for creating product warehouse (import/export)
class CreateProductWarehouseRequest {
  final int typeId;
  final int productId;
  final int stageId;
  final int? orderId;
  final String recordDate;
  final double passedQuantityWeight;
  final int passedQuantity;
  final double issuedQuantityWeight;
  final int issuedQuantity;
  final int responsibleUserId;
  final String description;
  final String productName;
  final String productCode;
  final double stockPassedQuantityWeight;
  final int stockPassedQuantity;
  final int stockIssuedQuantity;
  final double stockIssuedQuantityWeight;
  final int receiverUserId;
  final int actionTypeId;
  final int wareHouseId;
  final int productStageId;
  final bool isConfirm;

  CreateProductWarehouseRequest({
    required this.typeId,
    required this.productId,
    required this.stageId,
    this.orderId,
    required this.recordDate,
    required this.passedQuantityWeight,
    required this.passedQuantity,
    required this.issuedQuantityWeight,
    required this.issuedQuantity,
    required this.responsibleUserId,
    this.description = '',
    required this.productName,
    required this.productCode,
    this.stockPassedQuantityWeight = 0.0,
    this.stockPassedQuantity = 0,
    this.stockIssuedQuantity = 0,
    this.stockIssuedQuantityWeight = 0.0,
    required this.receiverUserId,
    required this.actionTypeId,
    required this.wareHouseId,
    required this.productStageId,
    this.isConfirm = true,
  });

  Map<String, dynamic> toJson() {
    return {
      'TypeId': typeId,
      'ProductId': productId,
      'StageId': stageId,
      'OrderId': orderId,
      'RecordDate': recordDate,
      'PassedQuantityWeight': passedQuantityWeight,
      'PassedQuantity': passedQuantity,
      'IssuedQuantityWeight': issuedQuantityWeight,
      'IssuedQuantity': issuedQuantity,
      'ResponsibleUserId': responsibleUserId,
      'Description': description,
      'ProductName': productName,
      'ProductCode': productCode,
      'StockPassedQuantityWeight': stockPassedQuantityWeight,
      'StockPassedQuantity': stockPassedQuantity,
      'StockIssuedQuantity': stockIssuedQuantity,
      'StockIssuedQuantityWeight': stockIssuedQuantityWeight,
      'ReceiverUserId': receiverUserId,
      'ActionTypeId': actionTypeId,
      'WareHouseId': wareHouseId,
      'ProductStageId': productStageId,
      'IsConfirm': isConfirm,
    };
  }
}
