// coverage:ignore-file
// GENERATED CODE - DO NOT MODIFY BY HAND
// ignore_for_file: type=lint
// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark

part of 'inventory_history_view_model.dart';

// **************************************************************************
// FreezedGenerator
// **************************************************************************

T _$identity<T>(T value) => value;

final _privateConstructorUsedError = UnsupportedError(
    'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#adding-getters-and-methods-to-our-models');

InventoryHistoryViewModel _$InventoryHistoryViewModelFromJson(
    Map<String, dynamic> json) {
  return _InventoryHistoryViewModel.fromJson(json);
}

/// @nodoc
mixin _$InventoryHistoryViewModel {
// 기본 식별자
  @JsonKey(name: 'history_id')
  int get historyId => throw _privateConstructorUsedError;
  @JsonKey(name: 'equipment_id')
  int get equipmentId =>
      throw _privateConstructorUsedError; // 화면 표시 필드들 (요구사항 기준)
  @JsonKey(name: 'equipment_name')
  String get equipmentName =>
      throw _privateConstructorUsedError; // 장비명 (백엔드 조합)
  @JsonKey(name: 'serial_number')
  String get serialNumber => throw _privateConstructorUsedError; // 시리얼번호
  @JsonKey(name: 'location')
  String get location =>
      throw _privateConstructorUsedError; // 위치 (transaction_type에 따라 다르게)
  @JsonKey(name: 'changed_date')
  DateTime get changedDate =>
      throw _privateConstructorUsedError; // 변동일 (transacted_at)
  @JsonKey(name: 'remark')
  String? get remark => throw _privateConstructorUsedError; // 비고
// 추가 정보
  @JsonKey(name: 'transaction_type')
  String get transactionType =>
      throw _privateConstructorUsedError; // I, O, R, D
  @JsonKey(name: 'quantity')
  int get quantity =>
      throw _privateConstructorUsedError; // 원본 데이터 보존 (상세보기 시 필요)
  @JsonKey(includeFromJson: false, includeToJson: false)
  EquipmentHistoryDto? get originalHistory =>
      throw _privateConstructorUsedError;

  /// Serializes this InventoryHistoryViewModel to a JSON map.
  Map<String, dynamic> toJson() => throw _privateConstructorUsedError;

  /// Create a copy of InventoryHistoryViewModel
  /// with the given fields replaced by the non-null parameter values.
  @JsonKey(includeFromJson: false, includeToJson: false)
  $InventoryHistoryViewModelCopyWith<InventoryHistoryViewModel> get copyWith =>
      throw _privateConstructorUsedError;
}

/// @nodoc
abstract class $InventoryHistoryViewModelCopyWith<$Res> {
  factory $InventoryHistoryViewModelCopyWith(InventoryHistoryViewModel value,
          $Res Function(InventoryHistoryViewModel) then) =
      _$InventoryHistoryViewModelCopyWithImpl<$Res, InventoryHistoryViewModel>;
  @useResult
  $Res call(
      {@JsonKey(name: 'history_id') int historyId,
      @JsonKey(name: 'equipment_id') int equipmentId,
      @JsonKey(name: 'equipment_name') String equipmentName,
      @JsonKey(name: 'serial_number') String serialNumber,
      @JsonKey(name: 'location') String location,
      @JsonKey(name: 'changed_date') DateTime changedDate,
      @JsonKey(name: 'remark') String? remark,
      @JsonKey(name: 'transaction_type') String transactionType,
      @JsonKey(name: 'quantity') int quantity,
      @JsonKey(includeFromJson: false, includeToJson: false)
      EquipmentHistoryDto? originalHistory});

  $EquipmentHistoryDtoCopyWith<$Res>? get originalHistory;
}

