// 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 'equipment_history_dto.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');

EquipmentHistoryDto _$EquipmentHistoryDtoFromJson(Map<String, dynamic> json) {
  return _EquipmentHistoryDto.fromJson(json);
}

/// @nodoc
mixin _$EquipmentHistoryDto {
// 백엔드 실제 필드명과 정확 일치
  @JsonKey(name: 'id')
  int? get id => throw _privateConstructorUsedError;
  @JsonKey(name: 'equipments_id')
  int get equipmentsId => throw _privateConstructorUsedError;
  @JsonKey(name: 'warehouses_id')
  int get warehousesId => throw _privateConstructorUsedError;
  @JsonKey(name: 'transaction_type')
  String get transactionType => throw _privateConstructorUsedError;
  int get quantity => throw _privateConstructorUsedError;
  @JsonKey(name: 'transacted_at')
  DateTime get transactedAt => throw _privateConstructorUsedError;
  String? get remark => throw _privateConstructorUsedError;
  @JsonKey(name: 'is_deleted')
  bool get isDeleted => throw _privateConstructorUsedError;
  @JsonKey(name: 'created_at')
  DateTime get createdAt => throw _privateConstructorUsedError;
  @JsonKey(name: 'updated_at')
  DateTime? get updatedAt => throw _privateConstructorUsedError; // 백엔드 추가 필드들
  @JsonKey(name: 'equipment_serial')
  String? get equipmentSerial => throw _privateConstructorUsedError;
  @JsonKey(name: 'warehouse_name')
  String? get warehouseName => throw _privateConstructorUsedError;
  @JsonKey(name: 'companies')
  List<Map<String, dynamic>> get companies =>
      throw _privateConstructorUsedError; // Related entities (optional, populated in GET requests)
  EquipmentDto? get equipment => throw _privateConstructorUsedError;
  WarehouseDto? get warehouse => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $EquipmentHistoryDtoCopyWith<$Res> {
  factory $EquipmentHistoryDtoCopyWith(
          EquipmentHistoryDto value, $Res Function(EquipmentHistoryDto) then) =
      _$EquipmentHistoryDtoCopyWithImpl<$Res, EquipmentHistoryDto>;
  @useResult
  $Res call(
      {@JsonKey(name: 'id') int? id,
      @JsonKey(name: 'equipments_id') int equipmentsId,
      @JsonKey(name: 'warehouses_id') int warehousesId,
      @JsonKey(name: 'transaction_type') String transactionType,
      int quantity,
      @JsonKey(name: 'transacted_at') DateTime transactedAt,
      String? remark,
      @JsonKey(name: 'is_deleted') bool isDeleted,
      @JsonKey(name: 'created_at') DateTime createdAt,
      @JsonKey(name: 'updated_at') DateTime? updatedAt,
      @JsonKey(name: 'equipment_serial') String? equipmentSerial,
      @JsonKey(name: 'warehouse_name') String? warehouseName,
      @JsonKey(name: 'companies') List<Map<String, dynamic>> companies,
      EquipmentDto? equipment,
      WarehouseDto? warehouse});

  $EquipmentDtoCopyWith<$Res>? get equipment;
  $WarehouseDtoCopyWith<$Res>? get warehouse;
}

/// @nodoc
class _$EquipmentHistoryDtoCopyWithImpl<$Res, $Val extends EquipmentHistoryDto>
    implements $EquipmentHistoryDtoCopyWith<$Res> {
  _$EquipmentHistoryDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of EquipmentHistoryDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? id = freezed,
    Object? equipmentsId = null,
    Object? warehousesId = null,
    Object? transactionType = null,
    Object? quantity = null,
    Object? transactedAt = null,
    Object? remark = freezed,
    Object? isDeleted = null,
    Object? createdAt = null,
    Object? updatedAt = freezed,
    Object? equipmentSerial = freezed,
    Object? warehouseName = freezed,
    Object? companies = null,
    Object? equipment = freezed,
    Object? warehouse = freezed,
  }) {
    return _then(_value.copyWith(
      id: freezed == id
          ? _value.id
          : id // ignore: cast_nullable_to_non_nullable
              as int?,
      equipmentsId: null == equipmentsId
          ? _value.equipmentsId
          : equipmentsId // ignore: cast_nullable_to_non_nullable
              as int,
      warehousesId: null == warehousesId
          ? _value.warehousesId
          : warehousesId // ignore: cast_nullable_to_non_nullable
              as int,
      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,
      transactedAt: null == transactedAt
          ? _value.transactedAt
          : transactedAt // ignore: cast_nullable_to_non_nullable
              as DateTime,
      remark: freezed == remark
          ? _value.remark
          : remark // ignore: cast_nullable_to_non_nullable
              as String?,
      isDeleted: null == isDeleted
          ? _value.isDeleted
          : isDeleted // ignore: cast_nullable_to_non_nullable
              as bool,
      createdAt: null == createdAt
          ? _value.createdAt
          : createdAt // ignore: cast_nullable_to_non_nullable
              as DateTime,
      updatedAt: freezed == updatedAt
          ? _value.updatedAt
          : updatedAt // ignore: cast_nullable_to_non_nullable
              as DateTime?,
      equipmentSerial: freezed == equipmentSerial
          ? _value.equipmentSerial
          : equipmentSerial // ignore: cast_nullable_to_non_nullable
              as String?,
      warehouseName: freezed == warehouseName
          ? _value.warehouseName
          : warehouseName // ignore: cast_nullable_to_non_nullable
              as String?,
      companies: null == companies
          ? _value.companies
          : companies // ignore: cast_nullable_to_non_nullable
              as List<Map<String, dynamic>>,
      equipment: freezed == equipment
          ? _value.equipment
          : equipment // ignore: cast_nullable_to_non_nullable
              as EquipmentDto?,
      warehouse: freezed == warehouse
          ? _value.warehouse
          : warehouse // ignore: cast_nullable_to_non_nullable
              as WarehouseDto?,
    ) as $Val);
  }

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

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

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

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

