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

ModelDto _$ModelDtoFromJson(Map<String, dynamic> json) {
  return _ModelDto.fromJson(json);
}

/// @nodoc
mixin _$ModelDto {
  int? get id => throw _privateConstructorUsedError;
  String get name => throw _privateConstructorUsedError;
  @JsonKey(name: 'vendors_id')
  int get vendorsId => throw _privateConstructorUsedError; // 백엔드 snake_case로 수정
  @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; // JOIN 필드 - 백엔드에서 제공
  @JsonKey(name: 'vendor_name')
  String? get vendorName =>
      throw _privateConstructorUsedError; // Nested vendor data (optional, populated in GET requests)
  VendorDto? get vendor => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $ModelDtoCopyWith<$Res> {
  factory $ModelDtoCopyWith(ModelDto value, $Res Function(ModelDto) then) =
      _$ModelDtoCopyWithImpl<$Res, ModelDto>;
  @useResult
  $Res call(
      {int? id,
      String name,
      @JsonKey(name: 'vendors_id') int vendorsId,
      @JsonKey(name: 'is_deleted') bool isDeleted,
      @JsonKey(name: 'registered_at') DateTime? registeredAt,
      @JsonKey(name: 'updated_at') DateTime? updatedAt,
      @JsonKey(name: 'vendor_name') String? vendorName,
      VendorDto? vendor});

  $VendorDtoCopyWith<$Res>? get vendor;
}

/// @nodoc
class _$ModelDtoCopyWithImpl<$Res, $Val extends ModelDto>
    implements $ModelDtoCopyWith<$Res> {
  _$ModelDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of ModelDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? id = freezed,
    Object? name = null,
    Object? vendorsId = null,
    Object? isDeleted = null,
    Object? registeredAt = freezed,
    Object? updatedAt = freezed,
    Object? vendorName = freezed,
    Object? vendor = freezed,
  }) {
    return _then(_value.copyWith(
      id: freezed == id
          ? _value.id
          : id // ignore: cast_nullable_to_non_nullable
              as int?,
      name: null == name
          ? _value.name
          : name // ignore: cast_nullable_to_non_nullable
              as String,
      vendorsId: null == vendorsId
          ? _value.vendorsId
          : vendorsId // ignore: cast_nullable_to_non_nullable
              as int,
      isDeleted: null == isDeleted
          ? _value.isDeleted
          : isDeleted // ignore: cast_nullable_to_non_nullable
              as bool,
      registeredAt: freezed == 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?,
      vendorName: freezed == vendorName
          ? _value.vendorName
          : vendorName // ignore: cast_nullable_to_non_nullable
              as String?,
      vendor: freezed == vendor
          ? _value.vendor
          : vendor // ignore: cast_nullable_to_non_nullable
              as VendorDto?,
    ) as $Val);
  }

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

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

/// @nodoc
abstract class _$$ModelDtoImplCopyWith<$Res>
    implements $ModelDtoCopyWith<$Res> {
  factory _$$ModelDtoImplCopyWith(
          _$ModelDtoImpl value, $Res Function(_$ModelDtoImpl) then) =
      __$$ModelDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call(
      {int? id,
      String name,
      @JsonKey(name: 'vendors_id') int vendorsId,
      @JsonKey(name: 'is_deleted') bool isDeleted,
      @JsonKey(name: 'registered_at') DateTime? registeredAt,
      @JsonKey(name: 'updated_at') DateTime? updatedAt,
      @JsonKey(name: 'vendor_name') String? vendorName,
      VendorDto? vendor});

  @override
  $VendorDtoCopyWith<$Res>? get vendor;
}

/// @nodoc
class __$$ModelDtoImplCopyWithImpl<$Res>
    extends _$ModelDtoCopyWithImpl<$Res, _$ModelDtoImpl>
    implements _$$ModelDtoImplCopyWith<$Res> {
  __$$ModelDtoImplCopyWithImpl(
      _$ModelDtoImpl _value, $Res Function(_$ModelDtoImpl) _then)
      : super(_value, _then);

  /// Create a copy of ModelDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? id = freezed,
    Object? name = null,
    Object? vendorsId = null,
    Object? isDeleted = null,
    Object? registeredAt = freezed,
    Object? updatedAt = freezed,
    Object? vendorName = freezed,
    Object? vendor = freezed,
  }) {
    return _then(_$ModelDtoImpl(
      id: freezed == id
          ? _value.id
          : id // ignore: cast_nullable_to_non_nullable
              as int?,
      name: null == name
          ? _value.name
          : name // ignore: cast_nullable_to_non_nullable
              as String,
      vendorsId: null == vendorsId
          ? _value.vendorsId
          : vendorsId // ignore: cast_nullable_to_non_nullable
              as int,
      isDeleted: null == isDeleted
          ? _value.isDeleted
          : isDeleted // ignore: cast_nullable_to_non_nullable
              as bool,
      registeredAt: freezed == 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?,
      vendorName: freezed == vendorName
          ? _value.vendorName
          : vendorName // ignore: cast_nullable_to_non_nullable
              as String?,
      vendor: freezed == vendor
          ? _value.vendor
          : vendor // ignore: cast_nullable_to_non_nullable
              as VendorDto?,
    ));
  }
}

