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

MaintenanceDto _$MaintenanceDtoFromJson(Map<String, dynamic> json) {
  return _MaintenanceDto.fromJson(json);
}

/// @nodoc
mixin _$MaintenanceDto {
  @JsonKey(name: 'id')
  int? get id => throw _privateConstructorUsedError;
  @JsonKey(name: 'equipment_history_id')
  int? get equipmentHistoryId =>
      throw _privateConstructorUsedError; // Optional in backend
  @JsonKey(name: 'started_at')
  DateTime get startedAt => throw _privateConstructorUsedError;
  @JsonKey(name: 'ended_at')
  DateTime get endedAt => throw _privateConstructorUsedError;
  @JsonKey(name: 'period_month')
  int get periodMonth => throw _privateConstructorUsedError;
  @JsonKey(name: 'maintenance_type')
  String get maintenanceType =>
      throw _privateConstructorUsedError; // V: 방문, R: 원격
  @JsonKey(name: 'is_deleted')
  bool get isDeleted => throw _privateConstructorUsedError;
  @JsonKey(name: 'registered_at')
  DateTime get registeredAt => throw _privateConstructorUsedError;
  @JsonKey(name: 'updated_at')
  DateTime? get updatedAt =>
      throw _privateConstructorUsedError; // 백엔드 추가 필드들 (계산된 값)
  @JsonKey(name: 'equipment_serial')
  String? get equipmentSerial => throw _privateConstructorUsedError;
  @JsonKey(name: 'equipment_model')
  String? get equipmentModel => throw _privateConstructorUsedError;
  @JsonKey(name: 'company_id')
  int? get companyId => throw _privateConstructorUsedError;
  @JsonKey(name: 'company_name')
  String? get companyName => throw _privateConstructorUsedError;
  @JsonKey(name: 'days_remaining')
  int? get daysRemaining => throw _privateConstructorUsedError;
  @JsonKey(name: 'is_expired')
  bool get isExpired =>
      throw _privateConstructorUsedError; // Related entities (optional, populated in GET requests)
  EquipmentHistoryDto? get equipmentHistory =>
      throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $MaintenanceDtoCopyWith<$Res> {
  factory $MaintenanceDtoCopyWith(
          MaintenanceDto value, $Res Function(MaintenanceDto) then) =
      _$MaintenanceDtoCopyWithImpl<$Res, MaintenanceDto>;
  @useResult
  $Res call(
      {@JsonKey(name: 'id') int? id,
      @JsonKey(name: 'equipment_history_id') int? equipmentHistoryId,
      @JsonKey(name: 'started_at') DateTime startedAt,
      @JsonKey(name: 'ended_at') DateTime endedAt,
      @JsonKey(name: 'period_month') int periodMonth,
      @JsonKey(name: 'maintenance_type') String maintenanceType,
      @JsonKey(name: 'is_deleted') bool isDeleted,
      @JsonKey(name: 'registered_at') DateTime registeredAt,
      @JsonKey(name: 'updated_at') DateTime? updatedAt,
      @JsonKey(name: 'equipment_serial') String? equipmentSerial,
      @JsonKey(name: 'equipment_model') String? equipmentModel,
      @JsonKey(name: 'company_id') int? companyId,
      @JsonKey(name: 'company_name') String? companyName,
      @JsonKey(name: 'days_remaining') int? daysRemaining,
      @JsonKey(name: 'is_expired') bool isExpired,
      EquipmentHistoryDto? equipmentHistory});

  $EquipmentHistoryDtoCopyWith<$Res>? get equipmentHistory;
}

/// @nodoc
class _$MaintenanceDtoCopyWithImpl<$Res, $Val extends MaintenanceDto>
    implements $MaintenanceDtoCopyWith<$Res> {
  _$MaintenanceDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of MaintenanceDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? id = freezed,
    Object? equipmentHistoryId = freezed,
    Object? startedAt = null,
    Object? endedAt = null,
    Object? periodMonth = null,
    Object? maintenanceType = null,
    Object? isDeleted = null,
    Object? registeredAt = null,
    Object? updatedAt = freezed,
    Object? equipmentSerial = freezed,
    Object? equipmentModel = freezed,
    Object? companyId = freezed,
    Object? companyName = freezed,
    Object? daysRemaining = freezed,
    Object? isExpired = null,
    Object? equipmentHistory = freezed,
  }) {
    return _then(_value.copyWith(
      id: freezed == id
          ? _value.id
          : id // ignore: cast_nullable_to_non_nullable
              as int?,
      equipmentHistoryId: freezed == equipmentHistoryId
          ? _value.equipmentHistoryId
          : equipmentHistoryId // ignore: cast_nullable_to_non_nullable
              as int?,
      startedAt: null == startedAt
          ? _value.startedAt
          : startedAt // ignore: cast_nullable_to_non_nullable
              as DateTime,
      endedAt: null == endedAt
          ? _value.endedAt
          : endedAt // ignore: cast_nullable_to_non_nullable
              as DateTime,
      periodMonth: null == periodMonth
          ? _value.periodMonth
          : periodMonth // ignore: cast_nullable_to_non_nullable
              as int,
      maintenanceType: null == maintenanceType
          ? _value.maintenanceType
          : maintenanceType // ignore: cast_nullable_to_non_nullable
              as String,
      isDeleted: null == isDeleted
          ? _value.isDeleted
          : isDeleted // ignore: cast_nullable_to_non_nullable
              as bool,
      registeredAt: null == registeredAt
          ? _value.registeredAt
          : registeredAt // 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?,
      equipmentModel: freezed == equipmentModel
          ? _value.equipmentModel
          : equipmentModel // ignore: cast_nullable_to_non_nullable
              as String?,
      companyId: freezed == companyId
          ? _value.companyId
          : companyId // ignore: cast_nullable_to_non_nullable
              as int?,
      companyName: freezed == companyName
          ? _value.companyName
          : companyName // ignore: cast_nullable_to_non_nullable
              as String?,
      daysRemaining: freezed == daysRemaining
          ? _value.daysRemaining
          : daysRemaining // ignore: cast_nullable_to_non_nullable
              as int?,
      isExpired: null == isExpired
          ? _value.isExpired
          : isExpired // ignore: cast_nullable_to_non_nullable
              as bool,
      equipmentHistory: freezed == equipmentHistory
          ? _value.equipmentHistory
          : equipmentHistory // ignore: cast_nullable_to_non_nullable
              as EquipmentHistoryDto?,
    ) as $Val);
  }

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

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