/// @nodoc
class _$InventoryHistoryViewModelCopyWithImpl<$Res,
        $Val extends InventoryHistoryViewModel>
    implements $InventoryHistoryViewModelCopyWith<$Res> {
  _$InventoryHistoryViewModelCopyWithImpl(this._value, this._then);

  // ignore: unused_field
  final $Val _value;
  // ignore: unused_field
  final $Res Function($Val) _then;

  /// Create a copy of InventoryHistoryViewModel
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? historyId = null,
    Object? equipmentId = null,
    Object? equipmentName = null,
    Object? serialNumber = null,
    Object? location = null,
    Object? changedDate = null,
    Object? remark = freezed,
    Object? transactionType = null,
    Object? quantity = null,
    Object? originalHistory = freezed,
  }) {
    return _then(_value.copyWith(
      historyId: null == historyId
          ? _value.historyId
          : historyId // ignore: cast_nullable_to_non_nullable
              as int,
      equipmentId: null == equipmentId
          ? _value.equipmentId
          : equipmentId // ignore: cast_nullable_to_non_nullable
              as int,
      equipmentName: null == equipmentName
          ? _value.equipmentName
          : equipmentName // ignore: cast_nullable_to_non_nullable
              as String,
      serialNumber: null == serialNumber
          ? _value.serialNumber
          : serialNumber // ignore: cast_nullable_to_non_nullable
              as String,
      location: null == location
          ? _value.location
          : location // ignore: cast_nullable_to_non_nullable
              as String,
      changedDate: null == changedDate
          ? _value.changedDate
          : changedDate // ignore: cast_nullable_to_non_nullable
              as DateTime,
      remark: freezed == remark
          ? _value.remark
          : remark // ignore: cast_nullable_to_non_nullable
              as String?,
      transactionType: null == transactionType
          ? _value.transactionType
          : transactionType // ignore: cast_nullable_to_non_nullable
              as String,
      quantity: null == quantity
          ? _value.quantity
          : quantity // ignore: cast_nullable_to_non_nullable
              as int,
      originalHistory: freezed == originalHistory
          ? _value.originalHistory
          : originalHistory // ignore: cast_nullable_to_non_nullable
              as EquipmentHistoryDto?,
    ) as $Val);
  }

  /// Create a copy of InventoryHistoryViewModel
  /// with the given fields replaced by the non-null parameter values.
  @override
  @pragma('vm:prefer-inline')
  $EquipmentHistoryDtoCopyWith<$Res>? get originalHistory {
    if (_value.originalHistory == null) {
      return null;
    }

    return $EquipmentHistoryDtoCopyWith<$Res>(_value.originalHistory!, (value) {
      return _then(_value.copyWith(originalHistory: value) as $Val);
    });
  }
}

/// @nodoc
abstract class _$$InventoryHistoryViewModelImplCopyWith<$Res>
    implements $InventoryHistoryViewModelCopyWith<$Res> {
  factory _$$InventoryHistoryViewModelImplCopyWith(
          _$InventoryHistoryViewModelImpl value,
          $Res Function(_$InventoryHistoryViewModelImpl) then) =
      __$$InventoryHistoryViewModelImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call(
      {@JsonKey(name: 'history_id') int historyId,
      @JsonKey(name: 'equipment_id') int equipmentId,
      @JsonKey(name: 'equipment_name') String equipmentName,
      @JsonKey(name: 'serial_number') String serialNumber,
      @JsonKey(name: 'location') String location,
      @JsonKey(name: 'changed_date') DateTime changedDate,
      @JsonKey(name: 'remark') String? remark,
      @JsonKey(name: 'transaction_type') String transactionType,
      @JsonKey(name: 'quantity') int quantity,
      @JsonKey(includeFromJson: false, includeToJson: false)
      EquipmentHistoryDto? originalHistory});

  @override
  $EquipmentHistoryDtoCopyWith<$Res>? get originalHistory;
}

/// @nodoc
class __$$InventoryHistoryViewModelImplCopyWithImpl<$Res>
    extends _$InventoryHistoryViewModelCopyWithImpl<$Res,
        _$InventoryHistoryViewModelImpl>
    implements _$$InventoryHistoryViewModelImplCopyWith<$Res> {
  __$$InventoryHistoryViewModelImplCopyWithImpl(
      _$InventoryHistoryViewModelImpl _value,
      $Res Function(_$InventoryHistoryViewModelImpl) _then)
      : super(_value, _then);

  /// Create a copy of InventoryHistoryViewModel
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? historyId = null,
    Object? equipmentId = null,
    Object? equipmentName = null,
    Object? serialNumber = null,
    Object? location = null,
    Object? changedDate = null,
    Object? remark = freezed,
    Object? transactionType = null,
    Object? quantity = null,
    Object? originalHistory = freezed,
  }) {
    return _then(_$InventoryHistoryViewModelImpl(
      historyId: null == historyId
          ? _value.historyId
          : historyId // ignore: cast_nullable_to_non_nullable
              as int,
      equipmentId: null == equipmentId
          ? _value.equipmentId
          : equipmentId // ignore: cast_nullable_to_non_nullable
              as int,
      equipmentName: null == equipmentName
          ? _value.equipmentName
          : equipmentName // ignore: cast_nullable_to_non_nullable
              as String,
      serialNumber: null == serialNumber
          ? _value.serialNumber
          : serialNumber // ignore: cast_nullable_to_non_nullable
              as String,
      location: null == location
          ? _value.location
          : location // ignore: cast_nullable_to_non_nullable
              as String,
      changedDate: null == changedDate
          ? _value.changedDate
          : changedDate // ignore: cast_nullable_to_non_nullable
              as DateTime,
      remark: freezed == remark
          ? _value.remark
          : remark // ignore: cast_nullable_to_non_nullable
              as String?,
      transactionType: null == transactionType
          ? _value.transactionType
          : transactionType // ignore: cast_nullable_to_non_nullable
              as String,
      quantity: null == quantity
          ? _value.quantity
          : quantity // ignore: cast_nullable_to_non_nullable
              as int,
      originalHistory: freezed == originalHistory
          ? _value.originalHistory
          : originalHistory // ignore: cast_nullable_to_non_nullable
              as EquipmentHistoryDto?,
    ));
  }
}