/// @nodoc
abstract class _$$EquipmentHistoryDtoImplCopyWith<$Res>
    implements $EquipmentHistoryDtoCopyWith<$Res> {
  factory _$$EquipmentHistoryDtoImplCopyWith(_$EquipmentHistoryDtoImpl value,
          $Res Function(_$EquipmentHistoryDtoImpl) then) =
      __$$EquipmentHistoryDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call(
      {@JsonKey(name: 'id') int? id,
      @JsonKey(name: 'equipments_id') int equipmentsId,
      @JsonKey(name: 'warehouses_id') int warehousesId,
      @JsonKey(name: 'transaction_type') String transactionType,
      int quantity,
      @JsonKey(name: 'transacted_at') DateTime transactedAt,
      String? remark,
      @JsonKey(name: 'is_deleted') bool isDeleted,
      @JsonKey(name: 'created_at') DateTime createdAt,
      @JsonKey(name: 'updated_at') DateTime? updatedAt,
      @JsonKey(name: 'equipment_serial') String? equipmentSerial,
      @JsonKey(name: 'warehouse_name') String? warehouseName,
      @JsonKey(name: 'companies') List<Map<String, dynamic>> companies,
      EquipmentDto? equipment,
      WarehouseDto? warehouse});

  @override
  $EquipmentDtoCopyWith<$Res>? get equipment;
  @override
  $WarehouseDtoCopyWith<$Res>? get warehouse;
}

/// @nodoc
class __$$EquipmentHistoryDtoImplCopyWithImpl<$Res>
    extends _$EquipmentHistoryDtoCopyWithImpl<$Res, _$EquipmentHistoryDtoImpl>
    implements _$$EquipmentHistoryDtoImplCopyWith<$Res> {
  __$$EquipmentHistoryDtoImplCopyWithImpl(_$EquipmentHistoryDtoImpl _value,
      $Res Function(_$EquipmentHistoryDtoImpl) _then)
      : super(_value, _then);

  /// Create a copy of EquipmentHistoryDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? id = freezed,
    Object? equipmentsId = null,
    Object? warehousesId = null,
    Object? transactionType = null,
    Object? quantity = null,
    Object? transactedAt = null,
    Object? remark = freezed,
    Object? isDeleted = null,
    Object? createdAt = null,
    Object? updatedAt = freezed,
    Object? equipmentSerial = freezed,
    Object? warehouseName = freezed,
    Object? companies = null,
    Object? equipment = freezed,
    Object? warehouse = freezed,
  }) {
    return _then(_$EquipmentHistoryDtoImpl(
      id: freezed == id
          ? _value.id
          : id // ignore: cast_nullable_to_non_nullable
              as int?,
      equipmentsId: null == equipmentsId
          ? _value.equipmentsId
          : equipmentsId // ignore: cast_nullable_to_non_nullable
              as int,
      warehousesId: null == warehousesId
          ? _value.warehousesId
          : warehousesId // ignore: cast_nullable_to_non_nullable
              as int,
      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,
      transactedAt: null == transactedAt
          ? _value.transactedAt
          : transactedAt // ignore: cast_nullable_to_non_nullable
              as DateTime,
      remark: freezed == remark
          ? _value.remark
          : remark // ignore: cast_nullable_to_non_nullable
              as String?,
      isDeleted: null == isDeleted
          ? _value.isDeleted
          : isDeleted // ignore: cast_nullable_to_non_nullable
              as bool,
      createdAt: null == createdAt
          ? _value.createdAt
          : createdAt // ignore: cast_nullable_to_non_nullable
              as DateTime,
      updatedAt: freezed == updatedAt
          ? _value.updatedAt
          : updatedAt // ignore: cast_nullable_to_non_nullable
              as DateTime?,
      equipmentSerial: freezed == equipmentSerial
          ? _value.equipmentSerial
          : equipmentSerial // ignore: cast_nullable_to_non_nullable
              as String?,
      warehouseName: freezed == warehouseName
          ? _value.warehouseName
          : warehouseName // ignore: cast_nullable_to_non_nullable
              as String?,
      companies: null == companies
          ? _value._companies
          : companies // ignore: cast_nullable_to_non_nullable
              as List<Map<String, dynamic>>,
      equipment: freezed == equipment
          ? _value.equipment
          : equipment // ignore: cast_nullable_to_non_nullable
              as EquipmentDto?,
      warehouse: freezed == warehouse
          ? _value.warehouse
          : warehouse // ignore: cast_nullable_to_non_nullable
              as WarehouseDto?,
    ));
  }
}