/// @nodoc
abstract class _$$MaintenanceDtoImplCopyWith<$Res>
    implements $MaintenanceDtoCopyWith<$Res> {
  factory _$$MaintenanceDtoImplCopyWith(_$MaintenanceDtoImpl value,
          $Res Function(_$MaintenanceDtoImpl) then) =
      __$$MaintenanceDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call(
      {@JsonKey(name: 'id') int? id,
      @JsonKey(name: 'equipment_history_id') int? equipmentHistoryId,
      @JsonKey(name: 'started_at') DateTime startedAt,
      @JsonKey(name: 'ended_at') DateTime endedAt,
      @JsonKey(name: 'period_month') int periodMonth,
      @JsonKey(name: 'maintenance_type') String maintenanceType,
      @JsonKey(name: 'is_deleted') bool isDeleted,
      @JsonKey(name: 'registered_at') DateTime registeredAt,
      @JsonKey(name: 'updated_at') DateTime? updatedAt,
      @JsonKey(name: 'equipment_serial') String? equipmentSerial,
      @JsonKey(name: 'equipment_model') String? equipmentModel,
      @JsonKey(name: 'company_id') int? companyId,
      @JsonKey(name: 'company_name') String? companyName,
      @JsonKey(name: 'days_remaining') int? daysRemaining,
      @JsonKey(name: 'is_expired') bool isExpired,
      EquipmentHistoryDto? equipmentHistory});

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

/// @nodoc
class __$$MaintenanceDtoImplCopyWithImpl<$Res>
    extends _$MaintenanceDtoCopyWithImpl<$Res, _$MaintenanceDtoImpl>
    implements _$$MaintenanceDtoImplCopyWith<$Res> {
  __$$MaintenanceDtoImplCopyWithImpl(
      _$MaintenanceDtoImpl _value, $Res Function(_$MaintenanceDtoImpl) _then)
      : super(_value, _then);

  /// Create a copy of MaintenanceDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? id = freezed,
    Object? equipmentHistoryId = freezed,
    Object? startedAt = null,
    Object? endedAt = null,
    Object? periodMonth = null,
    Object? maintenanceType = null,
    Object? isDeleted = null,
    Object? registeredAt = null,
    Object? updatedAt = freezed,
    Object? equipmentSerial = freezed,
    Object? equipmentModel = freezed,
    Object? companyId = freezed,
    Object? companyName = freezed,
    Object? daysRemaining = freezed,
    Object? isExpired = null,
    Object? equipmentHistory = freezed,
  }) {
    return _then(_$MaintenanceDtoImpl(
      id: freezed == id
          ? _value.id
          : id // ignore: cast_nullable_to_non_nullable
              as int?,
      equipmentHistoryId: freezed == equipmentHistoryId
          ? _value.equipmentHistoryId
          : equipmentHistoryId // ignore: cast_nullable_to_non_nullable
              as int?,
      startedAt: null == startedAt
          ? _value.startedAt
          : startedAt // ignore: cast_nullable_to_non_nullable
              as DateTime,
      endedAt: null == endedAt
          ? _value.endedAt
          : endedAt // ignore: cast_nullable_to_non_nullable
              as DateTime,
      periodMonth: null == periodMonth
          ? _value.periodMonth
          : periodMonth // ignore: cast_nullable_to_non_nullable
              as int,
      maintenanceType: null == maintenanceType
          ? _value.maintenanceType
          : maintenanceType // ignore: cast_nullable_to_non_nullable
              as String,
      isDeleted: null == isDeleted
          ? _value.isDeleted
          : isDeleted // ignore: cast_nullable_to_non_nullable
              as bool,
      registeredAt: null == registeredAt
          ? _value.registeredAt
          : registeredAt // 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?,
      equipmentModel: freezed == equipmentModel
          ? _value.equipmentModel
          : equipmentModel // ignore: cast_nullable_to_non_nullable
              as String?,
      companyId: freezed == companyId
          ? _value.companyId
          : companyId // ignore: cast_nullable_to_non_nullable
              as int?,
      companyName: freezed == companyName
          ? _value.companyName
          : companyName // ignore: cast_nullable_to_non_nullable
              as String?,
      daysRemaining: freezed == daysRemaining
          ? _value.daysRemaining
          : daysRemaining // ignore: cast_nullable_to_non_nullable
              as int?,
      isExpired: null == isExpired
          ? _value.isExpired
          : isExpired // ignore: cast_nullable_to_non_nullable
              as bool,
      equipmentHistory: freezed == equipmentHistory
          ? _value.equipmentHistory
          : equipmentHistory // ignore: cast_nullable_to_non_nullable
              as EquipmentHistoryDto?,
    ));
  }
}