/// @nodoc
@JsonSerializable()
class _$InventoryHistoryViewModelImpl extends _InventoryHistoryViewModel {
  const _$InventoryHistoryViewModelImpl(
      {@JsonKey(name: 'history_id') required this.historyId,
      @JsonKey(name: 'equipment_id') required this.equipmentId,
      @JsonKey(name: 'equipment_name') required this.equipmentName,
      @JsonKey(name: 'serial_number') required this.serialNumber,
      @JsonKey(name: 'location') required this.location,
      @JsonKey(name: 'changed_date') required this.changedDate,
      @JsonKey(name: 'remark') this.remark,
      @JsonKey(name: 'transaction_type') required this.transactionType,
      @JsonKey(name: 'quantity') required this.quantity,
      @JsonKey(includeFromJson: false, includeToJson: false)
      this.originalHistory})
      : super._();

  factory _$InventoryHistoryViewModelImpl.fromJson(Map<String, dynamic> json) =>
      _$$InventoryHistoryViewModelImplFromJson(json);

// 기본 식별자
  @override
  @JsonKey(name: 'history_id')
  final int historyId;
  @override
  @JsonKey(name: 'equipment_id')
  final int equipmentId;
// 화면 표시 필드들 (요구사항 기준)
  @override
  @JsonKey(name: 'equipment_name')
  final String equipmentName;
// 장비명 (백엔드 조합)
  @override
  @JsonKey(name: 'serial_number')
  final String serialNumber;
// 시리얼번호
  @override
  @JsonKey(name: 'location')
  final String location;
// 위치 (transaction_type에 따라 다르게)
  @override
  @JsonKey(name: 'changed_date')
  final DateTime changedDate;
// 변동일 (transacted_at)
  @override
  @JsonKey(name: 'remark')
  final String? remark;
// 비고
// 추가 정보
  @override
  @JsonKey(name: 'transaction_type')
  final String transactionType;
// I, O, R, D
  @override
  @JsonKey(name: 'quantity')
  final int quantity;
// 원본 데이터 보존 (상세보기 시 필요)
  @override
  @JsonKey(includeFromJson: false, includeToJson: false)
  final EquipmentHistoryDto? originalHistory;

  @override
  String toString() {
    return 'InventoryHistoryViewModel(historyId: $historyId, equipmentId: $equipmentId, equipmentName: $equipmentName, serialNumber: $serialNumber, location: $location, changedDate: $changedDate, remark: $remark, transactionType: $transactionType, quantity: $quantity, originalHistory: $originalHistory)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$InventoryHistoryViewModelImpl &&
            (identical(other.historyId, historyId) ||
                other.historyId == historyId) &&
            (identical(other.equipmentId, equipmentId) ||
                other.equipmentId == equipmentId) &&
            (identical(other.equipmentName, equipmentName) ||
                other.equipmentName == equipmentName) &&
            (identical(other.serialNumber, serialNumber) ||
                other.serialNumber == serialNumber) &&
            (identical(other.location, location) ||
                other.location == location) &&
            (identical(other.changedDate, changedDate) ||
                other.changedDate == changedDate) &&
            (identical(other.remark, remark) || other.remark == remark) &&
            (identical(other.transactionType, transactionType) ||
                other.transactionType == transactionType) &&
            (identical(other.quantity, quantity) ||
                other.quantity == quantity) &&
            (identical(other.originalHistory, originalHistory) ||
                other.originalHistory == originalHistory));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
      runtimeType,
      historyId,
      equipmentId,
      equipmentName,
      serialNumber,
      location,
      changedDate,
      remark,
      transactionType,
      quantity,
      originalHistory);

  /// Create a copy of InventoryHistoryViewModel
  /// with the given fields replaced by the non-null parameter values.
  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  @pragma('vm:prefer-inline')
  _$$InventoryHistoryViewModelImplCopyWith<_$InventoryHistoryViewModelImpl>
      get copyWith => __$$InventoryHistoryViewModelImplCopyWithImpl<
          _$InventoryHistoryViewModelImpl>(this, _$identity);

  @override
  Map<String, dynamic> toJson() {
    return _$$InventoryHistoryViewModelImplToJson(
      this,
    );
  }
}

abstract class _InventoryHistoryViewModel extends InventoryHistoryViewModel {
  const factory _InventoryHistoryViewModel(
      {@JsonKey(name: 'history_id') required final int historyId,
      @JsonKey(name: 'equipment_id') required final int equipmentId,
      @JsonKey(name: 'equipment_name') required final String equipmentName,
      @JsonKey(name: 'serial_number') required final String serialNumber,
      @JsonKey(name: 'location') required final String location,
      @JsonKey(name: 'changed_date') required final DateTime changedDate,
      @JsonKey(name: 'remark') final String? remark,
      @JsonKey(name: 'transaction_type') required final String transactionType,
      @JsonKey(name: 'quantity') required final int quantity,
      @JsonKey(includeFromJson: false, includeToJson: false)
      final EquipmentHistoryDto?
          originalHistory}) = _$InventoryHistoryViewModelImpl;
  const _InventoryHistoryViewModel._() : super._();