/// @nodoc
@JsonSerializable()
class _$EquipmentHistoryDtoImpl extends _EquipmentHistoryDto {
  const _$EquipmentHistoryDtoImpl(
      {@JsonKey(name: 'id') this.id,
      @JsonKey(name: 'equipments_id') required this.equipmentsId,
      @JsonKey(name: 'warehouses_id') required this.warehousesId,
      @JsonKey(name: 'transaction_type') required this.transactionType,
      required this.quantity,
      @JsonKey(name: 'transacted_at') required this.transactedAt,
      this.remark,
      @JsonKey(name: 'is_deleted') this.isDeleted = false,
      @JsonKey(name: 'created_at') required this.createdAt,
      @JsonKey(name: 'updated_at') this.updatedAt,
      @JsonKey(name: 'equipment_serial') this.equipmentSerial,
      @JsonKey(name: 'warehouse_name') this.warehouseName,
      @JsonKey(name: 'companies')
      final List<Map<String, dynamic>> companies = const [],
      this.equipment,
      this.warehouse})
      : _companies = companies,
        super._();

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

// 백엔드 실제 필드명과 정확 일치
  @override
  @JsonKey(name: 'id')
  final int? id;
  @override
  @JsonKey(name: 'equipments_id')
  final int equipmentsId;
  @override
  @JsonKey(name: 'warehouses_id')
  final int warehousesId;
  @override
  @JsonKey(name: 'transaction_type')
  final String transactionType;
  @override
  final int quantity;
  @override
  @JsonKey(name: 'transacted_at')
  final DateTime transactedAt;
  @override
  final String? remark;
  @override
  @JsonKey(name: 'is_deleted')
  final bool isDeleted;
  @override
  @JsonKey(name: 'created_at')
  final DateTime createdAt;
  @override
  @JsonKey(name: 'updated_at')
  final DateTime? updatedAt;
// 백엔드 추가 필드들
  @override
  @JsonKey(name: 'equipment_serial')
  final String? equipmentSerial;
  @override
  @JsonKey(name: 'warehouse_name')
  final String? warehouseName;
  final List<Map<String, dynamic>> _companies;
  @override
  @JsonKey(name: 'companies')
  List<Map<String, dynamic>> get companies {
    if (_companies is EqualUnmodifiableListView) return _companies;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_companies);
  }

// Related entities (optional, populated in GET requests)
  @override
  final EquipmentDto? equipment;
  @override
  final WarehouseDto? warehouse;

  @override
  String toString() {
    return 'EquipmentHistoryDto(id: $id, equipmentsId: $equipmentsId, warehousesId: $warehousesId, transactionType: $transactionType, quantity: $quantity, transactedAt: $transactedAt, remark: $remark, isDeleted: $isDeleted, createdAt: $createdAt, updatedAt: $updatedAt, equipmentSerial: $equipmentSerial, warehouseName: $warehouseName, companies: $companies, equipment: $equipment, warehouse: $warehouse)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$EquipmentHistoryDtoImpl &&
            (identical(other.id, id) || other.id == id) &&
            (identical(other.equipmentsId, equipmentsId) ||
                other.equipmentsId == equipmentsId) &&
            (identical(other.warehousesId, warehousesId) ||
                other.warehousesId == warehousesId) &&
            (identical(other.transactionType, transactionType) ||
                other.transactionType == transactionType) &&
            (identical(other.quantity, quantity) ||
                other.quantity == quantity) &&
            (identical(other.transactedAt, transactedAt) ||
                other.transactedAt == transactedAt) &&
            (identical(other.remark, remark) || other.remark == remark) &&
            (identical(other.isDeleted, isDeleted) ||
                other.isDeleted == isDeleted) &&
            (identical(other.createdAt, createdAt) ||
                other.createdAt == createdAt) &&
            (identical(other.updatedAt, updatedAt) ||
                other.updatedAt == updatedAt) &&
            (identical(other.equipmentSerial, equipmentSerial) ||
                other.equipmentSerial == equipmentSerial) &&
            (identical(other.warehouseName, warehouseName) ||
                other.warehouseName == warehouseName) &&
            const DeepCollectionEquality()
                .equals(other._companies, _companies) &&
            (identical(other.equipment, equipment) ||
                other.equipment == equipment) &&
            (identical(other.warehouse, warehouse) ||
                other.warehouse == warehouse));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
      runtimeType,
      id,
      equipmentsId,
      warehousesId,
      transactionType,
      quantity,
      transactedAt,
      remark,
      isDeleted,
      createdAt,
      updatedAt,
      equipmentSerial,
      warehouseName,
      const DeepCollectionEquality().hash(_companies),
      equipment,
      warehouse);

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

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