/// @nodoc
@JsonSerializable()
class _$MaintenanceDtoImpl extends _MaintenanceDto {
  const _$MaintenanceDtoImpl(
      {@JsonKey(name: 'id') this.id,
      @JsonKey(name: 'equipment_history_id') this.equipmentHistoryId,
      @JsonKey(name: 'started_at') required this.startedAt,
      @JsonKey(name: 'ended_at') required this.endedAt,
      @JsonKey(name: 'period_month') this.periodMonth = 1,
      @JsonKey(name: 'maintenance_type') this.maintenanceType = 'V',
      @JsonKey(name: 'is_deleted') this.isDeleted = false,
      @JsonKey(name: 'registered_at') required this.registeredAt,
      @JsonKey(name: 'updated_at') this.updatedAt,
      @JsonKey(name: 'equipment_serial') this.equipmentSerial,
      @JsonKey(name: 'equipment_model') this.equipmentModel,
      @JsonKey(name: 'company_id') this.companyId,
      @JsonKey(name: 'company_name') this.companyName,
      @JsonKey(name: 'days_remaining') this.daysRemaining,
      @JsonKey(name: 'is_expired') this.isExpired = false,
      this.equipmentHistory})
      : super._();

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

  @override
  @JsonKey(name: 'id')
  final int? id;
  @override
  @JsonKey(name: 'equipment_history_id')
  final int? equipmentHistoryId;
// Optional in backend
  @override
  @JsonKey(name: 'started_at')
  final DateTime startedAt;
  @override
  @JsonKey(name: 'ended_at')
  final DateTime endedAt;
  @override
  @JsonKey(name: 'period_month')
  final int periodMonth;
  @override
  @JsonKey(name: 'maintenance_type')
  final String maintenanceType;
// V: 방문, R: 원격
  @override
  @JsonKey(name: 'is_deleted')
  final bool isDeleted;
  @override
  @JsonKey(name: 'registered_at')
  final DateTime registeredAt;
  @override
  @JsonKey(name: 'updated_at')
  final DateTime? updatedAt;
// 백엔드 추가 필드들 (계산된 값)
  @override
  @JsonKey(name: 'equipment_serial')
  final String? equipmentSerial;
  @override
  @JsonKey(name: 'equipment_model')
  final String? equipmentModel;
  @override
  @JsonKey(name: 'company_id')
  final int? companyId;
  @override
  @JsonKey(name: 'company_name')
  final String? companyName;
  @override
  @JsonKey(name: 'days_remaining')
  final int? daysRemaining;
  @override
  @JsonKey(name: 'is_expired')
  final bool isExpired;
// Related entities (optional, populated in GET requests)
  @override
  final EquipmentHistoryDto? equipmentHistory;

  @override
  String toString() {
    return 'MaintenanceDto(id: $id, equipmentHistoryId: $equipmentHistoryId, startedAt: $startedAt, endedAt: $endedAt, periodMonth: $periodMonth, maintenanceType: $maintenanceType, isDeleted: $isDeleted, registeredAt: $registeredAt, updatedAt: $updatedAt, equipmentSerial: $equipmentSerial, equipmentModel: $equipmentModel, companyId: $companyId, companyName: $companyName, daysRemaining: $daysRemaining, isExpired: $isExpired, equipmentHistory: $equipmentHistory)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$MaintenanceDtoImpl &&
            (identical(other.id, id) || other.id == id) &&
            (identical(other.equipmentHistoryId, equipmentHistoryId) ||
                other.equipmentHistoryId == equipmentHistoryId) &&
            (identical(other.startedAt, startedAt) ||
                other.startedAt == startedAt) &&
            (identical(other.endedAt, endedAt) || other.endedAt == endedAt) &&
            (identical(other.periodMonth, periodMonth) ||
                other.periodMonth == periodMonth) &&
            (identical(other.maintenanceType, maintenanceType) ||
                other.maintenanceType == maintenanceType) &&
            (identical(other.isDeleted, isDeleted) ||
                other.isDeleted == isDeleted) &&
            (identical(other.registeredAt, registeredAt) ||
                other.registeredAt == registeredAt) &&
            (identical(other.updatedAt, updatedAt) ||
                other.updatedAt == updatedAt) &&
            (identical(other.equipmentSerial, equipmentSerial) ||
                other.equipmentSerial == equipmentSerial) &&
            (identical(other.equipmentModel, equipmentModel) ||
                other.equipmentModel == equipmentModel) &&
            (identical(other.companyId, companyId) ||
                other.companyId == companyId) &&
            (identical(other.companyName, companyName) ||
                other.companyName == companyName) &&
            (identical(other.daysRemaining, daysRemaining) ||
                other.daysRemaining == daysRemaining) &&
            (identical(other.isExpired, isExpired) ||
                other.isExpired == isExpired) &&
            (identical(other.equipmentHistory, equipmentHistory) ||
                other.equipmentHistory == equipmentHistory));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
      runtimeType,
      id,
      equipmentHistoryId,
      startedAt,
      endedAt,
      periodMonth,
      maintenanceType,
      isDeleted,
      registeredAt,
      updatedAt,
      equipmentSerial,
      equipmentModel,
      companyId,
      companyName,
      daysRemaining,
      isExpired,
      equipmentHistory);

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

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