  factory _InventoryHistoryViewModel.fromJson(Map<String, dynamic> json) =
      _$InventoryHistoryViewModelImpl.fromJson;

// 기본 식별자
  @override
  @JsonKey(name: 'history_id')
  int get historyId;
  @override
  @JsonKey(name: 'equipment_id')
  int get equipmentId; // 화면 표시 필드들 (요구사항 기준)
  @override
  @JsonKey(name: 'equipment_name')
  String get equipmentName; // 장비명 (백엔드 조합)
  @override
  @JsonKey(name: 'serial_number')
  String get serialNumber; // 시리얼번호
  @override
  @JsonKey(name: 'location')
  String get location; // 위치 (transaction_type에 따라 다르게)
  @override
  @JsonKey(name: 'changed_date')
  DateTime get changedDate; // 변동일 (transacted_at)
  @override
  @JsonKey(name: 'remark')
  String? get remark; // 비고
// 추가 정보
  @override
  @JsonKey(name: 'transaction_type')
  String get transactionType; // I, O, R, D
  @override
  @JsonKey(name: 'quantity')
  int get quantity; // 원본 데이터 보존 (상세보기 시 필요)
  @override
  @JsonKey(includeFromJson: false, includeToJson: false)
  EquipmentHistoryDto? get originalHistory;

  /// Create a copy of InventoryHistoryViewModel
  /// with the given fields replaced by the non-null parameter values.
  @override
  @JsonKey(includeFromJson: false, includeToJson: false)
  _$$InventoryHistoryViewModelImplCopyWith<_$InventoryHistoryViewModelImpl>
      get copyWith => throw _privateConstructorUsedError;
}

InventoryHistoryListResponse _$InventoryHistoryListResponseFromJson(
    Map<String, dynamic> json) {
  return _InventoryHistoryListResponse.fromJson(json);
}

/// @nodoc
mixin _$InventoryHistoryListResponse {
  @JsonKey(name: 'data')
  List<InventoryHistoryViewModel> get items =>
      throw _privateConstructorUsedError;
  @JsonKey(name: 'total')
  int get totalCount => throw _privateConstructorUsedError;
  @JsonKey(name: 'page')
  int get currentPage => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_pages')
  int get totalPages => throw _privateConstructorUsedError;
  @JsonKey(name: 'page_size')
  int? get pageSize => throw _privateConstructorUsedError;

  /// Serializes this InventoryHistoryListResponse to a JSON map.
  Map<String, dynamic> toJson() => throw _privateConstructorUsedError;

  /// Create a copy of InventoryHistoryListResponse
  /// with the given fields replaced by the non-null parameter values.
  @JsonKey(includeFromJson: false, includeToJson: false)
  $InventoryHistoryListResponseCopyWith<InventoryHistoryListResponse>
      get copyWith => throw _privateConstructorUsedError;
}

/// @nodoc
abstract class $InventoryHistoryListResponseCopyWith<$Res> {
  factory $InventoryHistoryListResponseCopyWith(
          InventoryHistoryListResponse value,
          $Res Function(InventoryHistoryListResponse) then) =
      _$InventoryHistoryListResponseCopyWithImpl<$Res,
          InventoryHistoryListResponse>;
  @useResult
  $Res call(
      {@JsonKey(name: 'data') List<InventoryHistoryViewModel> items,
      @JsonKey(name: 'total') int totalCount,
      @JsonKey(name: 'page') int currentPage,
      @JsonKey(name: 'total_pages') int totalPages,
      @JsonKey(name: 'page_size') int? pageSize});
}

/// @nodoc
class _$InventoryHistoryListResponseCopyWithImpl<$Res,
        $Val extends InventoryHistoryListResponse>
    implements $InventoryHistoryListResponseCopyWith<$Res> {
  _$InventoryHistoryListResponseCopyWithImpl(this._value, this._then);

  // ignore: unused_field
  final $Val _value;
  // ignore: unused_field
  final $Res Function($Val) _then;

  /// Create a copy of InventoryHistoryListResponse
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? items = null,
    Object? totalCount = null,
    Object? currentPage = null,
    Object? totalPages = null,
    Object? pageSize = freezed,
  }) {
    return _then(_value.copyWith(
      items: null == items
          ? _value.items
          : items // ignore: cast_nullable_to_non_nullable
              as List<InventoryHistoryViewModel>,
      totalCount: null == totalCount
          ? _value.totalCount
          : totalCount // ignore: cast_nullable_to_non_nullable
              as int,
      currentPage: null == currentPage
          ? _value.currentPage
          : currentPage // ignore: cast_nullable_to_non_nullable
              as int,
      totalPages: null == totalPages
          ? _value.totalPages
          : totalPages // ignore: cast_nullable_to_non_nullable
              as int,
      pageSize: freezed == pageSize
          ? _value.pageSize
          : pageSize // ignore: cast_nullable_to_non_nullable
              as int?,
    ) as $Val);
  }
}