abstract class _EquipmentHistoryDto extends EquipmentHistoryDto {
  const factory _EquipmentHistoryDto(
      {@JsonKey(name: 'id') final int? id,
      @JsonKey(name: 'equipments_id') required final int equipmentsId,
      @JsonKey(name: 'warehouses_id') required final int warehousesId,
      @JsonKey(name: 'transaction_type') required final String transactionType,
      required final int quantity,
      @JsonKey(name: 'transacted_at') required final DateTime transactedAt,
      final String? remark,
      @JsonKey(name: 'is_deleted') final bool isDeleted,
      @JsonKey(name: 'created_at') required final DateTime createdAt,
      @JsonKey(name: 'updated_at') final DateTime? updatedAt,
      @JsonKey(name: 'equipment_serial') final String? equipmentSerial,
      @JsonKey(name: 'warehouse_name') final String? warehouseName,
      @JsonKey(name: 'companies') final List<Map<String, dynamic>> companies,
      final EquipmentDto? equipment,
      final WarehouseDto? warehouse}) = _$EquipmentHistoryDtoImpl;
  const _EquipmentHistoryDto._() : super._();

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

// 백엔드 실제 필드명과 정확 일치
  @override
  @JsonKey(name: 'id')
  int? get id;
  @override
  @JsonKey(name: 'equipments_id')
  int get equipmentsId;
  @override
  @JsonKey(name: 'warehouses_id')
  int get warehousesId;
  @override
  @JsonKey(name: 'transaction_type')
  String get transactionType;
  @override
  int get quantity;
  @override
  @JsonKey(name: 'transacted_at')
  DateTime get transactedAt;
  @override
  String? get remark;
  @override
  @JsonKey(name: 'is_deleted')
  bool get isDeleted;
  @override
  @JsonKey(name: 'created_at')
  DateTime get createdAt;
  @override
  @JsonKey(name: 'updated_at')
  DateTime? get updatedAt; // 백엔드 추가 필드들
  @override
  @JsonKey(name: 'equipment_serial')
  String? get equipmentSerial;
  @override
  @JsonKey(name: 'warehouse_name')
  String? get warehouseName;
  @override
  @JsonKey(name: 'companies')
  List<Map<String, dynamic>>
      get companies; // Related entities (optional, populated in GET requests)
  @override
  EquipmentDto? get equipment;
  @override
  WarehouseDto? get warehouse;

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

EquipmentHistoryRequestDto _$EquipmentHistoryRequestDtoFromJson(
    Map<String, dynamic> json) {
  return _EquipmentHistoryRequestDto.fromJson(json);
}

/// @nodoc
mixin _$EquipmentHistoryRequestDto {
  @JsonKey(name: 'equipments_id')
  int get equipmentsId => throw _privateConstructorUsedError;
  @JsonKey(name: 'warehouses_id')
  int? get warehousesId =>
      throw _privateConstructorUsedError; // 출고 시 null 가능 (다른 회사로 완전 이관)
  @JsonKey(name: 'company_ids')
  List<int>? get companyIds => throw _privateConstructorUsedError; // 백엔드 API 매칭
  @JsonKey(name: 'transaction_type')
  String get transactionType => throw _privateConstructorUsedError;
  int get quantity => throw _privateConstructorUsedError;
  @JsonKey(name: 'transacted_at')
  DateTime? get transactedAt => throw _privateConstructorUsedError;
  String? get remark => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $EquipmentHistoryRequestDtoCopyWith<$Res> {
  factory $EquipmentHistoryRequestDtoCopyWith(EquipmentHistoryRequestDto value,
          $Res Function(EquipmentHistoryRequestDto) then) =
      _$EquipmentHistoryRequestDtoCopyWithImpl<$Res,
          EquipmentHistoryRequestDto>;
  @useResult
  $Res call(
      {@JsonKey(name: 'equipments_id') int equipmentsId,
      @JsonKey(name: 'warehouses_id') int? warehousesId,
      @JsonKey(name: 'company_ids') List<int>? companyIds,
      @JsonKey(name: 'transaction_type') String transactionType,
      int quantity,
      @JsonKey(name: 'transacted_at') DateTime? transactedAt,
      String? remark});
}

/// @nodoc
class _$EquipmentHistoryRequestDtoCopyWithImpl<$Res,
        $Val extends EquipmentHistoryRequestDto>
    implements $EquipmentHistoryRequestDtoCopyWith<$Res> {
  _$EquipmentHistoryRequestDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of EquipmentHistoryRequestDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? equipmentsId = null,
    Object? warehousesId = freezed,
    Object? companyIds = freezed,
    Object? transactionType = null,
    Object? quantity = null,
    Object? transactedAt = freezed,
    Object? remark = freezed,
  }) {
    return _then(_value.copyWith(
      equipmentsId: null == equipmentsId
          ? _value.equipmentsId
          : equipmentsId // ignore: cast_nullable_to_non_nullable
              as int,
      warehousesId: freezed == warehousesId
          ? _value.warehousesId
          : warehousesId // ignore: cast_nullable_to_non_nullable
              as int?,
      companyIds: freezed == companyIds
          ? _value.companyIds
          : companyIds // ignore: cast_nullable_to_non_nullable
              as List<int>?,
      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,
      transactedAt: freezed == transactedAt
          ? _value.transactedAt
          : transactedAt // ignore: cast_nullable_to_non_nullable
              as DateTime?,
      remark: freezed == remark
          ? _value.remark
          : remark // ignore: cast_nullable_to_non_nullable
              as String?,
    ) as $Val);
  }
}