abstract class _MaintenanceDto extends MaintenanceDto {
  const factory _MaintenanceDto(
      {@JsonKey(name: 'id') final int? id,
      @JsonKey(name: 'equipment_history_id') final int? equipmentHistoryId,
      @JsonKey(name: 'started_at') required final DateTime startedAt,
      @JsonKey(name: 'ended_at') required final DateTime endedAt,
      @JsonKey(name: 'period_month') final int periodMonth,
      @JsonKey(name: 'maintenance_type') final String maintenanceType,
      @JsonKey(name: 'is_deleted') final bool isDeleted,
      @JsonKey(name: 'registered_at') required final DateTime registeredAt,
      @JsonKey(name: 'updated_at') final DateTime? updatedAt,
      @JsonKey(name: 'equipment_serial') final String? equipmentSerial,
      @JsonKey(name: 'equipment_model') final String? equipmentModel,
      @JsonKey(name: 'company_id') final int? companyId,
      @JsonKey(name: 'company_name') final String? companyName,
      @JsonKey(name: 'days_remaining') final int? daysRemaining,
      @JsonKey(name: 'is_expired') final bool isExpired,
      final EquipmentHistoryDto? equipmentHistory}) = _$MaintenanceDtoImpl;
  const _MaintenanceDto._() : super._();

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

  @override
  @JsonKey(name: 'id')
  int? get id;
  @override
  @JsonKey(name: 'equipment_history_id')
  int? get equipmentHistoryId; // Optional in backend
  @override
  @JsonKey(name: 'started_at')
  DateTime get startedAt;
  @override
  @JsonKey(name: 'ended_at')
  DateTime get endedAt;
  @override
  @JsonKey(name: 'period_month')
  int get periodMonth;
  @override
  @JsonKey(name: 'maintenance_type')
  String get maintenanceType; // V: 방문, R: 원격
  @override
  @JsonKey(name: 'is_deleted')
  bool get isDeleted;
  @override
  @JsonKey(name: 'registered_at')
  DateTime get registeredAt;
  @override
  @JsonKey(name: 'updated_at')
  DateTime? get updatedAt; // 백엔드 추가 필드들 (계산된 값)
  @override
  @JsonKey(name: 'equipment_serial')
  String? get equipmentSerial;
  @override
  @JsonKey(name: 'equipment_model')
  String? get equipmentModel;
  @override
  @JsonKey(name: 'company_id')
  int? get companyId;
  @override
  @JsonKey(name: 'company_name')
  String? get companyName;
  @override
  @JsonKey(name: 'days_remaining')
  int? get daysRemaining;
  @override
  @JsonKey(name: 'is_expired')
  bool get isExpired; // Related entities (optional, populated in GET requests)
  @override
  EquipmentHistoryDto? get equipmentHistory;

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

MaintenanceRequestDto _$MaintenanceRequestDtoFromJson(
    Map<String, dynamic> json) {
  return _MaintenanceRequestDto.fromJson(json);
}

/// @nodoc
mixin _$MaintenanceRequestDto {
  @JsonKey(name: 'equipment_history_id')
  int? get equipmentHistoryId =>
      throw _privateConstructorUsedError; // Optional in backend
  @JsonKey(name: 'started_at')
  DateTime get startedAt => throw _privateConstructorUsedError;
  @JsonKey(name: 'ended_at')
  DateTime get endedAt => throw _privateConstructorUsedError;
  @JsonKey(name: 'period_month')
  int get periodMonth => throw _privateConstructorUsedError;
  @JsonKey(name: 'maintenance_type')
  String get maintenanceType => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $MaintenanceRequestDtoCopyWith<$Res> {
  factory $MaintenanceRequestDtoCopyWith(MaintenanceRequestDto value,
          $Res Function(MaintenanceRequestDto) then) =
      _$MaintenanceRequestDtoCopyWithImpl<$Res, MaintenanceRequestDto>;
  @useResult
  $Res call(
      {@JsonKey(name: 'equipment_history_id') int? equipmentHistoryId,
      @JsonKey(name: 'started_at') DateTime startedAt,
      @JsonKey(name: 'ended_at') DateTime endedAt,
      @JsonKey(name: 'period_month') int periodMonth,
      @JsonKey(name: 'maintenance_type') String maintenanceType});
}

/// @nodoc
class _$MaintenanceRequestDtoCopyWithImpl<$Res,
        $Val extends MaintenanceRequestDto>
    implements $MaintenanceRequestDtoCopyWith<$Res> {
  _$MaintenanceRequestDtoCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$MaintenanceRequestDtoImplCopyWith<$Res>
    implements $MaintenanceRequestDtoCopyWith<$Res> {
  factory _$$MaintenanceRequestDtoImplCopyWith(
          _$MaintenanceRequestDtoImpl value,
          $Res Function(_$MaintenanceRequestDtoImpl) then) =
      __$$MaintenanceRequestDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call(
      {@JsonKey(name: 'equipment_history_id') int? equipmentHistoryId,
      @JsonKey(name: 'started_at') DateTime startedAt,
      @JsonKey(name: 'ended_at') DateTime endedAt,
      @JsonKey(name: 'period_month') int periodMonth,
      @JsonKey(name: 'maintenance_type') String maintenanceType});
}

/// @nodoc
class __$$MaintenanceRequestDtoImplCopyWithImpl<$Res>
    extends _$MaintenanceRequestDtoCopyWithImpl<$Res,
        _$MaintenanceRequestDtoImpl>
    implements _$$MaintenanceRequestDtoImplCopyWith<$Res> {
  __$$MaintenanceRequestDtoImplCopyWithImpl(_$MaintenanceRequestDtoImpl _value,
      $Res Function(_$MaintenanceRequestDtoImpl) _then)
      : super(_value, _then);

  /// Create a copy of MaintenanceRequestDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? equipmentHistoryId = freezed,
    Object? startedAt = null,
    Object? endedAt = null,
    Object? periodMonth = null,
    Object? maintenanceType = null,
  }) {
    return _then(_$MaintenanceRequestDtoImpl(
      equipmentHistoryId: freezed == equipmentHistoryId
          ? _value.equipmentHistoryId
          : equipmentHistoryId // ignore: cast_nullable_to_non_nullable
              as int?,
      startedAt: null == startedAt
          ? _value.startedAt
          : startedAt // ignore: cast_nullable_to_non_nullable
              as DateTime,
      endedAt: null == endedAt
          ? _value.endedAt
          : endedAt // ignore: cast_nullable_to_non_nullable
              as DateTime,
      periodMonth: null == periodMonth
          ? _value.periodMonth
          : periodMonth // ignore: cast_nullable_to_non_nullable
              as int,
      maintenanceType: null == maintenanceType
          ? _value.maintenanceType
          : maintenanceType // ignore: cast_nullable_to_non_nullable
              as String,
    ));
  }
}

/// @nodoc
@JsonSerializable()
class _$MaintenanceRequestDtoImpl implements _MaintenanceRequestDto {
  const _$MaintenanceRequestDtoImpl(
      {@JsonKey(name: 'equipment_history_id') this.equipmentHistoryId,
      @JsonKey(name: 'started_at') required this.startedAt,
      @JsonKey(name: 'ended_at') required this.endedAt,
      @JsonKey(name: 'period_month') this.periodMonth = 1,
      @JsonKey(name: 'maintenance_type') this.maintenanceType = 'V'});

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