/// @nodoc
abstract class _$$InventoryHistoryListResponseImplCopyWith<$Res>
    implements $InventoryHistoryListResponseCopyWith<$Res> {
  factory _$$InventoryHistoryListResponseImplCopyWith(
          _$InventoryHistoryListResponseImpl value,
          $Res Function(_$InventoryHistoryListResponseImpl) then) =
      __$$InventoryHistoryListResponseImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call(
      {@JsonKey(name: 'data') List<InventoryHistoryViewModel> items,
      @JsonKey(name: 'total') int totalCount,
      @JsonKey(name: 'page') int currentPage,
      @JsonKey(name: 'total_pages') int totalPages,
      @JsonKey(name: 'page_size') int? pageSize});
}

/// @nodoc
class __$$InventoryHistoryListResponseImplCopyWithImpl<$Res>
    extends _$InventoryHistoryListResponseCopyWithImpl<$Res,
        _$InventoryHistoryListResponseImpl>
    implements _$$InventoryHistoryListResponseImplCopyWith<$Res> {
  __$$InventoryHistoryListResponseImplCopyWithImpl(
      _$InventoryHistoryListResponseImpl _value,
      $Res Function(_$InventoryHistoryListResponseImpl) _then)
      : super(_value, _then);

  /// Create a copy of InventoryHistoryListResponse
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? items = null,
    Object? totalCount = null,
    Object? currentPage = null,
    Object? totalPages = null,
    Object? pageSize = freezed,
  }) {
    return _then(_$InventoryHistoryListResponseImpl(
      items: null == items
          ? _value._items
          : items // ignore: cast_nullable_to_non_nullable
              as List<InventoryHistoryViewModel>,
      totalCount: null == totalCount
          ? _value.totalCount
          : totalCount // ignore: cast_nullable_to_non_nullable
              as int,
      currentPage: null == currentPage
          ? _value.currentPage
          : currentPage // ignore: cast_nullable_to_non_nullable
              as int,
      totalPages: null == totalPages
          ? _value.totalPages
          : totalPages // ignore: cast_nullable_to_non_nullable
              as int,
      pageSize: freezed == pageSize
          ? _value.pageSize
          : pageSize // ignore: cast_nullable_to_non_nullable
              as int?,
    ));
  }
}

/// @nodoc
@JsonSerializable()
class _$InventoryHistoryListResponseImpl
    implements _InventoryHistoryListResponse {
  const _$InventoryHistoryListResponseImpl(
      {@JsonKey(name: 'data')
      required final List<InventoryHistoryViewModel> items,
      @JsonKey(name: 'total') required this.totalCount,
      @JsonKey(name: 'page') required this.currentPage,
      @JsonKey(name: 'total_pages') required this.totalPages,
      @JsonKey(name: 'page_size') this.pageSize})
      : _items = items;

  factory _$InventoryHistoryListResponseImpl.fromJson(
          Map<String, dynamic> json) =>
      _$$InventoryHistoryListResponseImplFromJson(json);

  final List<InventoryHistoryViewModel> _items;
  @override
  @JsonKey(name: 'data')
  List<InventoryHistoryViewModel> get items {
    if (_items is EqualUnmodifiableListView) return _items;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_items);
  }

  @override
  @JsonKey(name: 'total')
  final int totalCount;
  @override
  @JsonKey(name: 'page')
  final int currentPage;
  @override
  @JsonKey(name: 'total_pages')
  final int totalPages;
  @override
  @JsonKey(name: 'page_size')
  final int? pageSize;

  @override
  String toString() {
    return 'InventoryHistoryListResponse(items: $items, totalCount: $totalCount, currentPage: $currentPage, totalPages: $totalPages, pageSize: $pageSize)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$InventoryHistoryListResponseImpl &&
            const DeepCollectionEquality().equals(other._items, _items) &&
            (identical(other.totalCount, totalCount) ||
                other.totalCount == totalCount) &&
            (identical(other.currentPage, currentPage) ||
                other.currentPage == currentPage) &&
            (identical(other.totalPages, totalPages) ||
                other.totalPages == totalPages) &&
            (identical(other.pageSize, pageSize) ||
                other.pageSize == pageSize));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
      runtimeType,
      const DeepCollectionEquality().hash(_items),
      totalCount,
      currentPage,
      totalPages,
      pageSize);

  /// Create a copy of InventoryHistoryListResponse
  /// with the given fields replaced by the non-null parameter values.
  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  @pragma('vm:prefer-inline')
  _$$InventoryHistoryListResponseImplCopyWith<
          _$InventoryHistoryListResponseImpl>
      get copyWith => __$$InventoryHistoryListResponseImplCopyWithImpl<
          _$InventoryHistoryListResponseImpl>(this, _$identity);

  @override
  Map<String, dynamic> toJson() {
    return _$$InventoryHistoryListResponseImplToJson(
      this,
    );
  }
}