/// @nodoc
@JsonSerializable()
class _$ModelDtoImpl extends _ModelDto {
  const _$ModelDtoImpl(
      {this.id,
      required this.name,
      @JsonKey(name: 'vendors_id') required this.vendorsId,
      @JsonKey(name: 'is_deleted') this.isDeleted = false,
      @JsonKey(name: 'registered_at') this.registeredAt,
      @JsonKey(name: 'updated_at') this.updatedAt,
      @JsonKey(name: 'vendor_name') this.vendorName,
      this.vendor})
      : super._();

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

  @override
  final int? id;
  @override
  final String name;
  @override
  @JsonKey(name: 'vendors_id')
  final int vendorsId;
// 백엔드 snake_case로 수정
  @override
  @JsonKey(name: 'is_deleted')
  final bool isDeleted;
  @override
  @JsonKey(name: 'registered_at')
  final DateTime? registeredAt;
  @override
  @JsonKey(name: 'updated_at')
  final DateTime? updatedAt;
// JOIN 필드 - 백엔드에서 제공
  @override
  @JsonKey(name: 'vendor_name')
  final String? vendorName;
// Nested vendor data (optional, populated in GET requests)
  @override
  final VendorDto? vendor;

  @override
  String toString() {
    return 'ModelDto(id: $id, name: $name, vendorsId: $vendorsId, isDeleted: $isDeleted, registeredAt: $registeredAt, updatedAt: $updatedAt, vendorName: $vendorName, vendor: $vendor)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ModelDtoImpl &&
            (identical(other.id, id) || other.id == id) &&
            (identical(other.name, name) || other.name == name) &&
            (identical(other.vendorsId, vendorsId) ||
                other.vendorsId == vendorsId) &&
            (identical(other.isDeleted, isDeleted) ||
                other.isDeleted == isDeleted) &&
            (identical(other.registeredAt, registeredAt) ||
                other.registeredAt == registeredAt) &&
            (identical(other.updatedAt, updatedAt) ||
                other.updatedAt == updatedAt) &&
            (identical(other.vendorName, vendorName) ||
                other.vendorName == vendorName) &&
            (identical(other.vendor, vendor) || other.vendor == vendor));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(runtimeType, id, name, vendorsId, isDeleted,
      registeredAt, updatedAt, vendorName, vendor);

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

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

abstract class _ModelDto extends ModelDto {
  const factory _ModelDto(
      {final int? id,
      required final String name,
      @JsonKey(name: 'vendors_id') required final int vendorsId,
      @JsonKey(name: 'is_deleted') final bool isDeleted,
      @JsonKey(name: 'registered_at') final DateTime? registeredAt,
      @JsonKey(name: 'updated_at') final DateTime? updatedAt,
      @JsonKey(name: 'vendor_name') final String? vendorName,
      final VendorDto? vendor}) = _$ModelDtoImpl;
  const _ModelDto._() : super._();

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