  @override
  @JsonKey(name: 'equipment_history_id')
  final int? equipmentHistoryId;
// Optional in backend
  @override
  @JsonKey(name: 'started_at')
  final DateTime startedAt;
  @override
  @JsonKey(name: 'ended_at')
  final DateTime endedAt;
  @override
  @JsonKey(name: 'period_month')
  final int periodMonth;
  @override
  @JsonKey(name: 'maintenance_type')
  final String maintenanceType;

  @override
  String toString() {
    return 'MaintenanceRequestDto(equipmentHistoryId: $equipmentHistoryId, startedAt: $startedAt, endedAt: $endedAt, periodMonth: $periodMonth, maintenanceType: $maintenanceType)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$MaintenanceRequestDtoImpl &&
            (identical(other.equipmentHistoryId, equipmentHistoryId) ||
                other.equipmentHistoryId == equipmentHistoryId) &&
            (identical(other.startedAt, startedAt) ||
                other.startedAt == startedAt) &&
            (identical(other.endedAt, endedAt) || other.endedAt == endedAt) &&
            (identical(other.periodMonth, periodMonth) ||
                other.periodMonth == periodMonth) &&
            (identical(other.maintenanceType, maintenanceType) ||
                other.maintenanceType == maintenanceType));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(runtimeType, equipmentHistoryId, startedAt,
      endedAt, periodMonth, maintenanceType);

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

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

abstract class _MaintenanceRequestDto implements MaintenanceRequestDto {
  const factory _MaintenanceRequestDto(
          {@JsonKey(name: 'equipment_history_id') final int? equipmentHistoryId,
          @JsonKey(name: 'started_at') required final DateTime startedAt,
          @JsonKey(name: 'ended_at') required final DateTime endedAt,
          @JsonKey(name: 'period_month') final int periodMonth,
          @JsonKey(name: 'maintenance_type') final String maintenanceType}) =
      _$MaintenanceRequestDtoImpl;

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