abstract class _InventoryHistoryListResponse
    implements InventoryHistoryListResponse {
  const factory _InventoryHistoryListResponse(
          {@JsonKey(name: 'data')
          required final List<InventoryHistoryViewModel> items,
          @JsonKey(name: 'total') required final int totalCount,
          @JsonKey(name: 'page') required final int currentPage,
          @JsonKey(name: 'total_pages') required final int totalPages,
          @JsonKey(name: 'page_size') final int? pageSize}) =
      _$InventoryHistoryListResponseImpl;

  factory _InventoryHistoryListResponse.fromJson(Map<String, dynamic> json) =
      _$InventoryHistoryListResponseImpl.fromJson;

  @override
  @JsonKey(name: 'data')
  List<InventoryHistoryViewModel> get items;
  @override
  @JsonKey(name: 'total')
  int get totalCount;
  @override
  @JsonKey(name: 'page')
  int get currentPage;
  @override
  @JsonKey(name: 'total_pages')
  int get totalPages;
  @override
  @JsonKey(name: 'page_size')
  int? get pageSize;

  /// Create a copy of InventoryHistoryListResponse
  /// with the given fields replaced by the non-null parameter values.
  @override
  @JsonKey(includeFromJson: false, includeToJson: false)
  _$$InventoryHistoryListResponseImplCopyWith<
          _$InventoryHistoryListResponseImpl>
      get copyWith => throw _privateConstructorUsedError;
}

InventoryHistoryQuery _$InventoryHistoryQueryFromJson(
    Map<String, dynamic> json) {
  return _InventoryHistoryQuery.fromJson(json);
}

/// @nodoc
mixin _$InventoryHistoryQuery {
  int? get page => throw _privateConstructorUsedError;
  @JsonKey(name: 'page_size')
  int? get pageSize => throw _privateConstructorUsedError;
  @JsonKey(name: 'search_keyword')
  String? get searchKeyword => throw _privateConstructorUsedError;
  @JsonKey(name: 'transaction_type')
  String? get transactionType => throw _privateConstructorUsedError;
  @JsonKey(name: 'equipment_id')
  int? get equipmentId => throw _privateConstructorUsedError;
  @JsonKey(name: 'warehouse_id')
  int? get warehouseId => throw _privateConstructorUsedError;
  @JsonKey(name: 'company_id')
  int? get companyId => throw _privateConstructorUsedError;
  @JsonKey(name: 'date_from')
  DateTime? get dateFrom => throw _privateConstructorUsedError;
  @JsonKey(name: 'date_to')
  DateTime? get dateTo => throw _privateConstructorUsedError;

  /// Serializes this InventoryHistoryQuery to a JSON map.
  Map<String, dynamic> toJson() => throw _privateConstructorUsedError;

  /// Create a copy of InventoryHistoryQuery
  /// with the given fields replaced by the non-null parameter values.
  @JsonKey(includeFromJson: false, includeToJson: false)
  $InventoryHistoryQueryCopyWith<InventoryHistoryQuery> get copyWith =>
      throw _privateConstructorUsedError;
}

/// @nodoc
abstract class $InventoryHistoryQueryCopyWith<$Res> {
  factory $InventoryHistoryQueryCopyWith(InventoryHistoryQuery value,
          $Res Function(InventoryHistoryQuery) then) =
      _$InventoryHistoryQueryCopyWithImpl<$Res, InventoryHistoryQuery>;
  @useResult
  $Res call(
      {int? page,
      @JsonKey(name: 'page_size') int? pageSize,
      @JsonKey(name: 'search_keyword') String? searchKeyword,
      @JsonKey(name: 'transaction_type') String? transactionType,
      @JsonKey(name: 'equipment_id') int? equipmentId,
      @JsonKey(name: 'warehouse_id') int? warehouseId,
      @JsonKey(name: 'company_id') int? companyId,
      @JsonKey(name: 'date_from') DateTime? dateFrom,
      @JsonKey(name: 'date_to') DateTime? dateTo});
}