  @override
  int? get id;
  @override
  String get name;
  @override
  @JsonKey(name: 'vendors_id')
  int get vendorsId; // 백엔드 snake_case로 수정
  @override
  @JsonKey(name: 'is_deleted')
  bool get isDeleted;
  @override
  @JsonKey(name: 'registered_at')
  DateTime? get registeredAt;
  @override
  @JsonKey(name: 'updated_at')
  DateTime? get updatedAt; // JOIN 필드 - 백엔드에서 제공
  @override
  @JsonKey(name: 'vendor_name')
  String?
      get vendorName; // Nested vendor data (optional, populated in GET requests)
  @override
  VendorDto? get vendor;

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

ModelRequestDto _$ModelRequestDtoFromJson(Map<String, dynamic> json) {
  return _ModelRequestDto.fromJson(json);
}

/// @nodoc
mixin _$ModelRequestDto {
  String get name => throw _privateConstructorUsedError;
  @JsonKey(name: 'vendors_id')
  int get vendorsId => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $ModelRequestDtoCopyWith<$Res> {
  factory $ModelRequestDtoCopyWith(
          ModelRequestDto value, $Res Function(ModelRequestDto) then) =
      _$ModelRequestDtoCopyWithImpl<$Res, ModelRequestDto>;
  @useResult
  $Res call({String name, @JsonKey(name: 'vendors_id') int vendorsId});
}

/// @nodoc
class _$ModelRequestDtoCopyWithImpl<$Res, $Val extends ModelRequestDto>
    implements $ModelRequestDtoCopyWith<$Res> {
  _$ModelRequestDtoCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$ModelRequestDtoImplCopyWith<$Res>
    implements $ModelRequestDtoCopyWith<$Res> {
  factory _$$ModelRequestDtoImplCopyWith(_$ModelRequestDtoImpl value,
          $Res Function(_$ModelRequestDtoImpl) then) =
      __$$ModelRequestDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({String name, @JsonKey(name: 'vendors_id') int vendorsId});
}

/// @nodoc
class __$$ModelRequestDtoImplCopyWithImpl<$Res>
    extends _$ModelRequestDtoCopyWithImpl<$Res, _$ModelRequestDtoImpl>
    implements _$$ModelRequestDtoImplCopyWith<$Res> {
  __$$ModelRequestDtoImplCopyWithImpl(
      _$ModelRequestDtoImpl _value, $Res Function(_$ModelRequestDtoImpl) _then)
      : super(_value, _then);

  /// Create a copy of ModelRequestDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? name = null,
    Object? vendorsId = null,
  }) {
    return _then(_$ModelRequestDtoImpl(
      name: null == name
          ? _value.name
          : name // ignore: cast_nullable_to_non_nullable
              as String,
      vendorsId: null == vendorsId
          ? _value.vendorsId
          : vendorsId // ignore: cast_nullable_to_non_nullable
              as int,
    ));
  }
}

/// @nodoc
@JsonSerializable()
class _$ModelRequestDtoImpl implements _ModelRequestDto {
  const _$ModelRequestDtoImpl(
      {required this.name,
      @JsonKey(name: 'vendors_id') required this.vendorsId});

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

  @override
  final String name;
  @override
  @JsonKey(name: 'vendors_id')
  final int vendorsId;

  @override
  String toString() {
    return 'ModelRequestDto(name: $name, vendorsId: $vendorsId)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ModelRequestDtoImpl &&
            (identical(other.name, name) || other.name == name) &&
            (identical(other.vendorsId, vendorsId) ||
                other.vendorsId == vendorsId));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(runtimeType, name, vendorsId);

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

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

abstract class _ModelRequestDto implements ModelRequestDto {
  const factory _ModelRequestDto(
          {required final String name,
          @JsonKey(name: 'vendors_id') required final int vendorsId}) =
      _$ModelRequestDtoImpl;

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