  @override
  @JsonKey(name: 'equipment_history_id')
  int? get equipmentHistoryId; // Optional in backend
  @override
  @JsonKey(name: 'started_at')
  DateTime get startedAt;
  @override
  @JsonKey(name: 'ended_at')
  DateTime get endedAt;
  @override
  @JsonKey(name: 'period_month')
  int get periodMonth;
  @override
  @JsonKey(name: 'maintenance_type')
  String get maintenanceType;

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

MaintenanceUpdateRequestDto _$MaintenanceUpdateRequestDtoFromJson(
    Map<String, dynamic> json) {
  return _MaintenanceUpdateRequestDto.fromJson(json);
}

/// @nodoc
mixin _$MaintenanceUpdateRequestDto {
  @JsonKey(name: 'started_at')
  DateTime? get startedAt => throw _privateConstructorUsedError;
  @JsonKey(name: 'ended_at')
  DateTime? get endedAt => throw _privateConstructorUsedError;
  @JsonKey(name: 'period_month')
  int? get periodMonth => throw _privateConstructorUsedError;
  @JsonKey(name: 'maintenance_type')
  String? get maintenanceType => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $MaintenanceUpdateRequestDtoCopyWith<$Res> {
  factory $MaintenanceUpdateRequestDtoCopyWith(
          MaintenanceUpdateRequestDto value,
          $Res Function(MaintenanceUpdateRequestDto) then) =
      _$MaintenanceUpdateRequestDtoCopyWithImpl<$Res,
          MaintenanceUpdateRequestDto>;
  @useResult
  $Res call(
      {@JsonKey(name: 'started_at') DateTime? startedAt,
      @JsonKey(name: 'ended_at') DateTime? endedAt,
      @JsonKey(name: 'period_month') int? periodMonth,
      @JsonKey(name: 'maintenance_type') String? maintenanceType});
}

/// @nodoc
class _$MaintenanceUpdateRequestDtoCopyWithImpl<$Res,
        $Val extends MaintenanceUpdateRequestDto>
    implements $MaintenanceUpdateRequestDtoCopyWith<$Res> {
  _$MaintenanceUpdateRequestDtoCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$MaintenanceUpdateRequestDtoImplCopyWith<$Res>
    implements $MaintenanceUpdateRequestDtoCopyWith<$Res> {
  factory _$$MaintenanceUpdateRequestDtoImplCopyWith(
          _$MaintenanceUpdateRequestDtoImpl value,
          $Res Function(_$MaintenanceUpdateRequestDtoImpl) then) =
      __$$MaintenanceUpdateRequestDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call(
      {@JsonKey(name: 'started_at') DateTime? startedAt,
      @JsonKey(name: 'ended_at') DateTime? endedAt,
      @JsonKey(name: 'period_month') int? periodMonth,
      @JsonKey(name: 'maintenance_type') String? maintenanceType});
}

/// @nodoc
class __$$MaintenanceUpdateRequestDtoImplCopyWithImpl<$Res>
    extends _$MaintenanceUpdateRequestDtoCopyWithImpl<$Res,
        _$MaintenanceUpdateRequestDtoImpl>
    implements _$$MaintenanceUpdateRequestDtoImplCopyWith<$Res> {
  __$$MaintenanceUpdateRequestDtoImplCopyWithImpl(
      _$MaintenanceUpdateRequestDtoImpl _value,
      $Res Function(_$MaintenanceUpdateRequestDtoImpl) _then)
      : super(_value, _then);

  /// Create a copy of MaintenanceUpdateRequestDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? startedAt = freezed,
    Object? endedAt = freezed,
    Object? periodMonth = freezed,
    Object? maintenanceType = freezed,
  }) {
    return _then(_$MaintenanceUpdateRequestDtoImpl(
      startedAt: freezed == startedAt
          ? _value.startedAt
          : startedAt // ignore: cast_nullable_to_non_nullable
              as DateTime?,
      endedAt: freezed == endedAt
          ? _value.endedAt
          : endedAt // ignore: cast_nullable_to_non_nullable
              as DateTime?,
      periodMonth: freezed == periodMonth
          ? _value.periodMonth
          : periodMonth // ignore: cast_nullable_to_non_nullable
              as int?,
      maintenanceType: freezed == maintenanceType
          ? _value.maintenanceType
          : maintenanceType // ignore: cast_nullable_to_non_nullable
              as String?,
    ));
  }
}

/// @nodoc
@JsonSerializable()
class _$MaintenanceUpdateRequestDtoImpl
    implements _MaintenanceUpdateRequestDto {
  const _$MaintenanceUpdateRequestDtoImpl(
      {@JsonKey(name: 'started_at') this.startedAt,
      @JsonKey(name: 'ended_at') this.endedAt,
      @JsonKey(name: 'period_month') this.periodMonth,
      @JsonKey(name: 'maintenance_type') this.maintenanceType});

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

  @override
  @JsonKey(name: 'started_at')
  final DateTime? startedAt;
  @override
  @JsonKey(name: 'ended_at')
  final DateTime? endedAt;
  @override
  @JsonKey(name: 'period_month')
  final int? periodMonth;
  @override
  @JsonKey(name: 'maintenance_type')
  final String? maintenanceType;

  @override
  String toString() {
    return 'MaintenanceUpdateRequestDto(startedAt: $startedAt, endedAt: $endedAt, periodMonth: $periodMonth, maintenanceType: $maintenanceType)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$MaintenanceUpdateRequestDtoImpl &&
            (identical(other.startedAt, startedAt) ||
                other.startedAt == startedAt) &&
            (identical(other.endedAt, endedAt) || other.endedAt == endedAt) &&
            (identical(other.periodMonth, periodMonth) ||
                other.periodMonth == periodMonth) &&
            (identical(other.maintenanceType, maintenanceType) ||
                other.maintenanceType == maintenanceType));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
      runtimeType, startedAt, endedAt, periodMonth, maintenanceType);

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

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

abstract class _MaintenanceUpdateRequestDto
    implements MaintenanceUpdateRequestDto {
  const factory _MaintenanceUpdateRequestDto(
          {@JsonKey(name: 'started_at') final DateTime? startedAt,
          @JsonKey(name: 'ended_at') final DateTime? endedAt,
          @JsonKey(name: 'period_month') final int? periodMonth,
          @JsonKey(name: 'maintenance_type') final String? maintenanceType}) =
      _$MaintenanceUpdateRequestDtoImpl;

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

  @override
  @JsonKey(name: 'started_at')
  DateTime? get startedAt;
  @override
  @JsonKey(name: 'ended_at')
  DateTime? get endedAt;
  @override
  @JsonKey(name: 'period_month')
  int? get periodMonth;
  @override
  @JsonKey(name: 'maintenance_type')
  String? get maintenanceType;

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

MaintenanceListResponse _$MaintenanceListResponseFromJson(
    Map<String, dynamic> json) {
  return _MaintenanceListResponse.fromJson(json);
}

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

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

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

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

  /// Create a copy of MaintenanceListResponse
  /// 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<MaintenanceDto>,
      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 _$$MaintenanceListResponseImplCopyWith<$Res>
    implements $MaintenanceListResponseCopyWith<$Res> {
  factory _$$MaintenanceListResponseImplCopyWith(
          _$MaintenanceListResponseImpl value,
          $Res Function(_$MaintenanceListResponseImpl) then) =
      __$$MaintenanceListResponseImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call(
      {@JsonKey(name: 'data') List<MaintenanceDto> 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 __$$MaintenanceListResponseImplCopyWithImpl<$Res>
    extends _$MaintenanceListResponseCopyWithImpl<$Res,
        _$MaintenanceListResponseImpl>
    implements _$$MaintenanceListResponseImplCopyWith<$Res> {
  __$$MaintenanceListResponseImplCopyWithImpl(
      _$MaintenanceListResponseImpl _value,
      $Res Function(_$MaintenanceListResponseImpl) _then)
      : super(_value, _then);

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

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

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

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

abstract class _MaintenanceListResponse implements MaintenanceListResponse {
  const factory _MaintenanceListResponse(
          {@JsonKey(name: 'data') required final List<MaintenanceDto> 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}) =
      _$MaintenanceListResponseImpl;

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

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

MaintenanceQueryDto _$MaintenanceQueryDtoFromJson(Map<String, dynamic> json) {
  return _MaintenanceQueryDto.fromJson(json);
}

/// @nodoc
mixin _$MaintenanceQueryDto {
  @JsonKey(name: 'equipment_id')
  int? get equipmentId => throw _privateConstructorUsedError;
  @JsonKey(name: 'maintenance_type')
  String? get maintenanceType => throw _privateConstructorUsedError;
  @JsonKey(name: 'is_expired')
  bool? get isExpired => throw _privateConstructorUsedError;
  @JsonKey(name: 'expiring_days')
  int? get expiringDays => throw _privateConstructorUsedError;
  @JsonKey(name: 'page')
  int get page => throw _privateConstructorUsedError;
  @JsonKey(name: 'per_page')
  int get perPage => throw _privateConstructorUsedError;
  @JsonKey(name: 'include_deleted')
  bool get includeDeleted => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $MaintenanceQueryDtoCopyWith<$Res> {
  factory $MaintenanceQueryDtoCopyWith(
          MaintenanceQueryDto value, $Res Function(MaintenanceQueryDto) then) =
      _$MaintenanceQueryDtoCopyWithImpl<$Res, MaintenanceQueryDto>;
  @useResult
  $Res call(
      {@JsonKey(name: 'equipment_id') int? equipmentId,
      @JsonKey(name: 'maintenance_type') String? maintenanceType,
      @JsonKey(name: 'is_expired') bool? isExpired,
      @JsonKey(name: 'expiring_days') int? expiringDays,
      @JsonKey(name: 'page') int page,
      @JsonKey(name: 'per_page') int perPage,
      @JsonKey(name: 'include_deleted') bool includeDeleted});
}

/// @nodoc
class _$MaintenanceQueryDtoCopyWithImpl<$Res, $Val extends MaintenanceQueryDto>
    implements $MaintenanceQueryDtoCopyWith<$Res> {
  _$MaintenanceQueryDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of MaintenanceQueryDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? equipmentId = freezed,
    Object? maintenanceType = freezed,
    Object? isExpired = freezed,
    Object? expiringDays = freezed,
    Object? page = null,
    Object? perPage = null,
    Object? includeDeleted = null,
  }) {
    return _then(_value.copyWith(
      equipmentId: freezed == equipmentId
          ? _value.equipmentId
          : equipmentId // ignore: cast_nullable_to_non_nullable
              as int?,
      maintenanceType: freezed == maintenanceType
          ? _value.maintenanceType
          : maintenanceType // ignore: cast_nullable_to_non_nullable
              as String?,
      isExpired: freezed == isExpired
          ? _value.isExpired
          : isExpired // ignore: cast_nullable_to_non_nullable
              as bool?,
      expiringDays: freezed == expiringDays
          ? _value.expiringDays
          : expiringDays // ignore: cast_nullable_to_non_nullable
              as int?,
      page: null == page
          ? _value.page
          : page // ignore: cast_nullable_to_non_nullable
              as int,
      perPage: null == perPage
          ? _value.perPage
          : perPage // ignore: cast_nullable_to_non_nullable
              as int,
      includeDeleted: null == includeDeleted
          ? _value.includeDeleted
          : includeDeleted // ignore: cast_nullable_to_non_nullable
              as bool,
    ) as $Val);
  }
}

/// @nodoc
abstract class _$$MaintenanceQueryDtoImplCopyWith<$Res>
    implements $MaintenanceQueryDtoCopyWith<$Res> {
  factory _$$MaintenanceQueryDtoImplCopyWith(_$MaintenanceQueryDtoImpl value,
          $Res Function(_$MaintenanceQueryDtoImpl) then) =
      __$$MaintenanceQueryDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call(
      {@JsonKey(name: 'equipment_id') int? equipmentId,
      @JsonKey(name: 'maintenance_type') String? maintenanceType,
      @JsonKey(name: 'is_expired') bool? isExpired,
      @JsonKey(name: 'expiring_days') int? expiringDays,
      @JsonKey(name: 'page') int page,
      @JsonKey(name: 'per_page') int perPage,
      @JsonKey(name: 'include_deleted') bool includeDeleted});
}

/// @nodoc
class __$$MaintenanceQueryDtoImplCopyWithImpl<$Res>
    extends _$MaintenanceQueryDtoCopyWithImpl<$Res, _$MaintenanceQueryDtoImpl>
    implements _$$MaintenanceQueryDtoImplCopyWith<$Res> {
  __$$MaintenanceQueryDtoImplCopyWithImpl(_$MaintenanceQueryDtoImpl _value,
      $Res Function(_$MaintenanceQueryDtoImpl) _then)
      : super(_value, _then);

  /// Create a copy of MaintenanceQueryDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? equipmentId = freezed,
    Object? maintenanceType = freezed,
    Object? isExpired = freezed,
    Object? expiringDays = freezed,
    Object? page = null,
    Object? perPage = null,
    Object? includeDeleted = null,
  }) {
    return _then(_$MaintenanceQueryDtoImpl(
      equipmentId: freezed == equipmentId
          ? _value.equipmentId
          : equipmentId // ignore: cast_nullable_to_non_nullable
              as int?,
      maintenanceType: freezed == maintenanceType
          ? _value.maintenanceType
          : maintenanceType // ignore: cast_nullable_to_non_nullable
              as String?,
      isExpired: freezed == isExpired
          ? _value.isExpired
          : isExpired // ignore: cast_nullable_to_non_nullable
              as bool?,
      expiringDays: freezed == expiringDays
          ? _value.expiringDays
          : expiringDays // ignore: cast_nullable_to_non_nullable
              as int?,
      page: null == page
          ? _value.page
          : page // ignore: cast_nullable_to_non_nullable
              as int,
      perPage: null == perPage
          ? _value.perPage
          : perPage // ignore: cast_nullable_to_non_nullable
              as int,
      includeDeleted: null == includeDeleted
          ? _value.includeDeleted
          : includeDeleted // ignore: cast_nullable_to_non_nullable
              as bool,
    ));
  }
}

/// @nodoc
@JsonSerializable()
class _$MaintenanceQueryDtoImpl implements _MaintenanceQueryDto {
  const _$MaintenanceQueryDtoImpl(
      {@JsonKey(name: 'equipment_id') this.equipmentId,
      @JsonKey(name: 'maintenance_type') this.maintenanceType,
      @JsonKey(name: 'is_expired') this.isExpired,
      @JsonKey(name: 'expiring_days') this.expiringDays,
      @JsonKey(name: 'page') this.page = 1,
      @JsonKey(name: 'per_page') this.perPage = 10,
      @JsonKey(name: 'include_deleted') this.includeDeleted = false});

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

  @override
  @JsonKey(name: 'equipment_id')
  final int? equipmentId;
  @override
  @JsonKey(name: 'maintenance_type')
  final String? maintenanceType;
  @override
  @JsonKey(name: 'is_expired')
  final bool? isExpired;
  @override
  @JsonKey(name: 'expiring_days')
  final int? expiringDays;
  @override
  @JsonKey(name: 'page')
  final int page;
  @override
  @JsonKey(name: 'per_page')
  final int perPage;
  @override
  @JsonKey(name: 'include_deleted')
  final bool includeDeleted;

  @override
  String toString() {
    return 'MaintenanceQueryDto(equipmentId: $equipmentId, maintenanceType: $maintenanceType, isExpired: $isExpired, expiringDays: $expiringDays, page: $page, perPage: $perPage, includeDeleted: $includeDeleted)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$MaintenanceQueryDtoImpl &&
            (identical(other.equipmentId, equipmentId) ||
                other.equipmentId == equipmentId) &&
            (identical(other.maintenanceType, maintenanceType) ||
                other.maintenanceType == maintenanceType) &&
            (identical(other.isExpired, isExpired) ||
                other.isExpired == isExpired) &&
            (identical(other.expiringDays, expiringDays) ||
                other.expiringDays == expiringDays) &&
            (identical(other.page, page) || other.page == page) &&
            (identical(other.perPage, perPage) || other.perPage == perPage) &&
            (identical(other.includeDeleted, includeDeleted) ||
                other.includeDeleted == includeDeleted));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(runtimeType, equipmentId, maintenanceType,
      isExpired, expiringDays, page, perPage, includeDeleted);

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

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

abstract class _MaintenanceQueryDto implements MaintenanceQueryDto {
  const factory _MaintenanceQueryDto(
          {@JsonKey(name: 'equipment_id') final int? equipmentId,
          @JsonKey(name: 'maintenance_type') final String? maintenanceType,
          @JsonKey(name: 'is_expired') final bool? isExpired,
          @JsonKey(name: 'expiring_days') final int? expiringDays,
          @JsonKey(name: 'page') final int page,
          @JsonKey(name: 'per_page') final int perPage,
          @JsonKey(name: 'include_deleted') final bool includeDeleted}) =
      _$MaintenanceQueryDtoImpl;

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

  @override
  @JsonKey(name: 'equipment_id')
  int? get equipmentId;
  @override
  @JsonKey(name: 'maintenance_type')
  String? get maintenanceType;
  @override
  @JsonKey(name: 'is_expired')
  bool? get isExpired;
  @override
  @JsonKey(name: 'expiring_days')
  int? get expiringDays;
  @override
  @JsonKey(name: 'page')
  int get page;
  @override
  @JsonKey(name: 'per_page')
  int get perPage;
  @override
  @JsonKey(name: 'include_deleted')
  bool get includeDeleted;

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