/// @nodoc
class _$InventoryHistoryQueryCopyWithImpl<$Res,
        $Val extends InventoryHistoryQuery>
    implements $InventoryHistoryQueryCopyWith<$Res> {
  _$InventoryHistoryQueryCopyWithImpl(this._value, this._then);

  // ignore: unused_field
  final $Val _value;
  // ignore: unused_field
  final $Res Function($Val) _then;

  /// Create a copy of InventoryHistoryQuery
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? page = freezed,
    Object? pageSize = freezed,
    Object? searchKeyword = freezed,
    Object? transactionType = freezed,
    Object? equipmentId = freezed,
    Object? warehouseId = freezed,
    Object? companyId = freezed,
    Object? dateFrom = freezed,
    Object? dateTo = freezed,
  }) {
    return _then(_value.copyWith(
      page: freezed == page
          ? _value.page
          : page // ignore: cast_nullable_to_non_nullable
              as int?,
      pageSize: freezed == pageSize
          ? _value.pageSize
          : pageSize // ignore: cast_nullable_to_non_nullable
              as int?,
      searchKeyword: freezed == searchKeyword
          ? _value.searchKeyword
          : searchKeyword // ignore: cast_nullable_to_non_nullable
              as String?,
      transactionType: freezed == transactionType
          ? _value.transactionType
          : transactionType // ignore: cast_nullable_to_non_nullable
              as String?,
      equipmentId: freezed == equipmentId
          ? _value.equipmentId
          : equipmentId // ignore: cast_nullable_to_non_nullable
              as int?,
      warehouseId: freezed == warehouseId
          ? _value.warehouseId
          : warehouseId // ignore: cast_nullable_to_non_nullable
              as int?,
      companyId: freezed == companyId
          ? _value.companyId
          : companyId // ignore: cast_nullable_to_non_nullable
              as int?,
      dateFrom: freezed == dateFrom
          ? _value.dateFrom
          : dateFrom // ignore: cast_nullable_to_non_nullable
              as DateTime?,
      dateTo: freezed == dateTo
          ? _value.dateTo
          : dateTo // ignore: cast_nullable_to_non_nullable
              as DateTime?,
    ) as $Val);
  }
}

/// @nodoc
abstract class _$$InventoryHistoryQueryImplCopyWith<$Res>
    implements $InventoryHistoryQueryCopyWith<$Res> {
  factory _$$InventoryHistoryQueryImplCopyWith(
          _$InventoryHistoryQueryImpl value,
          $Res Function(_$InventoryHistoryQueryImpl) then) =
      __$$InventoryHistoryQueryImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call(
      {int? page,
      @JsonKey(name: 'page_size') int? pageSize,
      @JsonKey(name: 'search_keyword') String? searchKeyword,
      @JsonKey(name: 'transaction_type') String? transactionType,
      @JsonKey(name: 'equipment_id') int? equipmentId,
      @JsonKey(name: 'warehouse_id') int? warehouseId,
      @JsonKey(name: 'company_id') int? companyId,
      @JsonKey(name: 'date_from') DateTime? dateFrom,
      @JsonKey(name: 'date_to') DateTime? dateTo});
}

/// @nodoc
class __$$InventoryHistoryQueryImplCopyWithImpl<$Res>
    extends _$InventoryHistoryQueryCopyWithImpl<$Res,
        _$InventoryHistoryQueryImpl>
    implements _$$InventoryHistoryQueryImplCopyWith<$Res> {
  __$$InventoryHistoryQueryImplCopyWithImpl(_$InventoryHistoryQueryImpl _value,
      $Res Function(_$InventoryHistoryQueryImpl) _then)
      : super(_value, _then);

  /// Create a copy of InventoryHistoryQuery
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? page = freezed,
    Object? pageSize = freezed,
    Object? searchKeyword = freezed,
    Object? transactionType = freezed,
    Object? equipmentId = freezed,
    Object? warehouseId = freezed,
    Object? companyId = freezed,
    Object? dateFrom = freezed,
    Object? dateTo = freezed,
  }) {
    return _then(_$InventoryHistoryQueryImpl(
      page: freezed == page
          ? _value.page
          : page // ignore: cast_nullable_to_non_nullable
              as int?,
      pageSize: freezed == pageSize
          ? _value.pageSize
          : pageSize // ignore: cast_nullable_to_non_nullable
              as int?,
      searchKeyword: freezed == searchKeyword
          ? _value.searchKeyword
          : searchKeyword // ignore: cast_nullable_to_non_nullable
              as String?,
      transactionType: freezed == transactionType
          ? _value.transactionType
          : transactionType // ignore: cast_nullable_to_non_nullable
              as String?,
      equipmentId: freezed == equipmentId
          ? _value.equipmentId
          : equipmentId // ignore: cast_nullable_to_non_nullable
              as int?,
      warehouseId: freezed == warehouseId
          ? _value.warehouseId
          : warehouseId // ignore: cast_nullable_to_non_nullable
              as int?,
      companyId: freezed == companyId
          ? _value.companyId
          : companyId // ignore: cast_nullable_to_non_nullable
              as int?,
      dateFrom: freezed == dateFrom
          ? _value.dateFrom
          : dateFrom // ignore: cast_nullable_to_non_nullable
              as DateTime?,
      dateTo: freezed == dateTo
          ? _value.dateTo
          : dateTo // ignore: cast_nullable_to_non_nullable
              as DateTime?,
    ));
  }
}

/// @nodoc
@JsonSerializable()
class _$InventoryHistoryQueryImpl implements _InventoryHistoryQuery {
  const _$InventoryHistoryQueryImpl(
      {this.page,
      @JsonKey(name: 'page_size') this.pageSize,
      @JsonKey(name: 'search_keyword') this.searchKeyword,
      @JsonKey(name: 'transaction_type') this.transactionType,
      @JsonKey(name: 'equipment_id') this.equipmentId,
      @JsonKey(name: 'warehouse_id') this.warehouseId,
      @JsonKey(name: 'company_id') this.companyId,
      @JsonKey(name: 'date_from') this.dateFrom,
      @JsonKey(name: 'date_to') this.dateTo});