/// @nodoc
abstract class _$$EquipmentHistoryRequestDtoImplCopyWith<$Res>
    implements $EquipmentHistoryRequestDtoCopyWith<$Res> {
  factory _$$EquipmentHistoryRequestDtoImplCopyWith(
          _$EquipmentHistoryRequestDtoImpl value,
          $Res Function(_$EquipmentHistoryRequestDtoImpl) then) =
      __$$EquipmentHistoryRequestDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call(
      {@JsonKey(name: 'equipments_id') int equipmentsId,
      @JsonKey(name: 'warehouses_id') int? warehousesId,
      @JsonKey(name: 'company_ids') List<int>? companyIds,
      @JsonKey(name: 'transaction_type') String transactionType,
      int quantity,
      @JsonKey(name: 'transacted_at') DateTime? transactedAt,
      String? remark});
}

/// @nodoc
class __$$EquipmentHistoryRequestDtoImplCopyWithImpl<$Res>
    extends _$EquipmentHistoryRequestDtoCopyWithImpl<$Res,
        _$EquipmentHistoryRequestDtoImpl>
    implements _$$EquipmentHistoryRequestDtoImplCopyWith<$Res> {
  __$$EquipmentHistoryRequestDtoImplCopyWithImpl(
      _$EquipmentHistoryRequestDtoImpl _value,
      $Res Function(_$EquipmentHistoryRequestDtoImpl) _then)
      : super(_value, _then);

  /// Create a copy of EquipmentHistoryRequestDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? equipmentsId = null,
    Object? warehousesId = freezed,
    Object? companyIds = freezed,
    Object? transactionType = null,
    Object? quantity = null,
    Object? transactedAt = freezed,
    Object? remark = freezed,
  }) {
    return _then(_$EquipmentHistoryRequestDtoImpl(
      equipmentsId: null == equipmentsId
          ? _value.equipmentsId
          : equipmentsId // ignore: cast_nullable_to_non_nullable
              as int,
      warehousesId: freezed == warehousesId
          ? _value.warehousesId
          : warehousesId // ignore: cast_nullable_to_non_nullable
              as int?,
      companyIds: freezed == companyIds
          ? _value._companyIds
          : companyIds // ignore: cast_nullable_to_non_nullable
              as List<int>?,
      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,
      transactedAt: freezed == transactedAt
          ? _value.transactedAt
          : transactedAt // ignore: cast_nullable_to_non_nullable
              as DateTime?,
      remark: freezed == remark
          ? _value.remark
          : remark // ignore: cast_nullable_to_non_nullable
              as String?,
    ));
  }
}

/// @nodoc
@JsonSerializable()
class _$EquipmentHistoryRequestDtoImpl implements _EquipmentHistoryRequestDto {
  const _$EquipmentHistoryRequestDtoImpl(
      {@JsonKey(name: 'equipments_id') required this.equipmentsId,
      @JsonKey(name: 'warehouses_id') this.warehousesId,
      @JsonKey(name: 'company_ids') final List<int>? companyIds,
      @JsonKey(name: 'transaction_type') required this.transactionType,
      required this.quantity,
      @JsonKey(name: 'transacted_at') this.transactedAt,
      this.remark})
      : _companyIds = companyIds;

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