  @override
  String get name;
  @override
  @JsonKey(name: 'vendors_id')
  int get vendorsId;

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

ModelUpdateRequestDto _$ModelUpdateRequestDtoFromJson(
    Map<String, dynamic> json) {
  return _ModelUpdateRequestDto.fromJson(json);
}

/// @nodoc
mixin _$ModelUpdateRequestDto {
  String? get name => throw _privateConstructorUsedError;
  @JsonKey(name: 'vendors_id')
  int? get vendorsId => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $ModelUpdateRequestDtoCopyWith<$Res> {
  factory $ModelUpdateRequestDtoCopyWith(ModelUpdateRequestDto value,
          $Res Function(ModelUpdateRequestDto) then) =
      _$ModelUpdateRequestDtoCopyWithImpl<$Res, ModelUpdateRequestDto>;
  @useResult
  $Res call({String? name, @JsonKey(name: 'vendors_id') int? vendorsId});
}

/// @nodoc
class _$ModelUpdateRequestDtoCopyWithImpl<$Res,
        $Val extends ModelUpdateRequestDto>
    implements $ModelUpdateRequestDtoCopyWith<$Res> {
  _$ModelUpdateRequestDtoCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$ModelUpdateRequestDtoImplCopyWith<$Res>
    implements $ModelUpdateRequestDtoCopyWith<$Res> {
  factory _$$ModelUpdateRequestDtoImplCopyWith(
          _$ModelUpdateRequestDtoImpl value,
          $Res Function(_$ModelUpdateRequestDtoImpl) then) =
      __$$ModelUpdateRequestDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({String? name, @JsonKey(name: 'vendors_id') int? vendorsId});
}

/// @nodoc
class __$$ModelUpdateRequestDtoImplCopyWithImpl<$Res>
    extends _$ModelUpdateRequestDtoCopyWithImpl<$Res,
        _$ModelUpdateRequestDtoImpl>
    implements _$$ModelUpdateRequestDtoImplCopyWith<$Res> {
  __$$ModelUpdateRequestDtoImplCopyWithImpl(_$ModelUpdateRequestDtoImpl _value,
      $Res Function(_$ModelUpdateRequestDtoImpl) _then)
      : super(_value, _then);

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

/// @nodoc
@JsonSerializable()
class _$ModelUpdateRequestDtoImpl implements _ModelUpdateRequestDto {
  const _$ModelUpdateRequestDtoImpl(
      {this.name, @JsonKey(name: 'vendors_id') this.vendorsId});

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

  @override
  final String? name;
  @override
  @JsonKey(name: 'vendors_id')
  final int? vendorsId;

  @override
  String toString() {
    return 'ModelUpdateRequestDto(name: $name, vendorsId: $vendorsId)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ModelUpdateRequestDtoImpl &&
            (identical(other.name, name) || other.name == name) &&
            (identical(other.vendorsId, vendorsId) ||
                other.vendorsId == vendorsId));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(runtimeType, name, vendorsId);

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

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

abstract class _ModelUpdateRequestDto implements ModelUpdateRequestDto {
  const factory _ModelUpdateRequestDto(
          {final String? name,
          @JsonKey(name: 'vendors_id') final int? vendorsId}) =
      _$ModelUpdateRequestDtoImpl;

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

  @override
  String? get name;
  @override
  @JsonKey(name: 'vendors_id')
  int? get vendorsId;

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

ModelListResponse _$ModelListResponseFromJson(Map<String, dynamic> json) {
  return _ModelListResponse.fromJson(json);
}

/// @nodoc
mixin _$ModelListResponse {
  List<ModelDto> get items =>
      throw _privateConstructorUsedError; // 백엔드 'items' 키와 일치
  @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: 'per_page')
  int? get pageSize => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $ModelListResponseCopyWith<$Res> {
  factory $ModelListResponseCopyWith(
          ModelListResponse value, $Res Function(ModelListResponse) then) =
      _$ModelListResponseCopyWithImpl<$Res, ModelListResponse>;
  @useResult
  $Res call(
      {List<ModelDto> items,
      @JsonKey(name: 'total') int totalCount,
      @JsonKey(name: 'page') int currentPage,
      @JsonKey(name: 'total_pages') int totalPages,
      @JsonKey(name: 'per_page') int? pageSize});
}

/// @nodoc
class _$ModelListResponseCopyWithImpl<$Res, $Val extends ModelListResponse>
    implements $ModelListResponseCopyWith<$Res> {
  _$ModelListResponseCopyWithImpl(this._value, this._then);

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

  /// Create a copy of ModelListResponse
  /// 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<ModelDto>,
      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 _$$ModelListResponseImplCopyWith<$Res>
    implements $ModelListResponseCopyWith<$Res> {
  factory _$$ModelListResponseImplCopyWith(_$ModelListResponseImpl value,
          $Res Function(_$ModelListResponseImpl) then) =
      __$$ModelListResponseImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call(
      {List<ModelDto> items,
      @JsonKey(name: 'total') int totalCount,
      @JsonKey(name: 'page') int currentPage,
      @JsonKey(name: 'total_pages') int totalPages,
      @JsonKey(name: 'per_page') int? pageSize});
}

/// @nodoc
class __$$ModelListResponseImplCopyWithImpl<$Res>
    extends _$ModelListResponseCopyWithImpl<$Res, _$ModelListResponseImpl>
    implements _$$ModelListResponseImplCopyWith<$Res> {
  __$$ModelListResponseImplCopyWithImpl(_$ModelListResponseImpl _value,
      $Res Function(_$ModelListResponseImpl) _then)
      : super(_value, _then);

  /// Create a copy of ModelListResponse
  /// 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(_$ModelListResponseImpl(
      items: null == items
          ? _value._items
          : items // ignore: cast_nullable_to_non_nullable
              as List<ModelDto>,
      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 _$ModelListResponseImpl implements _ModelListResponse {
  const _$ModelListResponseImpl(
      {required final List<ModelDto> items,
      @JsonKey(name: 'total') required this.totalCount,
      @JsonKey(name: 'page') required this.currentPage,
      @JsonKey(name: 'total_pages') required this.totalPages,
      @JsonKey(name: 'per_page') this.pageSize})
      : _items = items;

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

  final List<ModelDto> _items;
  @override
  List<ModelDto> get items {
    if (_items is EqualUnmodifiableListView) return _items;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_items);
  }

// 백엔드 '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: 'per_page')
  final int? pageSize;

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

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

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

abstract class _ModelListResponse implements ModelListResponse {
  const factory _ModelListResponse(
          {required final List<ModelDto> 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: 'per_page') final int? pageSize}) =
      _$ModelListResponseImpl;

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

  @override
  List<ModelDto> get items; // 백엔드 '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: 'per_page')
  int? get pageSize;

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