  factory _$InventoryHistoryQueryImpl.fromJson(Map<String, dynamic> json) =>
      _$$InventoryHistoryQueryImplFromJson(json);

  @override
  final int? page;
  @override
  @JsonKey(name: 'page_size')
  final int? pageSize;
  @override
  @JsonKey(name: 'search_keyword')
  final String? searchKeyword;
  @override
  @JsonKey(name: 'transaction_type')
  final String? transactionType;
  @override
  @JsonKey(name: 'equipment_id')
  final int? equipmentId;
  @override
  @JsonKey(name: 'warehouse_id')
  final int? warehouseId;
  @override
  @JsonKey(name: 'company_id')
  final int? companyId;
  @override
  @JsonKey(name: 'date_from')
  final DateTime? dateFrom;
  @override
  @JsonKey(name: 'date_to')
  final DateTime? dateTo;

  @override
  String toString() {
    return 'InventoryHistoryQuery(page: $page, pageSize: $pageSize, searchKeyword: $searchKeyword, transactionType: $transactionType, equipmentId: $equipmentId, warehouseId: $warehouseId, companyId: $companyId, dateFrom: $dateFrom, dateTo: $dateTo)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$InventoryHistoryQueryImpl &&
            (identical(other.page, page) || other.page == page) &&
            (identical(other.pageSize, pageSize) ||
                other.pageSize == pageSize) &&
            (identical(other.searchKeyword, searchKeyword) ||
                other.searchKeyword == searchKeyword) &&
            (identical(other.transactionType, transactionType) ||
                other.transactionType == transactionType) &&
            (identical(other.equipmentId, equipmentId) ||
                other.equipmentId == equipmentId) &&
            (identical(other.warehouseId, warehouseId) ||
                other.warehouseId == warehouseId) &&
            (identical(other.companyId, companyId) ||
                other.companyId == companyId) &&
            (identical(other.dateFrom, dateFrom) ||
                other.dateFrom == dateFrom) &&
            (identical(other.dateTo, dateTo) || other.dateTo == dateTo));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(runtimeType, page, pageSize, searchKeyword,
      transactionType, equipmentId, warehouseId, companyId, dateFrom, dateTo);

  /// Create a copy of InventoryHistoryQuery
  /// with the given fields replaced by the non-null parameter values.
  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  @pragma('vm:prefer-inline')
  _$$InventoryHistoryQueryImplCopyWith<_$InventoryHistoryQueryImpl>
      get copyWith => __$$InventoryHistoryQueryImplCopyWithImpl<
          _$InventoryHistoryQueryImpl>(this, _$identity);

  @override
  Map<String, dynamic> toJson() {
    return _$$InventoryHistoryQueryImplToJson(
      this,
    );
  }
}

abstract class _InventoryHistoryQuery implements InventoryHistoryQuery {
  const factory _InventoryHistoryQuery(
          {final int? page,
          @JsonKey(name: 'page_size') final int? pageSize,
          @JsonKey(name: 'search_keyword') final String? searchKeyword,
          @JsonKey(name: 'transaction_type') final String? transactionType,
          @JsonKey(name: 'equipment_id') final int? equipmentId,
          @JsonKey(name: 'warehouse_id') final int? warehouseId,
          @JsonKey(name: 'company_id') final int? companyId,
          @JsonKey(name: 'date_from') final DateTime? dateFrom,
          @JsonKey(name: 'date_to') final DateTime? dateTo}) =
      _$InventoryHistoryQueryImpl;

  factory _InventoryHistoryQuery.fromJson(Map<String, dynamic> json) =
      _$InventoryHistoryQueryImpl.fromJson;

  @override
  int? get page;
  @override
  @JsonKey(name: 'page_size')
  int? get pageSize;
  @override
  @JsonKey(name: 'search_keyword')
  String? get searchKeyword;
  @override
  @JsonKey(name: 'transaction_type')
  String? get transactionType;
  @override
  @JsonKey(name: 'equipment_id')
  int? get equipmentId;
  @override
  @JsonKey(name: 'warehouse_id')
  int? get warehouseId;
  @override
  @JsonKey(name: 'company_id')
  int? get companyId;
  @override
  @JsonKey(name: 'date_from')
  DateTime? get dateFrom;
  @override
  @JsonKey(name: 'date_to')
  DateTime? get dateTo;

  /// Create a copy of InventoryHistoryQuery
  /// with the given fields replaced by the non-null parameter values.
  @override
  @JsonKey(includeFromJson: false, includeToJson: false)
  _$$InventoryHistoryQueryImplCopyWith<_$InventoryHistoryQueryImpl>
      get copyWith => throw _privateConstructorUsedError;
}