  @override
  @JsonKey(name: 'equipments_id')
  final int equipmentsId;
  @override
  @JsonKey(name: 'warehouses_id')
  final int? warehousesId;
// 출고 시 null 가능 (다른 회사로 완전 이관)
  final List<int>? _companyIds;
// 출고 시 null 가능 (다른 회사로 완전 이관)
  @override
  @JsonKey(name: 'company_ids')
  List<int>? get companyIds {
    final value = _companyIds;
    if (value == null) return null;
    if (_companyIds is EqualUnmodifiableListView) return _companyIds;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

// 백엔드 API 매칭
  @override
  @JsonKey(name: 'transaction_type')
  final String transactionType;
  @override
  final int quantity;
  @override
  @JsonKey(name: 'transacted_at')
  final DateTime? transactedAt;
  @override
  final String? remark;

  @override
  String toString() {
    return 'EquipmentHistoryRequestDto(equipmentsId: $equipmentsId, warehousesId: $warehousesId, companyIds: $companyIds, transactionType: $transactionType, quantity: $quantity, transactedAt: $transactedAt, remark: $remark)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$EquipmentHistoryRequestDtoImpl &&
            (identical(other.equipmentsId, equipmentsId) ||
                other.equipmentsId == equipmentsId) &&
            (identical(other.warehousesId, warehousesId) ||
                other.warehousesId == warehousesId) &&
            const DeepCollectionEquality()
                .equals(other._companyIds, _companyIds) &&
            (identical(other.transactionType, transactionType) ||
                other.transactionType == transactionType) &&
            (identical(other.quantity, quantity) ||
                other.quantity == quantity) &&
            (identical(other.transactedAt, transactedAt) ||
                other.transactedAt == transactedAt) &&
            (identical(other.remark, remark) || other.remark == remark));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
      runtimeType,
      equipmentsId,
      warehousesId,
      const DeepCollectionEquality().hash(_companyIds),
      transactionType,
      quantity,
      transactedAt,
      remark);

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

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

abstract class _EquipmentHistoryRequestDto
    implements EquipmentHistoryRequestDto {
  const factory _EquipmentHistoryRequestDto(
      {@JsonKey(name: 'equipments_id') required final int equipmentsId,
      @JsonKey(name: 'warehouses_id') final int? warehousesId,
      @JsonKey(name: 'company_ids') final List<int>? companyIds,
      @JsonKey(name: 'transaction_type') required final String transactionType,
      required final int quantity,
      @JsonKey(name: 'transacted_at') final DateTime? transactedAt,
      final String? remark}) = _$EquipmentHistoryRequestDtoImpl;

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

  @override
  @JsonKey(name: 'equipments_id')
  int get equipmentsId;
  @override
  @JsonKey(name: 'warehouses_id')
  int? get warehousesId; // 출고 시 null 가능 (다른 회사로 완전 이관)
  @override
  @JsonKey(name: 'company_ids')
  List<int>? get companyIds; // 백엔드 API 매칭
  @override
  @JsonKey(name: 'transaction_type')
  String get transactionType;
  @override
  int get quantity;
  @override
  @JsonKey(name: 'transacted_at')
  DateTime? get transactedAt;
  @override
  String? get remark;

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

EquipmentHistoryUpdateRequestDto _$EquipmentHistoryUpdateRequestDtoFromJson(
    Map<String, dynamic> json) {
  return _EquipmentHistoryUpdateRequestDto.fromJson(json);
}

/// @nodoc
mixin _$EquipmentHistoryUpdateRequestDto {
  @JsonKey(name: 'warehouses_id')
  int? get warehousesId => throw _privateConstructorUsedError;
  @JsonKey(name: 'transaction_type')
  String? get transactionType => throw _privateConstructorUsedError;
  int? get quantity => throw _privateConstructorUsedError;
  @JsonKey(name: 'transacted_at')
  DateTime? get transactedAt => throw _privateConstructorUsedError;
  String? get remark => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $EquipmentHistoryUpdateRequestDtoCopyWith<$Res> {
  factory $EquipmentHistoryUpdateRequestDtoCopyWith(
          EquipmentHistoryUpdateRequestDto value,
          $Res Function(EquipmentHistoryUpdateRequestDto) then) =
      _$EquipmentHistoryUpdateRequestDtoCopyWithImpl<$Res,
          EquipmentHistoryUpdateRequestDto>;
  @useResult
  $Res call(
      {@JsonKey(name: 'warehouses_id') int? warehousesId,
      @JsonKey(name: 'transaction_type') String? transactionType,
      int? quantity,
      @JsonKey(name: 'transacted_at') DateTime? transactedAt,
      String? remark});
}

/// @nodoc
class _$EquipmentHistoryUpdateRequestDtoCopyWithImpl<$Res,
        $Val extends EquipmentHistoryUpdateRequestDto>
    implements $EquipmentHistoryUpdateRequestDtoCopyWith<$Res> {
  _$EquipmentHistoryUpdateRequestDtoCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$EquipmentHistoryUpdateRequestDtoImplCopyWith<$Res>
    implements $EquipmentHistoryUpdateRequestDtoCopyWith<$Res> {
  factory _$$EquipmentHistoryUpdateRequestDtoImplCopyWith(
          _$EquipmentHistoryUpdateRequestDtoImpl value,
          $Res Function(_$EquipmentHistoryUpdateRequestDtoImpl) then) =
      __$$EquipmentHistoryUpdateRequestDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call(
      {@JsonKey(name: 'warehouses_id') int? warehousesId,
      @JsonKey(name: 'transaction_type') String? transactionType,
      int? quantity,
      @JsonKey(name: 'transacted_at') DateTime? transactedAt,
      String? remark});
}

/// @nodoc
class __$$EquipmentHistoryUpdateRequestDtoImplCopyWithImpl<$Res>
    extends _$EquipmentHistoryUpdateRequestDtoCopyWithImpl<$Res,
        _$EquipmentHistoryUpdateRequestDtoImpl>
    implements _$$EquipmentHistoryUpdateRequestDtoImplCopyWith<$Res> {
  __$$EquipmentHistoryUpdateRequestDtoImplCopyWithImpl(
      _$EquipmentHistoryUpdateRequestDtoImpl _value,
      $Res Function(_$EquipmentHistoryUpdateRequestDtoImpl) _then)
      : super(_value, _then);

  /// Create a copy of EquipmentHistoryUpdateRequestDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? warehousesId = freezed,
    Object? transactionType = freezed,
    Object? quantity = freezed,
    Object? transactedAt = freezed,
    Object? remark = freezed,
  }) {
    return _then(_$EquipmentHistoryUpdateRequestDtoImpl(
      warehousesId: freezed == warehousesId
          ? _value.warehousesId
          : warehousesId // ignore: cast_nullable_to_non_nullable
              as int?,
      transactionType: freezed == transactionType
          ? _value.transactionType
          : transactionType // ignore: cast_nullable_to_non_nullable
              as String?,
      quantity: freezed == quantity
          ? _value.quantity
          : quantity // ignore: cast_nullable_to_non_nullable
              as int?,
      transactedAt: freezed == transactedAt
          ? _value.transactedAt
          : transactedAt // ignore: cast_nullable_to_non_nullable
              as DateTime?,
      remark: freezed == remark
          ? _value.remark
          : remark // ignore: cast_nullable_to_non_nullable
              as String?,
    ));
  }
}

/// @nodoc
@JsonSerializable()
class _$EquipmentHistoryUpdateRequestDtoImpl
    implements _EquipmentHistoryUpdateRequestDto {
  const _$EquipmentHistoryUpdateRequestDtoImpl(
      {@JsonKey(name: 'warehouses_id') this.warehousesId,
      @JsonKey(name: 'transaction_type') this.transactionType,
      this.quantity,
      @JsonKey(name: 'transacted_at') this.transactedAt,
      this.remark});

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

  @override
  @JsonKey(name: 'warehouses_id')
  final int? warehousesId;
  @override
  @JsonKey(name: 'transaction_type')
  final String? transactionType;
  @override
  final int? quantity;
  @override
  @JsonKey(name: 'transacted_at')
  final DateTime? transactedAt;
  @override
  final String? remark;

  @override
  String toString() {
    return 'EquipmentHistoryUpdateRequestDto(warehousesId: $warehousesId, transactionType: $transactionType, quantity: $quantity, transactedAt: $transactedAt, remark: $remark)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$EquipmentHistoryUpdateRequestDtoImpl &&
            (identical(other.warehousesId, warehousesId) ||
                other.warehousesId == warehousesId) &&
            (identical(other.transactionType, transactionType) ||
                other.transactionType == transactionType) &&
            (identical(other.quantity, quantity) ||
                other.quantity == quantity) &&
            (identical(other.transactedAt, transactedAt) ||
                other.transactedAt == transactedAt) &&
            (identical(other.remark, remark) || other.remark == remark));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(runtimeType, warehousesId, transactionType,
      quantity, transactedAt, remark);

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

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

abstract class _EquipmentHistoryUpdateRequestDto
    implements EquipmentHistoryUpdateRequestDto {
  const factory _EquipmentHistoryUpdateRequestDto(
      {@JsonKey(name: 'warehouses_id') final int? warehousesId,
      @JsonKey(name: 'transaction_type') final String? transactionType,
      final int? quantity,
      @JsonKey(name: 'transacted_at') final DateTime? transactedAt,
      final String? remark}) = _$EquipmentHistoryUpdateRequestDtoImpl;

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

  @override
  @JsonKey(name: 'warehouses_id')
  int? get warehousesId;
  @override
  @JsonKey(name: 'transaction_type')
  String? get transactionType;
  @override
  int? get quantity;
  @override
  @JsonKey(name: 'transacted_at')
  DateTime? get transactedAt;
  @override
  String? get remark;

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

EquipmentHistoryListResponse _$EquipmentHistoryListResponseFromJson(
    Map<String, dynamic> json) {
  return _EquipmentHistoryListResponse.fromJson(json);
}

/// @nodoc
mixin _$EquipmentHistoryListResponse {
  @JsonKey(name: 'data')
  List<EquipmentHistoryDto> 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 EquipmentHistoryListResponse to a JSON map.
  Map<String, dynamic> toJson() => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $EquipmentHistoryListResponseCopyWith<$Res> {
  factory $EquipmentHistoryListResponseCopyWith(
          EquipmentHistoryListResponse value,
          $Res Function(EquipmentHistoryListResponse) then) =
      _$EquipmentHistoryListResponseCopyWithImpl<$Res,
          EquipmentHistoryListResponse>;
  @useResult
  $Res call(
      {@JsonKey(name: 'data') List<EquipmentHistoryDto> 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 _$EquipmentHistoryListResponseCopyWithImpl<$Res,
        $Val extends EquipmentHistoryListResponse>
    implements $EquipmentHistoryListResponseCopyWith<$Res> {
  _$EquipmentHistoryListResponseCopyWithImpl(this._value, this._then);

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

  /// Create a copy of EquipmentHistoryListResponse
  /// 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<EquipmentHistoryDto>,
      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 _$$EquipmentHistoryListResponseImplCopyWith<$Res>
    implements $EquipmentHistoryListResponseCopyWith<$Res> {
  factory _$$EquipmentHistoryListResponseImplCopyWith(
          _$EquipmentHistoryListResponseImpl value,
          $Res Function(_$EquipmentHistoryListResponseImpl) then) =
      __$$EquipmentHistoryListResponseImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call(
      {@JsonKey(name: 'data') List<EquipmentHistoryDto> 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 __$$EquipmentHistoryListResponseImplCopyWithImpl<$Res>
    extends _$EquipmentHistoryListResponseCopyWithImpl<$Res,
        _$EquipmentHistoryListResponseImpl>
    implements _$$EquipmentHistoryListResponseImplCopyWith<$Res> {
  __$$EquipmentHistoryListResponseImplCopyWithImpl(
      _$EquipmentHistoryListResponseImpl _value,
      $Res Function(_$EquipmentHistoryListResponseImpl) _then)
      : super(_value, _then);

  /// Create a copy of EquipmentHistoryListResponse
  /// 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(_$EquipmentHistoryListResponseImpl(
      items: null == items
          ? _value._items
          : items // ignore: cast_nullable_to_non_nullable
              as List<EquipmentHistoryDto>,
      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 _$EquipmentHistoryListResponseImpl
    implements _EquipmentHistoryListResponse {
  const _$EquipmentHistoryListResponseImpl(
      {@JsonKey(name: 'data') required final List<EquipmentHistoryDto> 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 _$EquipmentHistoryListResponseImpl.fromJson(
          Map<String, dynamic> json) =>
      _$$EquipmentHistoryListResponseImplFromJson(json);

  final List<EquipmentHistoryDto> _items;
  @override
  @JsonKey(name: 'data')
  List<EquipmentHistoryDto> 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 'EquipmentHistoryListResponse(items: $items, totalCount: $totalCount, currentPage: $currentPage, totalPages: $totalPages, pageSize: $pageSize)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$EquipmentHistoryListResponseImpl &&
            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 EquipmentHistoryListResponse
  /// with the given fields replaced by the non-null parameter values.
  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  @pragma('vm:prefer-inline')
  _$$EquipmentHistoryListResponseImplCopyWith<
          _$EquipmentHistoryListResponseImpl>
      get copyWith => __$$EquipmentHistoryListResponseImplCopyWithImpl<
          _$EquipmentHistoryListResponseImpl>(this, _$identity);

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

abstract class _EquipmentHistoryListResponse
    implements EquipmentHistoryListResponse {
  const factory _EquipmentHistoryListResponse(
      {@JsonKey(name: 'data') required final List<EquipmentHistoryDto> 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}) = _$EquipmentHistoryListResponseImpl;

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

  @override
  @JsonKey(name: 'data')
  List<EquipmentHistoryDto> 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 EquipmentHistoryListResponse
  /// with the given fields replaced by the non-null parameter values.
  @override
  @JsonKey(includeFromJson: false, includeToJson: false)
  _$$EquipmentHistoryListResponseImplCopyWith<
          _$EquipmentHistoryListResponseImpl>
      get copyWith => throw _privateConstructorUsedError;
}
