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

SalesAnalyticDto _$SalesAnalyticDtoFromJson(Map<String, dynamic> json) {
  return _SalesAnalyticDto.fromJson(json);
}

/// @nodoc
mixin _$SalesAnalyticDto {
  @JsonKey(name: 'organization_id')
  String? get organizationId => throw _privateConstructorUsedError;
  @JsonKey(name: 'outlet_id')
  String? get outletId => throw _privateConstructorUsedError;
  @JsonKey(name: 'outlet_name')
  String? get outletName => throw _privateConstructorUsedError;
  @JsonKey(name: 'date_from')
  DateTime? get dateFrom => throw _privateConstructorUsedError;
  @JsonKey(name: 'date_to')
  DateTime? get dateTo => throw _privateConstructorUsedError;
  @JsonKey(name: 'group_by')
  String? get groupBy => throw _privateConstructorUsedError;
  @JsonKey(name: 'summary')
  SalesAnalyticSummaryDto? get summary => throw _privateConstructorUsedError;
  @JsonKey(name: 'data')
  List<SalesAnalyticDataDto>? get data => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $SalesAnalyticDtoCopyWith<$Res> {
  factory $SalesAnalyticDtoCopyWith(
    SalesAnalyticDto value,
    $Res Function(SalesAnalyticDto) then,
  ) = _$SalesAnalyticDtoCopyWithImpl<$Res, SalesAnalyticDto>;
  @useResult
  $Res call({
    @JsonKey(name: 'organization_id') String? organizationId,
    @JsonKey(name: 'outlet_id') String? outletId,
    @JsonKey(name: 'outlet_name') String? outletName,
    @JsonKey(name: 'date_from') DateTime? dateFrom,
    @JsonKey(name: 'date_to') DateTime? dateTo,
    @JsonKey(name: 'group_by') String? groupBy,
    @JsonKey(name: 'summary') SalesAnalyticSummaryDto? summary,
    @JsonKey(name: 'data') List<SalesAnalyticDataDto>? data,
  });

  $SalesAnalyticSummaryDtoCopyWith<$Res>? get summary;
}

/// @nodoc
class _$SalesAnalyticDtoCopyWithImpl<$Res, $Val extends SalesAnalyticDto>
    implements $SalesAnalyticDtoCopyWith<$Res> {
  _$SalesAnalyticDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of SalesAnalyticDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? organizationId = freezed,
    Object? outletId = freezed,
    Object? outletName = freezed,
    Object? dateFrom = freezed,
    Object? dateTo = freezed,
    Object? groupBy = freezed,
    Object? summary = freezed,
    Object? data = freezed,
  }) {
    return _then(
      _value.copyWith(
            organizationId: freezed == organizationId
                ? _value.organizationId
                : organizationId // ignore: cast_nullable_to_non_nullable
                      as String?,
            outletId: freezed == outletId
                ? _value.outletId
                : outletId // ignore: cast_nullable_to_non_nullable
                      as String?,
            outletName: freezed == outletName
                ? _value.outletName
                : outletName // ignore: cast_nullable_to_non_nullable
                      as String?,
            dateFrom: freezed == dateFrom
                ? _value.dateFrom
                : dateFrom // ignore: cast_nullable_to_non_nullable
                      as DateTime?,
            dateTo: freezed == dateTo
                ? _value.dateTo
                : dateTo // ignore: cast_nullable_to_non_nullable
                      as DateTime?,
            groupBy: freezed == groupBy
                ? _value.groupBy
                : groupBy // ignore: cast_nullable_to_non_nullable
                      as String?,
            summary: freezed == summary
                ? _value.summary
                : summary // ignore: cast_nullable_to_non_nullable
                      as SalesAnalyticSummaryDto?,
            data: freezed == data
                ? _value.data
                : data // ignore: cast_nullable_to_non_nullable
                      as List<SalesAnalyticDataDto>?,
          )
          as $Val,
    );
  }

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

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

/// @nodoc
abstract class _$$SalesAnalyticDtoImplCopyWith<$Res>
    implements $SalesAnalyticDtoCopyWith<$Res> {
  factory _$$SalesAnalyticDtoImplCopyWith(
    _$SalesAnalyticDtoImpl value,
    $Res Function(_$SalesAnalyticDtoImpl) then,
  ) = __$$SalesAnalyticDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'organization_id') String? organizationId,
    @JsonKey(name: 'outlet_id') String? outletId,
    @JsonKey(name: 'outlet_name') String? outletName,
    @JsonKey(name: 'date_from') DateTime? dateFrom,
    @JsonKey(name: 'date_to') DateTime? dateTo,
    @JsonKey(name: 'group_by') String? groupBy,
    @JsonKey(name: 'summary') SalesAnalyticSummaryDto? summary,
    @JsonKey(name: 'data') List<SalesAnalyticDataDto>? data,
  });

  @override
  $SalesAnalyticSummaryDtoCopyWith<$Res>? get summary;
}

/// @nodoc
class __$$SalesAnalyticDtoImplCopyWithImpl<$Res>
    extends _$SalesAnalyticDtoCopyWithImpl<$Res, _$SalesAnalyticDtoImpl>
    implements _$$SalesAnalyticDtoImplCopyWith<$Res> {
  __$$SalesAnalyticDtoImplCopyWithImpl(
    _$SalesAnalyticDtoImpl _value,
    $Res Function(_$SalesAnalyticDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of SalesAnalyticDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? organizationId = freezed,
    Object? outletId = freezed,
    Object? outletName = freezed,
    Object? dateFrom = freezed,
    Object? dateTo = freezed,
    Object? groupBy = freezed,
    Object? summary = freezed,
    Object? data = freezed,
  }) {
    return _then(
      _$SalesAnalyticDtoImpl(
        organizationId: freezed == organizationId
            ? _value.organizationId
            : organizationId // ignore: cast_nullable_to_non_nullable
                  as String?,
        outletId: freezed == outletId
            ? _value.outletId
            : outletId // ignore: cast_nullable_to_non_nullable
                  as String?,
        outletName: freezed == outletName
            ? _value.outletName
            : outletName // ignore: cast_nullable_to_non_nullable
                  as String?,
        dateFrom: freezed == dateFrom
            ? _value.dateFrom
            : dateFrom // ignore: cast_nullable_to_non_nullable
                  as DateTime?,
        dateTo: freezed == dateTo
            ? _value.dateTo
            : dateTo // ignore: cast_nullable_to_non_nullable
                  as DateTime?,
        groupBy: freezed == groupBy
            ? _value.groupBy
            : groupBy // ignore: cast_nullable_to_non_nullable
                  as String?,
        summary: freezed == summary
            ? _value.summary
            : summary // ignore: cast_nullable_to_non_nullable
                  as SalesAnalyticSummaryDto?,
        data: freezed == data
            ? _value._data
            : data // ignore: cast_nullable_to_non_nullable
                  as List<SalesAnalyticDataDto>?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$SalesAnalyticDtoImpl extends _SalesAnalyticDto {
  const _$SalesAnalyticDtoImpl({
    @JsonKey(name: 'organization_id') this.organizationId,
    @JsonKey(name: 'outlet_id') this.outletId,
    @JsonKey(name: 'outlet_name') this.outletName,
    @JsonKey(name: 'date_from') this.dateFrom,
    @JsonKey(name: 'date_to') this.dateTo,
    @JsonKey(name: 'group_by') this.groupBy,
    @JsonKey(name: 'summary') this.summary,
    @JsonKey(name: 'data') final List<SalesAnalyticDataDto>? data,
  }) : _data = data,
       super._();

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

  @override
  @JsonKey(name: 'organization_id')
  final String? organizationId;
  @override
  @JsonKey(name: 'outlet_id')
  final String? outletId;
  @override
  @JsonKey(name: 'outlet_name')
  final String? outletName;
  @override
  @JsonKey(name: 'date_from')
  final DateTime? dateFrom;
  @override
  @JsonKey(name: 'date_to')
  final DateTime? dateTo;
  @override
  @JsonKey(name: 'group_by')
  final String? groupBy;
  @override
  @JsonKey(name: 'summary')
  final SalesAnalyticSummaryDto? summary;
  final List<SalesAnalyticDataDto>? _data;
  @override
  @JsonKey(name: 'data')
  List<SalesAnalyticDataDto>? get data {
    final value = _data;
    if (value == null) return null;
    if (_data is EqualUnmodifiableListView) return _data;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

  @override
  String toString() {
    return 'SalesAnalyticDto(organizationId: $organizationId, outletId: $outletId, outletName: $outletName, dateFrom: $dateFrom, dateTo: $dateTo, groupBy: $groupBy, summary: $summary, data: $data)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$SalesAnalyticDtoImpl &&
            (identical(other.organizationId, organizationId) ||
                other.organizationId == organizationId) &&
            (identical(other.outletId, outletId) ||
                other.outletId == outletId) &&
            (identical(other.outletName, outletName) ||
                other.outletName == outletName) &&
            (identical(other.dateFrom, dateFrom) ||
                other.dateFrom == dateFrom) &&
            (identical(other.dateTo, dateTo) || other.dateTo == dateTo) &&
            (identical(other.groupBy, groupBy) || other.groupBy == groupBy) &&
            (identical(other.summary, summary) || other.summary == summary) &&
            const DeepCollectionEquality().equals(other._data, _data));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    organizationId,
    outletId,
    outletName,
    dateFrom,
    dateTo,
    groupBy,
    summary,
    const DeepCollectionEquality().hash(_data),
  );

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

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

abstract class _SalesAnalyticDto extends SalesAnalyticDto {
  const factory _SalesAnalyticDto({
    @JsonKey(name: 'organization_id') final String? organizationId,
    @JsonKey(name: 'outlet_id') final String? outletId,
    @JsonKey(name: 'outlet_name') final String? outletName,
    @JsonKey(name: 'date_from') final DateTime? dateFrom,
    @JsonKey(name: 'date_to') final DateTime? dateTo,
    @JsonKey(name: 'group_by') final String? groupBy,
    @JsonKey(name: 'summary') final SalesAnalyticSummaryDto? summary,
    @JsonKey(name: 'data') final List<SalesAnalyticDataDto>? data,
  }) = _$SalesAnalyticDtoImpl;
  const _SalesAnalyticDto._() : super._();

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

  @override
  @JsonKey(name: 'organization_id')
  String? get organizationId;
  @override
  @JsonKey(name: 'outlet_id')
  String? get outletId;
  @override
  @JsonKey(name: 'outlet_name')
  String? get outletName;
  @override
  @JsonKey(name: 'date_from')
  DateTime? get dateFrom;
  @override
  @JsonKey(name: 'date_to')
  DateTime? get dateTo;
  @override
  @JsonKey(name: 'group_by')
  String? get groupBy;
  @override
  @JsonKey(name: 'summary')
  SalesAnalyticSummaryDto? get summary;
  @override
  @JsonKey(name: 'data')
  List<SalesAnalyticDataDto>? get data;

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

SalesAnalyticSummaryDto _$SalesAnalyticSummaryDtoFromJson(
  Map<String, dynamic> json,
) {
  return _SalesAnalyticSummaryDto.fromJson(json);
}

/// @nodoc
mixin _$SalesAnalyticSummaryDto {
  @JsonKey(name: 'total_sales')
  num? get totalSales => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_orders')
  num? get totalOrders => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_items')
  num? get totalItems => throw _privateConstructorUsedError;
  @JsonKey(name: 'average_order_value')
  num? get averageOrderValue => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_tax')
  num? get totalTax => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_discount')
  num? get totalDiscount => throw _privateConstructorUsedError;
  @JsonKey(name: 'net_sales')
  num? get netSales => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $SalesAnalyticSummaryDtoCopyWith<$Res> {
  factory $SalesAnalyticSummaryDtoCopyWith(
    SalesAnalyticSummaryDto value,
    $Res Function(SalesAnalyticSummaryDto) then,
  ) = _$SalesAnalyticSummaryDtoCopyWithImpl<$Res, SalesAnalyticSummaryDto>;
  @useResult
  $Res call({
    @JsonKey(name: 'total_sales') num? totalSales,
    @JsonKey(name: 'total_orders') num? totalOrders,
    @JsonKey(name: 'total_items') num? totalItems,
    @JsonKey(name: 'average_order_value') num? averageOrderValue,
    @JsonKey(name: 'total_tax') num? totalTax,
    @JsonKey(name: 'total_discount') num? totalDiscount,
    @JsonKey(name: 'net_sales') num? netSales,
  });
}

/// @nodoc
class _$SalesAnalyticSummaryDtoCopyWithImpl<
  $Res,
  $Val extends SalesAnalyticSummaryDto
>
    implements $SalesAnalyticSummaryDtoCopyWith<$Res> {
  _$SalesAnalyticSummaryDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of SalesAnalyticSummaryDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? totalSales = freezed,
    Object? totalOrders = freezed,
    Object? totalItems = freezed,
    Object? averageOrderValue = freezed,
    Object? totalTax = freezed,
    Object? totalDiscount = freezed,
    Object? netSales = freezed,
  }) {
    return _then(
      _value.copyWith(
            totalSales: freezed == totalSales
                ? _value.totalSales
                : totalSales // ignore: cast_nullable_to_non_nullable
                      as num?,
            totalOrders: freezed == totalOrders
                ? _value.totalOrders
                : totalOrders // ignore: cast_nullable_to_non_nullable
                      as num?,
            totalItems: freezed == totalItems
                ? _value.totalItems
                : totalItems // ignore: cast_nullable_to_non_nullable
                      as num?,
            averageOrderValue: freezed == averageOrderValue
                ? _value.averageOrderValue
                : averageOrderValue // ignore: cast_nullable_to_non_nullable
                      as num?,
            totalTax: freezed == totalTax
                ? _value.totalTax
                : totalTax // ignore: cast_nullable_to_non_nullable
                      as num?,
            totalDiscount: freezed == totalDiscount
                ? _value.totalDiscount
                : totalDiscount // ignore: cast_nullable_to_non_nullable
                      as num?,
            netSales: freezed == netSales
                ? _value.netSales
                : netSales // ignore: cast_nullable_to_non_nullable
                      as num?,
          )
          as $Val,
    );
  }
}

/// @nodoc
abstract class _$$SalesAnalyticSummaryDtoImplCopyWith<$Res>
    implements $SalesAnalyticSummaryDtoCopyWith<$Res> {
  factory _$$SalesAnalyticSummaryDtoImplCopyWith(
    _$SalesAnalyticSummaryDtoImpl value,
    $Res Function(_$SalesAnalyticSummaryDtoImpl) then,
  ) = __$$SalesAnalyticSummaryDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'total_sales') num? totalSales,
    @JsonKey(name: 'total_orders') num? totalOrders,
    @JsonKey(name: 'total_items') num? totalItems,
    @JsonKey(name: 'average_order_value') num? averageOrderValue,
    @JsonKey(name: 'total_tax') num? totalTax,
    @JsonKey(name: 'total_discount') num? totalDiscount,
    @JsonKey(name: 'net_sales') num? netSales,
  });
}

/// @nodoc
class __$$SalesAnalyticSummaryDtoImplCopyWithImpl<$Res>
    extends
        _$SalesAnalyticSummaryDtoCopyWithImpl<
          $Res,
          _$SalesAnalyticSummaryDtoImpl
        >
    implements _$$SalesAnalyticSummaryDtoImplCopyWith<$Res> {
  __$$SalesAnalyticSummaryDtoImplCopyWithImpl(
    _$SalesAnalyticSummaryDtoImpl _value,
    $Res Function(_$SalesAnalyticSummaryDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of SalesAnalyticSummaryDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? totalSales = freezed,
    Object? totalOrders = freezed,
    Object? totalItems = freezed,
    Object? averageOrderValue = freezed,
    Object? totalTax = freezed,
    Object? totalDiscount = freezed,
    Object? netSales = freezed,
  }) {
    return _then(
      _$SalesAnalyticSummaryDtoImpl(
        totalSales: freezed == totalSales
            ? _value.totalSales
            : totalSales // ignore: cast_nullable_to_non_nullable
                  as num?,
        totalOrders: freezed == totalOrders
            ? _value.totalOrders
            : totalOrders // ignore: cast_nullable_to_non_nullable
                  as num?,
        totalItems: freezed == totalItems
            ? _value.totalItems
            : totalItems // ignore: cast_nullable_to_non_nullable
                  as num?,
        averageOrderValue: freezed == averageOrderValue
            ? _value.averageOrderValue
            : averageOrderValue // ignore: cast_nullable_to_non_nullable
                  as num?,
        totalTax: freezed == totalTax
            ? _value.totalTax
            : totalTax // ignore: cast_nullable_to_non_nullable
                  as num?,
        totalDiscount: freezed == totalDiscount
            ? _value.totalDiscount
            : totalDiscount // ignore: cast_nullable_to_non_nullable
                  as num?,
        netSales: freezed == netSales
            ? _value.netSales
            : netSales // ignore: cast_nullable_to_non_nullable
                  as num?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$SalesAnalyticSummaryDtoImpl extends _SalesAnalyticSummaryDto {
  const _$SalesAnalyticSummaryDtoImpl({
    @JsonKey(name: 'total_sales') this.totalSales,
    @JsonKey(name: 'total_orders') this.totalOrders,
    @JsonKey(name: 'total_items') this.totalItems,
    @JsonKey(name: 'average_order_value') this.averageOrderValue,
    @JsonKey(name: 'total_tax') this.totalTax,
    @JsonKey(name: 'total_discount') this.totalDiscount,
    @JsonKey(name: 'net_sales') this.netSales,
  }) : super._();

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

  @override
  @JsonKey(name: 'total_sales')
  final num? totalSales;
  @override
  @JsonKey(name: 'total_orders')
  final num? totalOrders;
  @override
  @JsonKey(name: 'total_items')
  final num? totalItems;
  @override
  @JsonKey(name: 'average_order_value')
  final num? averageOrderValue;
  @override
  @JsonKey(name: 'total_tax')
  final num? totalTax;
  @override
  @JsonKey(name: 'total_discount')
  final num? totalDiscount;
  @override
  @JsonKey(name: 'net_sales')
  final num? netSales;

  @override
  String toString() {
    return 'SalesAnalyticSummaryDto(totalSales: $totalSales, totalOrders: $totalOrders, totalItems: $totalItems, averageOrderValue: $averageOrderValue, totalTax: $totalTax, totalDiscount: $totalDiscount, netSales: $netSales)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$SalesAnalyticSummaryDtoImpl &&
            (identical(other.totalSales, totalSales) ||
                other.totalSales == totalSales) &&
            (identical(other.totalOrders, totalOrders) ||
                other.totalOrders == totalOrders) &&
            (identical(other.totalItems, totalItems) ||
                other.totalItems == totalItems) &&
            (identical(other.averageOrderValue, averageOrderValue) ||
                other.averageOrderValue == averageOrderValue) &&
            (identical(other.totalTax, totalTax) ||
                other.totalTax == totalTax) &&
            (identical(other.totalDiscount, totalDiscount) ||
                other.totalDiscount == totalDiscount) &&
            (identical(other.netSales, netSales) ||
                other.netSales == netSales));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    totalSales,
    totalOrders,
    totalItems,
    averageOrderValue,
    totalTax,
    totalDiscount,
    netSales,
  );

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

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

abstract class _SalesAnalyticSummaryDto extends SalesAnalyticSummaryDto {
  const factory _SalesAnalyticSummaryDto({
    @JsonKey(name: 'total_sales') final num? totalSales,
    @JsonKey(name: 'total_orders') final num? totalOrders,
    @JsonKey(name: 'total_items') final num? totalItems,
    @JsonKey(name: 'average_order_value') final num? averageOrderValue,
    @JsonKey(name: 'total_tax') final num? totalTax,
    @JsonKey(name: 'total_discount') final num? totalDiscount,
    @JsonKey(name: 'net_sales') final num? netSales,
  }) = _$SalesAnalyticSummaryDtoImpl;
  const _SalesAnalyticSummaryDto._() : super._();

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

  @override
  @JsonKey(name: 'total_sales')
  num? get totalSales;
  @override
  @JsonKey(name: 'total_orders')
  num? get totalOrders;
  @override
  @JsonKey(name: 'total_items')
  num? get totalItems;
  @override
  @JsonKey(name: 'average_order_value')
  num? get averageOrderValue;
  @override
  @JsonKey(name: 'total_tax')
  num? get totalTax;
  @override
  @JsonKey(name: 'total_discount')
  num? get totalDiscount;
  @override
  @JsonKey(name: 'net_sales')
  num? get netSales;

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

SalesAnalyticDataDto _$SalesAnalyticDataDtoFromJson(Map<String, dynamic> json) {
  return _SalesAnalyticDataDto.fromJson(json);
}

/// @nodoc
mixin _$SalesAnalyticDataDto {
  @JsonKey(name: 'date')
  DateTime? get date => throw _privateConstructorUsedError;
  @JsonKey(name: 'sales')
  num? get sales => throw _privateConstructorUsedError;
  @JsonKey(name: 'orders')
  num? get orders => throw _privateConstructorUsedError;
  @JsonKey(name: 'items')
  num? get items => throw _privateConstructorUsedError;
  @JsonKey(name: 'tax')
  num? get tax => throw _privateConstructorUsedError;
  @JsonKey(name: 'discount')
  num? get discount => throw _privateConstructorUsedError;
  @JsonKey(name: 'net_sales')
  num? get netSales => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $SalesAnalyticDataDtoCopyWith<$Res> {
  factory $SalesAnalyticDataDtoCopyWith(
    SalesAnalyticDataDto value,
    $Res Function(SalesAnalyticDataDto) then,
  ) = _$SalesAnalyticDataDtoCopyWithImpl<$Res, SalesAnalyticDataDto>;
  @useResult
  $Res call({
    @JsonKey(name: 'date') DateTime? date,
    @JsonKey(name: 'sales') num? sales,
    @JsonKey(name: 'orders') num? orders,
    @JsonKey(name: 'items') num? items,
    @JsonKey(name: 'tax') num? tax,
    @JsonKey(name: 'discount') num? discount,
    @JsonKey(name: 'net_sales') num? netSales,
  });
}

/// @nodoc
class _$SalesAnalyticDataDtoCopyWithImpl<
  $Res,
  $Val extends SalesAnalyticDataDto
>
    implements $SalesAnalyticDataDtoCopyWith<$Res> {
  _$SalesAnalyticDataDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of SalesAnalyticDataDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? date = freezed,
    Object? sales = freezed,
    Object? orders = freezed,
    Object? items = freezed,
    Object? tax = freezed,
    Object? discount = freezed,
    Object? netSales = freezed,
  }) {
    return _then(
      _value.copyWith(
            date: freezed == date
                ? _value.date
                : date // ignore: cast_nullable_to_non_nullable
                      as DateTime?,
            sales: freezed == sales
                ? _value.sales
                : sales // ignore: cast_nullable_to_non_nullable
                      as num?,
            orders: freezed == orders
                ? _value.orders
                : orders // ignore: cast_nullable_to_non_nullable
                      as num?,
            items: freezed == items
                ? _value.items
                : items // ignore: cast_nullable_to_non_nullable
                      as num?,
            tax: freezed == tax
                ? _value.tax
                : tax // ignore: cast_nullable_to_non_nullable
                      as num?,
            discount: freezed == discount
                ? _value.discount
                : discount // ignore: cast_nullable_to_non_nullable
                      as num?,
            netSales: freezed == netSales
                ? _value.netSales
                : netSales // ignore: cast_nullable_to_non_nullable
                      as num?,
          )
          as $Val,
    );
  }
}

/// @nodoc
abstract class _$$SalesAnalyticDataDtoImplCopyWith<$Res>
    implements $SalesAnalyticDataDtoCopyWith<$Res> {
  factory _$$SalesAnalyticDataDtoImplCopyWith(
    _$SalesAnalyticDataDtoImpl value,
    $Res Function(_$SalesAnalyticDataDtoImpl) then,
  ) = __$$SalesAnalyticDataDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'date') DateTime? date,
    @JsonKey(name: 'sales') num? sales,
    @JsonKey(name: 'orders') num? orders,
    @JsonKey(name: 'items') num? items,
    @JsonKey(name: 'tax') num? tax,
    @JsonKey(name: 'discount') num? discount,
    @JsonKey(name: 'net_sales') num? netSales,
  });
}

/// @nodoc
class __$$SalesAnalyticDataDtoImplCopyWithImpl<$Res>
    extends _$SalesAnalyticDataDtoCopyWithImpl<$Res, _$SalesAnalyticDataDtoImpl>
    implements _$$SalesAnalyticDataDtoImplCopyWith<$Res> {
  __$$SalesAnalyticDataDtoImplCopyWithImpl(
    _$SalesAnalyticDataDtoImpl _value,
    $Res Function(_$SalesAnalyticDataDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of SalesAnalyticDataDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? date = freezed,
    Object? sales = freezed,
    Object? orders = freezed,
    Object? items = freezed,
    Object? tax = freezed,
    Object? discount = freezed,
    Object? netSales = freezed,
  }) {
    return _then(
      _$SalesAnalyticDataDtoImpl(
        date: freezed == date
            ? _value.date
            : date // ignore: cast_nullable_to_non_nullable
                  as DateTime?,
        sales: freezed == sales
            ? _value.sales
            : sales // ignore: cast_nullable_to_non_nullable
                  as num?,
        orders: freezed == orders
            ? _value.orders
            : orders // ignore: cast_nullable_to_non_nullable
                  as num?,
        items: freezed == items
            ? _value.items
            : items // ignore: cast_nullable_to_non_nullable
                  as num?,
        tax: freezed == tax
            ? _value.tax
            : tax // ignore: cast_nullable_to_non_nullable
                  as num?,
        discount: freezed == discount
            ? _value.discount
            : discount // ignore: cast_nullable_to_non_nullable
                  as num?,
        netSales: freezed == netSales
            ? _value.netSales
            : netSales // ignore: cast_nullable_to_non_nullable
                  as num?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$SalesAnalyticDataDtoImpl extends _SalesAnalyticDataDto {
  const _$SalesAnalyticDataDtoImpl({
    @JsonKey(name: 'date') this.date,
    @JsonKey(name: 'sales') this.sales,
    @JsonKey(name: 'orders') this.orders,
    @JsonKey(name: 'items') this.items,
    @JsonKey(name: 'tax') this.tax,
    @JsonKey(name: 'discount') this.discount,
    @JsonKey(name: 'net_sales') this.netSales,
  }) : super._();

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

  @override
  @JsonKey(name: 'date')
  final DateTime? date;
  @override
  @JsonKey(name: 'sales')
  final num? sales;
  @override
  @JsonKey(name: 'orders')
  final num? orders;
  @override
  @JsonKey(name: 'items')
  final num? items;
  @override
  @JsonKey(name: 'tax')
  final num? tax;
  @override
  @JsonKey(name: 'discount')
  final num? discount;
  @override
  @JsonKey(name: 'net_sales')
  final num? netSales;

  @override
  String toString() {
    return 'SalesAnalyticDataDto(date: $date, sales: $sales, orders: $orders, items: $items, tax: $tax, discount: $discount, netSales: $netSales)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$SalesAnalyticDataDtoImpl &&
            (identical(other.date, date) || other.date == date) &&
            (identical(other.sales, sales) || other.sales == sales) &&
            (identical(other.orders, orders) || other.orders == orders) &&
            (identical(other.items, items) || other.items == items) &&
            (identical(other.tax, tax) || other.tax == tax) &&
            (identical(other.discount, discount) ||
                other.discount == discount) &&
            (identical(other.netSales, netSales) ||
                other.netSales == netSales));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    date,
    sales,
    orders,
    items,
    tax,
    discount,
    netSales,
  );

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

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

abstract class _SalesAnalyticDataDto extends SalesAnalyticDataDto {
  const factory _SalesAnalyticDataDto({
    @JsonKey(name: 'date') final DateTime? date,
    @JsonKey(name: 'sales') final num? sales,
    @JsonKey(name: 'orders') final num? orders,
    @JsonKey(name: 'items') final num? items,
    @JsonKey(name: 'tax') final num? tax,
    @JsonKey(name: 'discount') final num? discount,
    @JsonKey(name: 'net_sales') final num? netSales,
  }) = _$SalesAnalyticDataDtoImpl;
  const _SalesAnalyticDataDto._() : super._();

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

  @override
  @JsonKey(name: 'date')
  DateTime? get date;
  @override
  @JsonKey(name: 'sales')
  num? get sales;
  @override
  @JsonKey(name: 'orders')
  num? get orders;
  @override
  @JsonKey(name: 'items')
  num? get items;
  @override
  @JsonKey(name: 'tax')
  num? get tax;
  @override
  @JsonKey(name: 'discount')
  num? get discount;
  @override
  @JsonKey(name: 'net_sales')
  num? get netSales;

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

ProfitLossAnalyticDto _$ProfitLossAnalyticDtoFromJson(
  Map<String, dynamic> json,
) {
  return _ProfitLossAnalyticDto.fromJson(json);
}

/// @nodoc
mixin _$ProfitLossAnalyticDto {
  @JsonKey(name: 'organization_id')
  String? get organizationId => throw _privateConstructorUsedError;
  @JsonKey(name: 'outlet_id')
  String? get outletId => throw _privateConstructorUsedError;
  @JsonKey(name: 'outlet_name')
  String? get outletName => throw _privateConstructorUsedError;
  @JsonKey(name: 'date_from')
  String? get dateFrom => throw _privateConstructorUsedError;
  @JsonKey(name: 'date_to')
  String? get dateTo => throw _privateConstructorUsedError;
  @JsonKey(name: 'group_by')
  String? get groupBy => throw _privateConstructorUsedError;
  @JsonKey(name: 'summary')
  ProfitLossSummaryDto? get summary => throw _privateConstructorUsedError;
  @JsonKey(name: 'data')
  List<ProfitLossDailyDataDto>? get data => throw _privateConstructorUsedError;
  @JsonKey(name: 'product_data')
  List<ProfitLossProductDataDto>? get productData =>
      throw _privateConstructorUsedError;
  @JsonKey(name: 'main_summary')
  List<ProfitLossMainSummaryItemDto>? get mainSummary =>
      throw _privateConstructorUsedError;
  @JsonKey(name: 'purchasing')
  ProfitLossPurchasingDto? get purchasing => throw _privateConstructorUsedError;
  @JsonKey(name: 'operational_expenses')
  List<ProfitLossOperationalExpenseDto>? get operationalExpenses =>
      throw _privateConstructorUsedError;
  @JsonKey(name: 'operational_expenses_total')
  int? get operationalExpensesTotal => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $ProfitLossAnalyticDtoCopyWith<$Res> {
  factory $ProfitLossAnalyticDtoCopyWith(
    ProfitLossAnalyticDto value,
    $Res Function(ProfitLossAnalyticDto) then,
  ) = _$ProfitLossAnalyticDtoCopyWithImpl<$Res, ProfitLossAnalyticDto>;
  @useResult
  $Res call({
    @JsonKey(name: 'organization_id') String? organizationId,
    @JsonKey(name: 'outlet_id') String? outletId,
    @JsonKey(name: 'outlet_name') String? outletName,
    @JsonKey(name: 'date_from') String? dateFrom,
    @JsonKey(name: 'date_to') String? dateTo,
    @JsonKey(name: 'group_by') String? groupBy,
    @JsonKey(name: 'summary') ProfitLossSummaryDto? summary,
    @JsonKey(name: 'data') List<ProfitLossDailyDataDto>? data,
    @JsonKey(name: 'product_data') List<ProfitLossProductDataDto>? productData,
    @JsonKey(name: 'main_summary')
    List<ProfitLossMainSummaryItemDto>? mainSummary,
    @JsonKey(name: 'purchasing') ProfitLossPurchasingDto? purchasing,
    @JsonKey(name: 'operational_expenses')
    List<ProfitLossOperationalExpenseDto>? operationalExpenses,
    @JsonKey(name: 'operational_expenses_total') int? operationalExpensesTotal,
  });

  $ProfitLossSummaryDtoCopyWith<$Res>? get summary;
  $ProfitLossPurchasingDtoCopyWith<$Res>? get purchasing;
}

/// @nodoc
class _$ProfitLossAnalyticDtoCopyWithImpl<
  $Res,
  $Val extends ProfitLossAnalyticDto
>
    implements $ProfitLossAnalyticDtoCopyWith<$Res> {
  _$ProfitLossAnalyticDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of ProfitLossAnalyticDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? organizationId = freezed,
    Object? outletId = freezed,
    Object? outletName = freezed,
    Object? dateFrom = freezed,
    Object? dateTo = freezed,
    Object? groupBy = freezed,
    Object? summary = freezed,
    Object? data = freezed,
    Object? productData = freezed,
    Object? mainSummary = freezed,
    Object? purchasing = freezed,
    Object? operationalExpenses = freezed,
    Object? operationalExpensesTotal = freezed,
  }) {
    return _then(
      _value.copyWith(
            organizationId: freezed == organizationId
                ? _value.organizationId
                : organizationId // ignore: cast_nullable_to_non_nullable
                      as String?,
            outletId: freezed == outletId
                ? _value.outletId
                : outletId // ignore: cast_nullable_to_non_nullable
                      as String?,
            outletName: freezed == outletName
                ? _value.outletName
                : outletName // ignore: cast_nullable_to_non_nullable
                      as String?,
            dateFrom: freezed == dateFrom
                ? _value.dateFrom
                : dateFrom // ignore: cast_nullable_to_non_nullable
                      as String?,
            dateTo: freezed == dateTo
                ? _value.dateTo
                : dateTo // ignore: cast_nullable_to_non_nullable
                      as String?,
            groupBy: freezed == groupBy
                ? _value.groupBy
                : groupBy // ignore: cast_nullable_to_non_nullable
                      as String?,
            summary: freezed == summary
                ? _value.summary
                : summary // ignore: cast_nullable_to_non_nullable
                      as ProfitLossSummaryDto?,
            data: freezed == data
                ? _value.data
                : data // ignore: cast_nullable_to_non_nullable
                      as List<ProfitLossDailyDataDto>?,
            productData: freezed == productData
                ? _value.productData
                : productData // ignore: cast_nullable_to_non_nullable
                      as List<ProfitLossProductDataDto>?,
            mainSummary: freezed == mainSummary
                ? _value.mainSummary
                : mainSummary // ignore: cast_nullable_to_non_nullable
                      as List<ProfitLossMainSummaryItemDto>?,
            purchasing: freezed == purchasing
                ? _value.purchasing
                : purchasing // ignore: cast_nullable_to_non_nullable
                      as ProfitLossPurchasingDto?,
            operationalExpenses: freezed == operationalExpenses
                ? _value.operationalExpenses
                : operationalExpenses // ignore: cast_nullable_to_non_nullable
                      as List<ProfitLossOperationalExpenseDto>?,
            operationalExpensesTotal: freezed == operationalExpensesTotal
                ? _value.operationalExpensesTotal
                : operationalExpensesTotal // ignore: cast_nullable_to_non_nullable
                      as int?,
          )
          as $Val,
    );
  }

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

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

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

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

/// @nodoc
abstract class _$$ProfitLossAnalyticDtoImplCopyWith<$Res>
    implements $ProfitLossAnalyticDtoCopyWith<$Res> {
  factory _$$ProfitLossAnalyticDtoImplCopyWith(
    _$ProfitLossAnalyticDtoImpl value,
    $Res Function(_$ProfitLossAnalyticDtoImpl) then,
  ) = __$$ProfitLossAnalyticDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'organization_id') String? organizationId,
    @JsonKey(name: 'outlet_id') String? outletId,
    @JsonKey(name: 'outlet_name') String? outletName,
    @JsonKey(name: 'date_from') String? dateFrom,
    @JsonKey(name: 'date_to') String? dateTo,
    @JsonKey(name: 'group_by') String? groupBy,
    @JsonKey(name: 'summary') ProfitLossSummaryDto? summary,
    @JsonKey(name: 'data') List<ProfitLossDailyDataDto>? data,
    @JsonKey(name: 'product_data') List<ProfitLossProductDataDto>? productData,
    @JsonKey(name: 'main_summary')
    List<ProfitLossMainSummaryItemDto>? mainSummary,
    @JsonKey(name: 'purchasing') ProfitLossPurchasingDto? purchasing,
    @JsonKey(name: 'operational_expenses')
    List<ProfitLossOperationalExpenseDto>? operationalExpenses,
    @JsonKey(name: 'operational_expenses_total') int? operationalExpensesTotal,
  });

  @override
  $ProfitLossSummaryDtoCopyWith<$Res>? get summary;
  @override
  $ProfitLossPurchasingDtoCopyWith<$Res>? get purchasing;
}

/// @nodoc
class __$$ProfitLossAnalyticDtoImplCopyWithImpl<$Res>
    extends
        _$ProfitLossAnalyticDtoCopyWithImpl<$Res, _$ProfitLossAnalyticDtoImpl>
    implements _$$ProfitLossAnalyticDtoImplCopyWith<$Res> {
  __$$ProfitLossAnalyticDtoImplCopyWithImpl(
    _$ProfitLossAnalyticDtoImpl _value,
    $Res Function(_$ProfitLossAnalyticDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of ProfitLossAnalyticDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? organizationId = freezed,
    Object? outletId = freezed,
    Object? outletName = freezed,
    Object? dateFrom = freezed,
    Object? dateTo = freezed,
    Object? groupBy = freezed,
    Object? summary = freezed,
    Object? data = freezed,
    Object? productData = freezed,
    Object? mainSummary = freezed,
    Object? purchasing = freezed,
    Object? operationalExpenses = freezed,
    Object? operationalExpensesTotal = freezed,
  }) {
    return _then(
      _$ProfitLossAnalyticDtoImpl(
        organizationId: freezed == organizationId
            ? _value.organizationId
            : organizationId // ignore: cast_nullable_to_non_nullable
                  as String?,
        outletId: freezed == outletId
            ? _value.outletId
            : outletId // ignore: cast_nullable_to_non_nullable
                  as String?,
        outletName: freezed == outletName
            ? _value.outletName
            : outletName // ignore: cast_nullable_to_non_nullable
                  as String?,
        dateFrom: freezed == dateFrom
            ? _value.dateFrom
            : dateFrom // ignore: cast_nullable_to_non_nullable
                  as String?,
        dateTo: freezed == dateTo
            ? _value.dateTo
            : dateTo // ignore: cast_nullable_to_non_nullable
                  as String?,
        groupBy: freezed == groupBy
            ? _value.groupBy
            : groupBy // ignore: cast_nullable_to_non_nullable
                  as String?,
        summary: freezed == summary
            ? _value.summary
            : summary // ignore: cast_nullable_to_non_nullable
                  as ProfitLossSummaryDto?,
        data: freezed == data
            ? _value._data
            : data // ignore: cast_nullable_to_non_nullable
                  as List<ProfitLossDailyDataDto>?,
        productData: freezed == productData
            ? _value._productData
            : productData // ignore: cast_nullable_to_non_nullable
                  as List<ProfitLossProductDataDto>?,
        mainSummary: freezed == mainSummary
            ? _value._mainSummary
            : mainSummary // ignore: cast_nullable_to_non_nullable
                  as List<ProfitLossMainSummaryItemDto>?,
        purchasing: freezed == purchasing
            ? _value.purchasing
            : purchasing // ignore: cast_nullable_to_non_nullable
                  as ProfitLossPurchasingDto?,
        operationalExpenses: freezed == operationalExpenses
            ? _value._operationalExpenses
            : operationalExpenses // ignore: cast_nullable_to_non_nullable
                  as List<ProfitLossOperationalExpenseDto>?,
        operationalExpensesTotal: freezed == operationalExpensesTotal
            ? _value.operationalExpensesTotal
            : operationalExpensesTotal // ignore: cast_nullable_to_non_nullable
                  as int?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$ProfitLossAnalyticDtoImpl extends _ProfitLossAnalyticDto {
  const _$ProfitLossAnalyticDtoImpl({
    @JsonKey(name: 'organization_id') this.organizationId,
    @JsonKey(name: 'outlet_id') this.outletId,
    @JsonKey(name: 'outlet_name') this.outletName,
    @JsonKey(name: 'date_from') this.dateFrom,
    @JsonKey(name: 'date_to') this.dateTo,
    @JsonKey(name: 'group_by') this.groupBy,
    @JsonKey(name: 'summary') this.summary,
    @JsonKey(name: 'data') final List<ProfitLossDailyDataDto>? data,
    @JsonKey(name: 'product_data')
    final List<ProfitLossProductDataDto>? productData,
    @JsonKey(name: 'main_summary')
    final List<ProfitLossMainSummaryItemDto>? mainSummary,
    @JsonKey(name: 'purchasing') this.purchasing,
    @JsonKey(name: 'operational_expenses')
    final List<ProfitLossOperationalExpenseDto>? operationalExpenses,
    @JsonKey(name: 'operational_expenses_total') this.operationalExpensesTotal,
  }) : _data = data,
       _productData = productData,
       _mainSummary = mainSummary,
       _operationalExpenses = operationalExpenses,
       super._();

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

  @override
  @JsonKey(name: 'organization_id')
  final String? organizationId;
  @override
  @JsonKey(name: 'outlet_id')
  final String? outletId;
  @override
  @JsonKey(name: 'outlet_name')
  final String? outletName;
  @override
  @JsonKey(name: 'date_from')
  final String? dateFrom;
  @override
  @JsonKey(name: 'date_to')
  final String? dateTo;
  @override
  @JsonKey(name: 'group_by')
  final String? groupBy;
  @override
  @JsonKey(name: 'summary')
  final ProfitLossSummaryDto? summary;
  final List<ProfitLossDailyDataDto>? _data;
  @override
  @JsonKey(name: 'data')
  List<ProfitLossDailyDataDto>? get data {
    final value = _data;
    if (value == null) return null;
    if (_data is EqualUnmodifiableListView) return _data;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

  final List<ProfitLossProductDataDto>? _productData;
  @override
  @JsonKey(name: 'product_data')
  List<ProfitLossProductDataDto>? get productData {
    final value = _productData;
    if (value == null) return null;
    if (_productData is EqualUnmodifiableListView) return _productData;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

  final List<ProfitLossMainSummaryItemDto>? _mainSummary;
  @override
  @JsonKey(name: 'main_summary')
  List<ProfitLossMainSummaryItemDto>? get mainSummary {
    final value = _mainSummary;
    if (value == null) return null;
    if (_mainSummary is EqualUnmodifiableListView) return _mainSummary;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

  @override
  @JsonKey(name: 'purchasing')
  final ProfitLossPurchasingDto? purchasing;
  final List<ProfitLossOperationalExpenseDto>? _operationalExpenses;
  @override
  @JsonKey(name: 'operational_expenses')
  List<ProfitLossOperationalExpenseDto>? get operationalExpenses {
    final value = _operationalExpenses;
    if (value == null) return null;
    if (_operationalExpenses is EqualUnmodifiableListView)
      return _operationalExpenses;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

  @override
  @JsonKey(name: 'operational_expenses_total')
  final int? operationalExpensesTotal;

  @override
  String toString() {
    return 'ProfitLossAnalyticDto(organizationId: $organizationId, outletId: $outletId, outletName: $outletName, dateFrom: $dateFrom, dateTo: $dateTo, groupBy: $groupBy, summary: $summary, data: $data, productData: $productData, mainSummary: $mainSummary, purchasing: $purchasing, operationalExpenses: $operationalExpenses, operationalExpensesTotal: $operationalExpensesTotal)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ProfitLossAnalyticDtoImpl &&
            (identical(other.organizationId, organizationId) ||
                other.organizationId == organizationId) &&
            (identical(other.outletId, outletId) ||
                other.outletId == outletId) &&
            (identical(other.outletName, outletName) ||
                other.outletName == outletName) &&
            (identical(other.dateFrom, dateFrom) ||
                other.dateFrom == dateFrom) &&
            (identical(other.dateTo, dateTo) || other.dateTo == dateTo) &&
            (identical(other.groupBy, groupBy) || other.groupBy == groupBy) &&
            (identical(other.summary, summary) || other.summary == summary) &&
            const DeepCollectionEquality().equals(other._data, _data) &&
            const DeepCollectionEquality().equals(
              other._productData,
              _productData,
            ) &&
            const DeepCollectionEquality().equals(
              other._mainSummary,
              _mainSummary,
            ) &&
            (identical(other.purchasing, purchasing) ||
                other.purchasing == purchasing) &&
            const DeepCollectionEquality().equals(
              other._operationalExpenses,
              _operationalExpenses,
            ) &&
            (identical(
                  other.operationalExpensesTotal,
                  operationalExpensesTotal,
                ) ||
                other.operationalExpensesTotal == operationalExpensesTotal));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    organizationId,
    outletId,
    outletName,
    dateFrom,
    dateTo,
    groupBy,
    summary,
    const DeepCollectionEquality().hash(_data),
    const DeepCollectionEquality().hash(_productData),
    const DeepCollectionEquality().hash(_mainSummary),
    purchasing,
    const DeepCollectionEquality().hash(_operationalExpenses),
    operationalExpensesTotal,
  );

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

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

abstract class _ProfitLossAnalyticDto extends ProfitLossAnalyticDto {
  const factory _ProfitLossAnalyticDto({
    @JsonKey(name: 'organization_id') final String? organizationId,
    @JsonKey(name: 'outlet_id') final String? outletId,
    @JsonKey(name: 'outlet_name') final String? outletName,
    @JsonKey(name: 'date_from') final String? dateFrom,
    @JsonKey(name: 'date_to') final String? dateTo,
    @JsonKey(name: 'group_by') final String? groupBy,
    @JsonKey(name: 'summary') final ProfitLossSummaryDto? summary,
    @JsonKey(name: 'data') final List<ProfitLossDailyDataDto>? data,
    @JsonKey(name: 'product_data')
    final List<ProfitLossProductDataDto>? productData,
    @JsonKey(name: 'main_summary')
    final List<ProfitLossMainSummaryItemDto>? mainSummary,
    @JsonKey(name: 'purchasing') final ProfitLossPurchasingDto? purchasing,
    @JsonKey(name: 'operational_expenses')
    final List<ProfitLossOperationalExpenseDto>? operationalExpenses,
    @JsonKey(name: 'operational_expenses_total')
    final int? operationalExpensesTotal,
  }) = _$ProfitLossAnalyticDtoImpl;
  const _ProfitLossAnalyticDto._() : super._();

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

  @override
  @JsonKey(name: 'organization_id')
  String? get organizationId;
  @override
  @JsonKey(name: 'outlet_id')
  String? get outletId;
  @override
  @JsonKey(name: 'outlet_name')
  String? get outletName;
  @override
  @JsonKey(name: 'date_from')
  String? get dateFrom;
  @override
  @JsonKey(name: 'date_to')
  String? get dateTo;
  @override
  @JsonKey(name: 'group_by')
  String? get groupBy;
  @override
  @JsonKey(name: 'summary')
  ProfitLossSummaryDto? get summary;
  @override
  @JsonKey(name: 'data')
  List<ProfitLossDailyDataDto>? get data;
  @override
  @JsonKey(name: 'product_data')
  List<ProfitLossProductDataDto>? get productData;
  @override
  @JsonKey(name: 'main_summary')
  List<ProfitLossMainSummaryItemDto>? get mainSummary;
  @override
  @JsonKey(name: 'purchasing')
  ProfitLossPurchasingDto? get purchasing;
  @override
  @JsonKey(name: 'operational_expenses')
  List<ProfitLossOperationalExpenseDto>? get operationalExpenses;
  @override
  @JsonKey(name: 'operational_expenses_total')
  int? get operationalExpensesTotal;

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

ProfitLossSummaryDto _$ProfitLossSummaryDtoFromJson(Map<String, dynamic> json) {
  return _ProfitLossSummaryDto.fromJson(json);
}

/// @nodoc
mixin _$ProfitLossSummaryDto {
  @JsonKey(name: 'total_revenue')
  int? get totalRevenue => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_cost')
  int? get totalCost => throw _privateConstructorUsedError;
  @JsonKey(name: 'gross_profit')
  int? get grossProfit => throw _privateConstructorUsedError;
  @JsonKey(name: 'gross_profit_margin')
  double? get grossProfitMargin => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_tax')
  int? get totalTax => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_discount')
  int? get totalDiscount => throw _privateConstructorUsedError;
  @JsonKey(name: 'net_profit')
  int? get netProfit => throw _privateConstructorUsedError;
  @JsonKey(name: 'net_profit_margin')
  double? get netProfitMargin => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_orders')
  int? get totalOrders => throw _privateConstructorUsedError;
  @JsonKey(name: 'average_profit')
  double? get averageProfit => throw _privateConstructorUsedError;
  @JsonKey(name: 'profitability_ratio')
  double? get profitabilityRatio => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $ProfitLossSummaryDtoCopyWith<$Res> {
  factory $ProfitLossSummaryDtoCopyWith(
    ProfitLossSummaryDto value,
    $Res Function(ProfitLossSummaryDto) then,
  ) = _$ProfitLossSummaryDtoCopyWithImpl<$Res, ProfitLossSummaryDto>;
  @useResult
  $Res call({
    @JsonKey(name: 'total_revenue') int? totalRevenue,
    @JsonKey(name: 'total_cost') int? totalCost,
    @JsonKey(name: 'gross_profit') int? grossProfit,
    @JsonKey(name: 'gross_profit_margin') double? grossProfitMargin,
    @JsonKey(name: 'total_tax') int? totalTax,
    @JsonKey(name: 'total_discount') int? totalDiscount,
    @JsonKey(name: 'net_profit') int? netProfit,
    @JsonKey(name: 'net_profit_margin') double? netProfitMargin,
    @JsonKey(name: 'total_orders') int? totalOrders,
    @JsonKey(name: 'average_profit') double? averageProfit,
    @JsonKey(name: 'profitability_ratio') double? profitabilityRatio,
  });
}

/// @nodoc
class _$ProfitLossSummaryDtoCopyWithImpl<
  $Res,
  $Val extends ProfitLossSummaryDto
>
    implements $ProfitLossSummaryDtoCopyWith<$Res> {
  _$ProfitLossSummaryDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of ProfitLossSummaryDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? totalRevenue = freezed,
    Object? totalCost = freezed,
    Object? grossProfit = freezed,
    Object? grossProfitMargin = freezed,
    Object? totalTax = freezed,
    Object? totalDiscount = freezed,
    Object? netProfit = freezed,
    Object? netProfitMargin = freezed,
    Object? totalOrders = freezed,
    Object? averageProfit = freezed,
    Object? profitabilityRatio = freezed,
  }) {
    return _then(
      _value.copyWith(
            totalRevenue: freezed == totalRevenue
                ? _value.totalRevenue
                : totalRevenue // ignore: cast_nullable_to_non_nullable
                      as int?,
            totalCost: freezed == totalCost
                ? _value.totalCost
                : totalCost // ignore: cast_nullable_to_non_nullable
                      as int?,
            grossProfit: freezed == grossProfit
                ? _value.grossProfit
                : grossProfit // ignore: cast_nullable_to_non_nullable
                      as int?,
            grossProfitMargin: freezed == grossProfitMargin
                ? _value.grossProfitMargin
                : grossProfitMargin // ignore: cast_nullable_to_non_nullable
                      as double?,
            totalTax: freezed == totalTax
                ? _value.totalTax
                : totalTax // ignore: cast_nullable_to_non_nullable
                      as int?,
            totalDiscount: freezed == totalDiscount
                ? _value.totalDiscount
                : totalDiscount // ignore: cast_nullable_to_non_nullable
                      as int?,
            netProfit: freezed == netProfit
                ? _value.netProfit
                : netProfit // ignore: cast_nullable_to_non_nullable
                      as int?,
            netProfitMargin: freezed == netProfitMargin
                ? _value.netProfitMargin
                : netProfitMargin // ignore: cast_nullable_to_non_nullable
                      as double?,
            totalOrders: freezed == totalOrders
                ? _value.totalOrders
                : totalOrders // ignore: cast_nullable_to_non_nullable
                      as int?,
            averageProfit: freezed == averageProfit
                ? _value.averageProfit
                : averageProfit // ignore: cast_nullable_to_non_nullable
                      as double?,
            profitabilityRatio: freezed == profitabilityRatio
                ? _value.profitabilityRatio
                : profitabilityRatio // ignore: cast_nullable_to_non_nullable
                      as double?,
          )
          as $Val,
    );
  }
}

/// @nodoc
abstract class _$$ProfitLossSummaryDtoImplCopyWith<$Res>
    implements $ProfitLossSummaryDtoCopyWith<$Res> {
  factory _$$ProfitLossSummaryDtoImplCopyWith(
    _$ProfitLossSummaryDtoImpl value,
    $Res Function(_$ProfitLossSummaryDtoImpl) then,
  ) = __$$ProfitLossSummaryDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'total_revenue') int? totalRevenue,
    @JsonKey(name: 'total_cost') int? totalCost,
    @JsonKey(name: 'gross_profit') int? grossProfit,
    @JsonKey(name: 'gross_profit_margin') double? grossProfitMargin,
    @JsonKey(name: 'total_tax') int? totalTax,
    @JsonKey(name: 'total_discount') int? totalDiscount,
    @JsonKey(name: 'net_profit') int? netProfit,
    @JsonKey(name: 'net_profit_margin') double? netProfitMargin,
    @JsonKey(name: 'total_orders') int? totalOrders,
    @JsonKey(name: 'average_profit') double? averageProfit,
    @JsonKey(name: 'profitability_ratio') double? profitabilityRatio,
  });
}

/// @nodoc
class __$$ProfitLossSummaryDtoImplCopyWithImpl<$Res>
    extends _$ProfitLossSummaryDtoCopyWithImpl<$Res, _$ProfitLossSummaryDtoImpl>
    implements _$$ProfitLossSummaryDtoImplCopyWith<$Res> {
  __$$ProfitLossSummaryDtoImplCopyWithImpl(
    _$ProfitLossSummaryDtoImpl _value,
    $Res Function(_$ProfitLossSummaryDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of ProfitLossSummaryDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? totalRevenue = freezed,
    Object? totalCost = freezed,
    Object? grossProfit = freezed,
    Object? grossProfitMargin = freezed,
    Object? totalTax = freezed,
    Object? totalDiscount = freezed,
    Object? netProfit = freezed,
    Object? netProfitMargin = freezed,
    Object? totalOrders = freezed,
    Object? averageProfit = freezed,
    Object? profitabilityRatio = freezed,
  }) {
    return _then(
      _$ProfitLossSummaryDtoImpl(
        totalRevenue: freezed == totalRevenue
            ? _value.totalRevenue
            : totalRevenue // ignore: cast_nullable_to_non_nullable
                  as int?,
        totalCost: freezed == totalCost
            ? _value.totalCost
            : totalCost // ignore: cast_nullable_to_non_nullable
                  as int?,
        grossProfit: freezed == grossProfit
            ? _value.grossProfit
            : grossProfit // ignore: cast_nullable_to_non_nullable
                  as int?,
        grossProfitMargin: freezed == grossProfitMargin
            ? _value.grossProfitMargin
            : grossProfitMargin // ignore: cast_nullable_to_non_nullable
                  as double?,
        totalTax: freezed == totalTax
            ? _value.totalTax
            : totalTax // ignore: cast_nullable_to_non_nullable
                  as int?,
        totalDiscount: freezed == totalDiscount
            ? _value.totalDiscount
            : totalDiscount // ignore: cast_nullable_to_non_nullable
                  as int?,
        netProfit: freezed == netProfit
            ? _value.netProfit
            : netProfit // ignore: cast_nullable_to_non_nullable
                  as int?,
        netProfitMargin: freezed == netProfitMargin
            ? _value.netProfitMargin
            : netProfitMargin // ignore: cast_nullable_to_non_nullable
                  as double?,
        totalOrders: freezed == totalOrders
            ? _value.totalOrders
            : totalOrders // ignore: cast_nullable_to_non_nullable
                  as int?,
        averageProfit: freezed == averageProfit
            ? _value.averageProfit
            : averageProfit // ignore: cast_nullable_to_non_nullable
                  as double?,
        profitabilityRatio: freezed == profitabilityRatio
            ? _value.profitabilityRatio
            : profitabilityRatio // ignore: cast_nullable_to_non_nullable
                  as double?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$ProfitLossSummaryDtoImpl extends _ProfitLossSummaryDto {
  const _$ProfitLossSummaryDtoImpl({
    @JsonKey(name: 'total_revenue') this.totalRevenue,
    @JsonKey(name: 'total_cost') this.totalCost,
    @JsonKey(name: 'gross_profit') this.grossProfit,
    @JsonKey(name: 'gross_profit_margin') this.grossProfitMargin,
    @JsonKey(name: 'total_tax') this.totalTax,
    @JsonKey(name: 'total_discount') this.totalDiscount,
    @JsonKey(name: 'net_profit') this.netProfit,
    @JsonKey(name: 'net_profit_margin') this.netProfitMargin,
    @JsonKey(name: 'total_orders') this.totalOrders,
    @JsonKey(name: 'average_profit') this.averageProfit,
    @JsonKey(name: 'profitability_ratio') this.profitabilityRatio,
  }) : super._();

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

  @override
  @JsonKey(name: 'total_revenue')
  final int? totalRevenue;
  @override
  @JsonKey(name: 'total_cost')
  final int? totalCost;
  @override
  @JsonKey(name: 'gross_profit')
  final int? grossProfit;
  @override
  @JsonKey(name: 'gross_profit_margin')
  final double? grossProfitMargin;
  @override
  @JsonKey(name: 'total_tax')
  final int? totalTax;
  @override
  @JsonKey(name: 'total_discount')
  final int? totalDiscount;
  @override
  @JsonKey(name: 'net_profit')
  final int? netProfit;
  @override
  @JsonKey(name: 'net_profit_margin')
  final double? netProfitMargin;
  @override
  @JsonKey(name: 'total_orders')
  final int? totalOrders;
  @override
  @JsonKey(name: 'average_profit')
  final double? averageProfit;
  @override
  @JsonKey(name: 'profitability_ratio')
  final double? profitabilityRatio;

  @override
  String toString() {
    return 'ProfitLossSummaryDto(totalRevenue: $totalRevenue, totalCost: $totalCost, grossProfit: $grossProfit, grossProfitMargin: $grossProfitMargin, totalTax: $totalTax, totalDiscount: $totalDiscount, netProfit: $netProfit, netProfitMargin: $netProfitMargin, totalOrders: $totalOrders, averageProfit: $averageProfit, profitabilityRatio: $profitabilityRatio)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ProfitLossSummaryDtoImpl &&
            (identical(other.totalRevenue, totalRevenue) ||
                other.totalRevenue == totalRevenue) &&
            (identical(other.totalCost, totalCost) ||
                other.totalCost == totalCost) &&
            (identical(other.grossProfit, grossProfit) ||
                other.grossProfit == grossProfit) &&
            (identical(other.grossProfitMargin, grossProfitMargin) ||
                other.grossProfitMargin == grossProfitMargin) &&
            (identical(other.totalTax, totalTax) ||
                other.totalTax == totalTax) &&
            (identical(other.totalDiscount, totalDiscount) ||
                other.totalDiscount == totalDiscount) &&
            (identical(other.netProfit, netProfit) ||
                other.netProfit == netProfit) &&
            (identical(other.netProfitMargin, netProfitMargin) ||
                other.netProfitMargin == netProfitMargin) &&
            (identical(other.totalOrders, totalOrders) ||
                other.totalOrders == totalOrders) &&
            (identical(other.averageProfit, averageProfit) ||
                other.averageProfit == averageProfit) &&
            (identical(other.profitabilityRatio, profitabilityRatio) ||
                other.profitabilityRatio == profitabilityRatio));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    totalRevenue,
    totalCost,
    grossProfit,
    grossProfitMargin,
    totalTax,
    totalDiscount,
    netProfit,
    netProfitMargin,
    totalOrders,
    averageProfit,
    profitabilityRatio,
  );

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

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

abstract class _ProfitLossSummaryDto extends ProfitLossSummaryDto {
  const factory _ProfitLossSummaryDto({
    @JsonKey(name: 'total_revenue') final int? totalRevenue,
    @JsonKey(name: 'total_cost') final int? totalCost,
    @JsonKey(name: 'gross_profit') final int? grossProfit,
    @JsonKey(name: 'gross_profit_margin') final double? grossProfitMargin,
    @JsonKey(name: 'total_tax') final int? totalTax,
    @JsonKey(name: 'total_discount') final int? totalDiscount,
    @JsonKey(name: 'net_profit') final int? netProfit,
    @JsonKey(name: 'net_profit_margin') final double? netProfitMargin,
    @JsonKey(name: 'total_orders') final int? totalOrders,
    @JsonKey(name: 'average_profit') final double? averageProfit,
    @JsonKey(name: 'profitability_ratio') final double? profitabilityRatio,
  }) = _$ProfitLossSummaryDtoImpl;
  const _ProfitLossSummaryDto._() : super._();

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

  @override
  @JsonKey(name: 'total_revenue')
  int? get totalRevenue;
  @override
  @JsonKey(name: 'total_cost')
  int? get totalCost;
  @override
  @JsonKey(name: 'gross_profit')
  int? get grossProfit;
  @override
  @JsonKey(name: 'gross_profit_margin')
  double? get grossProfitMargin;
  @override
  @JsonKey(name: 'total_tax')
  int? get totalTax;
  @override
  @JsonKey(name: 'total_discount')
  int? get totalDiscount;
  @override
  @JsonKey(name: 'net_profit')
  int? get netProfit;
  @override
  @JsonKey(name: 'net_profit_margin')
  double? get netProfitMargin;
  @override
  @JsonKey(name: 'total_orders')
  int? get totalOrders;
  @override
  @JsonKey(name: 'average_profit')
  double? get averageProfit;
  @override
  @JsonKey(name: 'profitability_ratio')
  double? get profitabilityRatio;

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

ProfitLossDailyDataDto _$ProfitLossDailyDataDtoFromJson(
  Map<String, dynamic> json,
) {
  return _ProfitLossDailyDataDto.fromJson(json);
}

/// @nodoc
mixin _$ProfitLossDailyDataDto {
  @JsonKey(name: 'date')
  String? get date => throw _privateConstructorUsedError;
  @JsonKey(name: 'revenue')
  int? get revenue => throw _privateConstructorUsedError;
  @JsonKey(name: 'cost')
  int? get cost => throw _privateConstructorUsedError;
  @JsonKey(name: 'gross_profit')
  int? get grossProfit => throw _privateConstructorUsedError;
  @JsonKey(name: 'gross_profit_margin')
  double? get grossProfitMargin => throw _privateConstructorUsedError;
  @JsonKey(name: 'tax')
  int? get tax => throw _privateConstructorUsedError;
  @JsonKey(name: 'discount')
  int? get discount => throw _privateConstructorUsedError;
  @JsonKey(name: 'net_profit')
  int? get netProfit => throw _privateConstructorUsedError;
  @JsonKey(name: 'net_profit_margin')
  double? get netProfitMargin => throw _privateConstructorUsedError;
  @JsonKey(name: 'orders')
  int? get orders => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $ProfitLossDailyDataDtoCopyWith<$Res> {
  factory $ProfitLossDailyDataDtoCopyWith(
    ProfitLossDailyDataDto value,
    $Res Function(ProfitLossDailyDataDto) then,
  ) = _$ProfitLossDailyDataDtoCopyWithImpl<$Res, ProfitLossDailyDataDto>;
  @useResult
  $Res call({
    @JsonKey(name: 'date') String? date,
    @JsonKey(name: 'revenue') int? revenue,
    @JsonKey(name: 'cost') int? cost,
    @JsonKey(name: 'gross_profit') int? grossProfit,
    @JsonKey(name: 'gross_profit_margin') double? grossProfitMargin,
    @JsonKey(name: 'tax') int? tax,
    @JsonKey(name: 'discount') int? discount,
    @JsonKey(name: 'net_profit') int? netProfit,
    @JsonKey(name: 'net_profit_margin') double? netProfitMargin,
    @JsonKey(name: 'orders') int? orders,
  });
}

/// @nodoc
class _$ProfitLossDailyDataDtoCopyWithImpl<
  $Res,
  $Val extends ProfitLossDailyDataDto
>
    implements $ProfitLossDailyDataDtoCopyWith<$Res> {
  _$ProfitLossDailyDataDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of ProfitLossDailyDataDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? date = freezed,
    Object? revenue = freezed,
    Object? cost = freezed,
    Object? grossProfit = freezed,
    Object? grossProfitMargin = freezed,
    Object? tax = freezed,
    Object? discount = freezed,
    Object? netProfit = freezed,
    Object? netProfitMargin = freezed,
    Object? orders = freezed,
  }) {
    return _then(
      _value.copyWith(
            date: freezed == date
                ? _value.date
                : date // ignore: cast_nullable_to_non_nullable
                      as String?,
            revenue: freezed == revenue
                ? _value.revenue
                : revenue // ignore: cast_nullable_to_non_nullable
                      as int?,
            cost: freezed == cost
                ? _value.cost
                : cost // ignore: cast_nullable_to_non_nullable
                      as int?,
            grossProfit: freezed == grossProfit
                ? _value.grossProfit
                : grossProfit // ignore: cast_nullable_to_non_nullable
                      as int?,
            grossProfitMargin: freezed == grossProfitMargin
                ? _value.grossProfitMargin
                : grossProfitMargin // ignore: cast_nullable_to_non_nullable
                      as double?,
            tax: freezed == tax
                ? _value.tax
                : tax // ignore: cast_nullable_to_non_nullable
                      as int?,
            discount: freezed == discount
                ? _value.discount
                : discount // ignore: cast_nullable_to_non_nullable
                      as int?,
            netProfit: freezed == netProfit
                ? _value.netProfit
                : netProfit // ignore: cast_nullable_to_non_nullable
                      as int?,
            netProfitMargin: freezed == netProfitMargin
                ? _value.netProfitMargin
                : netProfitMargin // ignore: cast_nullable_to_non_nullable
                      as double?,
            orders: freezed == orders
                ? _value.orders
                : orders // ignore: cast_nullable_to_non_nullable
                      as int?,
          )
          as $Val,
    );
  }
}

/// @nodoc
abstract class _$$ProfitLossDailyDataDtoImplCopyWith<$Res>
    implements $ProfitLossDailyDataDtoCopyWith<$Res> {
  factory _$$ProfitLossDailyDataDtoImplCopyWith(
    _$ProfitLossDailyDataDtoImpl value,
    $Res Function(_$ProfitLossDailyDataDtoImpl) then,
  ) = __$$ProfitLossDailyDataDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'date') String? date,
    @JsonKey(name: 'revenue') int? revenue,
    @JsonKey(name: 'cost') int? cost,
    @JsonKey(name: 'gross_profit') int? grossProfit,
    @JsonKey(name: 'gross_profit_margin') double? grossProfitMargin,
    @JsonKey(name: 'tax') int? tax,
    @JsonKey(name: 'discount') int? discount,
    @JsonKey(name: 'net_profit') int? netProfit,
    @JsonKey(name: 'net_profit_margin') double? netProfitMargin,
    @JsonKey(name: 'orders') int? orders,
  });
}

/// @nodoc
class __$$ProfitLossDailyDataDtoImplCopyWithImpl<$Res>
    extends
        _$ProfitLossDailyDataDtoCopyWithImpl<$Res, _$ProfitLossDailyDataDtoImpl>
    implements _$$ProfitLossDailyDataDtoImplCopyWith<$Res> {
  __$$ProfitLossDailyDataDtoImplCopyWithImpl(
    _$ProfitLossDailyDataDtoImpl _value,
    $Res Function(_$ProfitLossDailyDataDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of ProfitLossDailyDataDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? date = freezed,
    Object? revenue = freezed,
    Object? cost = freezed,
    Object? grossProfit = freezed,
    Object? grossProfitMargin = freezed,
    Object? tax = freezed,
    Object? discount = freezed,
    Object? netProfit = freezed,
    Object? netProfitMargin = freezed,
    Object? orders = freezed,
  }) {
    return _then(
      _$ProfitLossDailyDataDtoImpl(
        date: freezed == date
            ? _value.date
            : date // ignore: cast_nullable_to_non_nullable
                  as String?,
        revenue: freezed == revenue
            ? _value.revenue
            : revenue // ignore: cast_nullable_to_non_nullable
                  as int?,
        cost: freezed == cost
            ? _value.cost
            : cost // ignore: cast_nullable_to_non_nullable
                  as int?,
        grossProfit: freezed == grossProfit
            ? _value.grossProfit
            : grossProfit // ignore: cast_nullable_to_non_nullable
                  as int?,
        grossProfitMargin: freezed == grossProfitMargin
            ? _value.grossProfitMargin
            : grossProfitMargin // ignore: cast_nullable_to_non_nullable
                  as double?,
        tax: freezed == tax
            ? _value.tax
            : tax // ignore: cast_nullable_to_non_nullable
                  as int?,
        discount: freezed == discount
            ? _value.discount
            : discount // ignore: cast_nullable_to_non_nullable
                  as int?,
        netProfit: freezed == netProfit
            ? _value.netProfit
            : netProfit // ignore: cast_nullable_to_non_nullable
                  as int?,
        netProfitMargin: freezed == netProfitMargin
            ? _value.netProfitMargin
            : netProfitMargin // ignore: cast_nullable_to_non_nullable
                  as double?,
        orders: freezed == orders
            ? _value.orders
            : orders // ignore: cast_nullable_to_non_nullable
                  as int?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$ProfitLossDailyDataDtoImpl extends _ProfitLossDailyDataDto {
  const _$ProfitLossDailyDataDtoImpl({
    @JsonKey(name: 'date') this.date,
    @JsonKey(name: 'revenue') this.revenue,
    @JsonKey(name: 'cost') this.cost,
    @JsonKey(name: 'gross_profit') this.grossProfit,
    @JsonKey(name: 'gross_profit_margin') this.grossProfitMargin,
    @JsonKey(name: 'tax') this.tax,
    @JsonKey(name: 'discount') this.discount,
    @JsonKey(name: 'net_profit') this.netProfit,
    @JsonKey(name: 'net_profit_margin') this.netProfitMargin,
    @JsonKey(name: 'orders') this.orders,
  }) : super._();

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

  @override
  @JsonKey(name: 'date')
  final String? date;
  @override
  @JsonKey(name: 'revenue')
  final int? revenue;
  @override
  @JsonKey(name: 'cost')
  final int? cost;
  @override
  @JsonKey(name: 'gross_profit')
  final int? grossProfit;
  @override
  @JsonKey(name: 'gross_profit_margin')
  final double? grossProfitMargin;
  @override
  @JsonKey(name: 'tax')
  final int? tax;
  @override
  @JsonKey(name: 'discount')
  final int? discount;
  @override
  @JsonKey(name: 'net_profit')
  final int? netProfit;
  @override
  @JsonKey(name: 'net_profit_margin')
  final double? netProfitMargin;
  @override
  @JsonKey(name: 'orders')
  final int? orders;

  @override
  String toString() {
    return 'ProfitLossDailyDataDto(date: $date, revenue: $revenue, cost: $cost, grossProfit: $grossProfit, grossProfitMargin: $grossProfitMargin, tax: $tax, discount: $discount, netProfit: $netProfit, netProfitMargin: $netProfitMargin, orders: $orders)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ProfitLossDailyDataDtoImpl &&
            (identical(other.date, date) || other.date == date) &&
            (identical(other.revenue, revenue) || other.revenue == revenue) &&
            (identical(other.cost, cost) || other.cost == cost) &&
            (identical(other.grossProfit, grossProfit) ||
                other.grossProfit == grossProfit) &&
            (identical(other.grossProfitMargin, grossProfitMargin) ||
                other.grossProfitMargin == grossProfitMargin) &&
            (identical(other.tax, tax) || other.tax == tax) &&
            (identical(other.discount, discount) ||
                other.discount == discount) &&
            (identical(other.netProfit, netProfit) ||
                other.netProfit == netProfit) &&
            (identical(other.netProfitMargin, netProfitMargin) ||
                other.netProfitMargin == netProfitMargin) &&
            (identical(other.orders, orders) || other.orders == orders));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    date,
    revenue,
    cost,
    grossProfit,
    grossProfitMargin,
    tax,
    discount,
    netProfit,
    netProfitMargin,
    orders,
  );

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

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

abstract class _ProfitLossDailyDataDto extends ProfitLossDailyDataDto {
  const factory _ProfitLossDailyDataDto({
    @JsonKey(name: 'date') final String? date,
    @JsonKey(name: 'revenue') final int? revenue,
    @JsonKey(name: 'cost') final int? cost,
    @JsonKey(name: 'gross_profit') final int? grossProfit,
    @JsonKey(name: 'gross_profit_margin') final double? grossProfitMargin,
    @JsonKey(name: 'tax') final int? tax,
    @JsonKey(name: 'discount') final int? discount,
    @JsonKey(name: 'net_profit') final int? netProfit,
    @JsonKey(name: 'net_profit_margin') final double? netProfitMargin,
    @JsonKey(name: 'orders') final int? orders,
  }) = _$ProfitLossDailyDataDtoImpl;
  const _ProfitLossDailyDataDto._() : super._();

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

  @override
  @JsonKey(name: 'date')
  String? get date;
  @override
  @JsonKey(name: 'revenue')
  int? get revenue;
  @override
  @JsonKey(name: 'cost')
  int? get cost;
  @override
  @JsonKey(name: 'gross_profit')
  int? get grossProfit;
  @override
  @JsonKey(name: 'gross_profit_margin')
  double? get grossProfitMargin;
  @override
  @JsonKey(name: 'tax')
  int? get tax;
  @override
  @JsonKey(name: 'discount')
  int? get discount;
  @override
  @JsonKey(name: 'net_profit')
  int? get netProfit;
  @override
  @JsonKey(name: 'net_profit_margin')
  double? get netProfitMargin;
  @override
  @JsonKey(name: 'orders')
  int? get orders;

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

ProfitLossProductDataDto _$ProfitLossProductDataDtoFromJson(
  Map<String, dynamic> json,
) {
  return _ProfitLossProductDataDto.fromJson(json);
}

/// @nodoc
mixin _$ProfitLossProductDataDto {
  @JsonKey(name: 'product_id')
  String? get productId => throw _privateConstructorUsedError;
  @JsonKey(name: 'product_name')
  String? get productName => throw _privateConstructorUsedError;
  @JsonKey(name: 'category_id')
  String? get categoryId => throw _privateConstructorUsedError;
  @JsonKey(name: 'category_name')
  String? get categoryName => throw _privateConstructorUsedError;
  @JsonKey(name: 'quantity_sold')
  int? get quantitySold => throw _privateConstructorUsedError;
  @JsonKey(name: 'revenue')
  int? get revenue => throw _privateConstructorUsedError;
  @JsonKey(name: 'cost')
  int? get cost => throw _privateConstructorUsedError;
  @JsonKey(name: 'gross_profit')
  int? get grossProfit => throw _privateConstructorUsedError;
  @JsonKey(name: 'gross_profit_margin')
  double? get grossProfitMargin => throw _privateConstructorUsedError;
  @JsonKey(name: 'average_price')
  int? get averagePrice => throw _privateConstructorUsedError;
  @JsonKey(name: 'average_cost')
  int? get averageCost => throw _privateConstructorUsedError;
  @JsonKey(name: 'profit_per_unit')
  int? get profitPerUnit => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $ProfitLossProductDataDtoCopyWith<$Res> {
  factory $ProfitLossProductDataDtoCopyWith(
    ProfitLossProductDataDto value,
    $Res Function(ProfitLossProductDataDto) then,
  ) = _$ProfitLossProductDataDtoCopyWithImpl<$Res, ProfitLossProductDataDto>;
  @useResult
  $Res call({
    @JsonKey(name: 'product_id') String? productId,
    @JsonKey(name: 'product_name') String? productName,
    @JsonKey(name: 'category_id') String? categoryId,
    @JsonKey(name: 'category_name') String? categoryName,
    @JsonKey(name: 'quantity_sold') int? quantitySold,
    @JsonKey(name: 'revenue') int? revenue,
    @JsonKey(name: 'cost') int? cost,
    @JsonKey(name: 'gross_profit') int? grossProfit,
    @JsonKey(name: 'gross_profit_margin') double? grossProfitMargin,
    @JsonKey(name: 'average_price') int? averagePrice,
    @JsonKey(name: 'average_cost') int? averageCost,
    @JsonKey(name: 'profit_per_unit') int? profitPerUnit,
  });
}

/// @nodoc
class _$ProfitLossProductDataDtoCopyWithImpl<
  $Res,
  $Val extends ProfitLossProductDataDto
>
    implements $ProfitLossProductDataDtoCopyWith<$Res> {
  _$ProfitLossProductDataDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of ProfitLossProductDataDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? productId = freezed,
    Object? productName = freezed,
    Object? categoryId = freezed,
    Object? categoryName = freezed,
    Object? quantitySold = freezed,
    Object? revenue = freezed,
    Object? cost = freezed,
    Object? grossProfit = freezed,
    Object? grossProfitMargin = freezed,
    Object? averagePrice = freezed,
    Object? averageCost = freezed,
    Object? profitPerUnit = freezed,
  }) {
    return _then(
      _value.copyWith(
            productId: freezed == productId
                ? _value.productId
                : productId // ignore: cast_nullable_to_non_nullable
                      as String?,
            productName: freezed == productName
                ? _value.productName
                : productName // ignore: cast_nullable_to_non_nullable
                      as String?,
            categoryId: freezed == categoryId
                ? _value.categoryId
                : categoryId // ignore: cast_nullable_to_non_nullable
                      as String?,
            categoryName: freezed == categoryName
                ? _value.categoryName
                : categoryName // ignore: cast_nullable_to_non_nullable
                      as String?,
            quantitySold: freezed == quantitySold
                ? _value.quantitySold
                : quantitySold // ignore: cast_nullable_to_non_nullable
                      as int?,
            revenue: freezed == revenue
                ? _value.revenue
                : revenue // ignore: cast_nullable_to_non_nullable
                      as int?,
            cost: freezed == cost
                ? _value.cost
                : cost // ignore: cast_nullable_to_non_nullable
                      as int?,
            grossProfit: freezed == grossProfit
                ? _value.grossProfit
                : grossProfit // ignore: cast_nullable_to_non_nullable
                      as int?,
            grossProfitMargin: freezed == grossProfitMargin
                ? _value.grossProfitMargin
                : grossProfitMargin // ignore: cast_nullable_to_non_nullable
                      as double?,
            averagePrice: freezed == averagePrice
                ? _value.averagePrice
                : averagePrice // ignore: cast_nullable_to_non_nullable
                      as int?,
            averageCost: freezed == averageCost
                ? _value.averageCost
                : averageCost // ignore: cast_nullable_to_non_nullable
                      as int?,
            profitPerUnit: freezed == profitPerUnit
                ? _value.profitPerUnit
                : profitPerUnit // ignore: cast_nullable_to_non_nullable
                      as int?,
          )
          as $Val,
    );
  }
}

/// @nodoc
abstract class _$$ProfitLossProductDataDtoImplCopyWith<$Res>
    implements $ProfitLossProductDataDtoCopyWith<$Res> {
  factory _$$ProfitLossProductDataDtoImplCopyWith(
    _$ProfitLossProductDataDtoImpl value,
    $Res Function(_$ProfitLossProductDataDtoImpl) then,
  ) = __$$ProfitLossProductDataDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'product_id') String? productId,
    @JsonKey(name: 'product_name') String? productName,
    @JsonKey(name: 'category_id') String? categoryId,
    @JsonKey(name: 'category_name') String? categoryName,
    @JsonKey(name: 'quantity_sold') int? quantitySold,
    @JsonKey(name: 'revenue') int? revenue,
    @JsonKey(name: 'cost') int? cost,
    @JsonKey(name: 'gross_profit') int? grossProfit,
    @JsonKey(name: 'gross_profit_margin') double? grossProfitMargin,
    @JsonKey(name: 'average_price') int? averagePrice,
    @JsonKey(name: 'average_cost') int? averageCost,
    @JsonKey(name: 'profit_per_unit') int? profitPerUnit,
  });
}

/// @nodoc
class __$$ProfitLossProductDataDtoImplCopyWithImpl<$Res>
    extends
        _$ProfitLossProductDataDtoCopyWithImpl<
          $Res,
          _$ProfitLossProductDataDtoImpl
        >
    implements _$$ProfitLossProductDataDtoImplCopyWith<$Res> {
  __$$ProfitLossProductDataDtoImplCopyWithImpl(
    _$ProfitLossProductDataDtoImpl _value,
    $Res Function(_$ProfitLossProductDataDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of ProfitLossProductDataDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? productId = freezed,
    Object? productName = freezed,
    Object? categoryId = freezed,
    Object? categoryName = freezed,
    Object? quantitySold = freezed,
    Object? revenue = freezed,
    Object? cost = freezed,
    Object? grossProfit = freezed,
    Object? grossProfitMargin = freezed,
    Object? averagePrice = freezed,
    Object? averageCost = freezed,
    Object? profitPerUnit = freezed,
  }) {
    return _then(
      _$ProfitLossProductDataDtoImpl(
        productId: freezed == productId
            ? _value.productId
            : productId // ignore: cast_nullable_to_non_nullable
                  as String?,
        productName: freezed == productName
            ? _value.productName
            : productName // ignore: cast_nullable_to_non_nullable
                  as String?,
        categoryId: freezed == categoryId
            ? _value.categoryId
            : categoryId // ignore: cast_nullable_to_non_nullable
                  as String?,
        categoryName: freezed == categoryName
            ? _value.categoryName
            : categoryName // ignore: cast_nullable_to_non_nullable
                  as String?,
        quantitySold: freezed == quantitySold
            ? _value.quantitySold
            : quantitySold // ignore: cast_nullable_to_non_nullable
                  as int?,
        revenue: freezed == revenue
            ? _value.revenue
            : revenue // ignore: cast_nullable_to_non_nullable
                  as int?,
        cost: freezed == cost
            ? _value.cost
            : cost // ignore: cast_nullable_to_non_nullable
                  as int?,
        grossProfit: freezed == grossProfit
            ? _value.grossProfit
            : grossProfit // ignore: cast_nullable_to_non_nullable
                  as int?,
        grossProfitMargin: freezed == grossProfitMargin
            ? _value.grossProfitMargin
            : grossProfitMargin // ignore: cast_nullable_to_non_nullable
                  as double?,
        averagePrice: freezed == averagePrice
            ? _value.averagePrice
            : averagePrice // ignore: cast_nullable_to_non_nullable
                  as int?,
        averageCost: freezed == averageCost
            ? _value.averageCost
            : averageCost // ignore: cast_nullable_to_non_nullable
                  as int?,
        profitPerUnit: freezed == profitPerUnit
            ? _value.profitPerUnit
            : profitPerUnit // ignore: cast_nullable_to_non_nullable
                  as int?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$ProfitLossProductDataDtoImpl extends _ProfitLossProductDataDto {
  const _$ProfitLossProductDataDtoImpl({
    @JsonKey(name: 'product_id') this.productId,
    @JsonKey(name: 'product_name') this.productName,
    @JsonKey(name: 'category_id') this.categoryId,
    @JsonKey(name: 'category_name') this.categoryName,
    @JsonKey(name: 'quantity_sold') this.quantitySold,
    @JsonKey(name: 'revenue') this.revenue,
    @JsonKey(name: 'cost') this.cost,
    @JsonKey(name: 'gross_profit') this.grossProfit,
    @JsonKey(name: 'gross_profit_margin') this.grossProfitMargin,
    @JsonKey(name: 'average_price') this.averagePrice,
    @JsonKey(name: 'average_cost') this.averageCost,
    @JsonKey(name: 'profit_per_unit') this.profitPerUnit,
  }) : super._();

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

  @override
  @JsonKey(name: 'product_id')
  final String? productId;
  @override
  @JsonKey(name: 'product_name')
  final String? productName;
  @override
  @JsonKey(name: 'category_id')
  final String? categoryId;
  @override
  @JsonKey(name: 'category_name')
  final String? categoryName;
  @override
  @JsonKey(name: 'quantity_sold')
  final int? quantitySold;
  @override
  @JsonKey(name: 'revenue')
  final int? revenue;
  @override
  @JsonKey(name: 'cost')
  final int? cost;
  @override
  @JsonKey(name: 'gross_profit')
  final int? grossProfit;
  @override
  @JsonKey(name: 'gross_profit_margin')
  final double? grossProfitMargin;
  @override
  @JsonKey(name: 'average_price')
  final int? averagePrice;
  @override
  @JsonKey(name: 'average_cost')
  final int? averageCost;
  @override
  @JsonKey(name: 'profit_per_unit')
  final int? profitPerUnit;

  @override
  String toString() {
    return 'ProfitLossProductDataDto(productId: $productId, productName: $productName, categoryId: $categoryId, categoryName: $categoryName, quantitySold: $quantitySold, revenue: $revenue, cost: $cost, grossProfit: $grossProfit, grossProfitMargin: $grossProfitMargin, averagePrice: $averagePrice, averageCost: $averageCost, profitPerUnit: $profitPerUnit)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ProfitLossProductDataDtoImpl &&
            (identical(other.productId, productId) ||
                other.productId == productId) &&
            (identical(other.productName, productName) ||
                other.productName == productName) &&
            (identical(other.categoryId, categoryId) ||
                other.categoryId == categoryId) &&
            (identical(other.categoryName, categoryName) ||
                other.categoryName == categoryName) &&
            (identical(other.quantitySold, quantitySold) ||
                other.quantitySold == quantitySold) &&
            (identical(other.revenue, revenue) || other.revenue == revenue) &&
            (identical(other.cost, cost) || other.cost == cost) &&
            (identical(other.grossProfit, grossProfit) ||
                other.grossProfit == grossProfit) &&
            (identical(other.grossProfitMargin, grossProfitMargin) ||
                other.grossProfitMargin == grossProfitMargin) &&
            (identical(other.averagePrice, averagePrice) ||
                other.averagePrice == averagePrice) &&
            (identical(other.averageCost, averageCost) ||
                other.averageCost == averageCost) &&
            (identical(other.profitPerUnit, profitPerUnit) ||
                other.profitPerUnit == profitPerUnit));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    productId,
    productName,
    categoryId,
    categoryName,
    quantitySold,
    revenue,
    cost,
    grossProfit,
    grossProfitMargin,
    averagePrice,
    averageCost,
    profitPerUnit,
  );

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

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

abstract class _ProfitLossProductDataDto extends ProfitLossProductDataDto {
  const factory _ProfitLossProductDataDto({
    @JsonKey(name: 'product_id') final String? productId,
    @JsonKey(name: 'product_name') final String? productName,
    @JsonKey(name: 'category_id') final String? categoryId,
    @JsonKey(name: 'category_name') final String? categoryName,
    @JsonKey(name: 'quantity_sold') final int? quantitySold,
    @JsonKey(name: 'revenue') final int? revenue,
    @JsonKey(name: 'cost') final int? cost,
    @JsonKey(name: 'gross_profit') final int? grossProfit,
    @JsonKey(name: 'gross_profit_margin') final double? grossProfitMargin,
    @JsonKey(name: 'average_price') final int? averagePrice,
    @JsonKey(name: 'average_cost') final int? averageCost,
    @JsonKey(name: 'profit_per_unit') final int? profitPerUnit,
  }) = _$ProfitLossProductDataDtoImpl;
  const _ProfitLossProductDataDto._() : super._();

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

  @override
  @JsonKey(name: 'product_id')
  String? get productId;
  @override
  @JsonKey(name: 'product_name')
  String? get productName;
  @override
  @JsonKey(name: 'category_id')
  String? get categoryId;
  @override
  @JsonKey(name: 'category_name')
  String? get categoryName;
  @override
  @JsonKey(name: 'quantity_sold')
  int? get quantitySold;
  @override
  @JsonKey(name: 'revenue')
  int? get revenue;
  @override
  @JsonKey(name: 'cost')
  int? get cost;
  @override
  @JsonKey(name: 'gross_profit')
  int? get grossProfit;
  @override
  @JsonKey(name: 'gross_profit_margin')
  double? get grossProfitMargin;
  @override
  @JsonKey(name: 'average_price')
  int? get averagePrice;
  @override
  @JsonKey(name: 'average_cost')
  int? get averageCost;
  @override
  @JsonKey(name: 'profit_per_unit')
  int? get profitPerUnit;

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

ProfitLossMainSummaryItemDto _$ProfitLossMainSummaryItemDtoFromJson(
  Map<String, dynamic> json,
) {
  return _ProfitLossMainSummaryItemDto.fromJson(json);
}

/// @nodoc
mixin _$ProfitLossMainSummaryItemDto {
  @JsonKey(name: 'id')
  String? get id => throw _privateConstructorUsedError;
  @JsonKey(name: 'label')
  String? get label => throw _privateConstructorUsedError;
  @JsonKey(name: 'is_bold')
  bool? get isBold => throw _privateConstructorUsedError;
  @JsonKey(name: 'today_nominal')
  int? get todayNominal => throw _privateConstructorUsedError;
  @JsonKey(name: 'today_pct')
  double? get todayPct => throw _privateConstructorUsedError;
  @JsonKey(name: 'mtd_nominal')
  int? get mtdNominal => throw _privateConstructorUsedError;
  @JsonKey(name: 'mtd_pct')
  double? get mtdPct => throw _privateConstructorUsedError;
  @JsonKey(name: 'sub_items')
  List<ProfitLossMainSummaryItemDto>? get subItems =>
      throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $ProfitLossMainSummaryItemDtoCopyWith<$Res> {
  factory $ProfitLossMainSummaryItemDtoCopyWith(
    ProfitLossMainSummaryItemDto value,
    $Res Function(ProfitLossMainSummaryItemDto) then,
  ) =
      _$ProfitLossMainSummaryItemDtoCopyWithImpl<
        $Res,
        ProfitLossMainSummaryItemDto
      >;
  @useResult
  $Res call({
    @JsonKey(name: 'id') String? id,
    @JsonKey(name: 'label') String? label,
    @JsonKey(name: 'is_bold') bool? isBold,
    @JsonKey(name: 'today_nominal') int? todayNominal,
    @JsonKey(name: 'today_pct') double? todayPct,
    @JsonKey(name: 'mtd_nominal') int? mtdNominal,
    @JsonKey(name: 'mtd_pct') double? mtdPct,
    @JsonKey(name: 'sub_items') List<ProfitLossMainSummaryItemDto>? subItems,
  });
}

/// @nodoc
class _$ProfitLossMainSummaryItemDtoCopyWithImpl<
  $Res,
  $Val extends ProfitLossMainSummaryItemDto
>
    implements $ProfitLossMainSummaryItemDtoCopyWith<$Res> {
  _$ProfitLossMainSummaryItemDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of ProfitLossMainSummaryItemDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? id = freezed,
    Object? label = freezed,
    Object? isBold = freezed,
    Object? todayNominal = freezed,
    Object? todayPct = freezed,
    Object? mtdNominal = freezed,
    Object? mtdPct = freezed,
    Object? subItems = freezed,
  }) {
    return _then(
      _value.copyWith(
            id: freezed == id
                ? _value.id
                : id // ignore: cast_nullable_to_non_nullable
                      as String?,
            label: freezed == label
                ? _value.label
                : label // ignore: cast_nullable_to_non_nullable
                      as String?,
            isBold: freezed == isBold
                ? _value.isBold
                : isBold // ignore: cast_nullable_to_non_nullable
                      as bool?,
            todayNominal: freezed == todayNominal
                ? _value.todayNominal
                : todayNominal // ignore: cast_nullable_to_non_nullable
                      as int?,
            todayPct: freezed == todayPct
                ? _value.todayPct
                : todayPct // ignore: cast_nullable_to_non_nullable
                      as double?,
            mtdNominal: freezed == mtdNominal
                ? _value.mtdNominal
                : mtdNominal // ignore: cast_nullable_to_non_nullable
                      as int?,
            mtdPct: freezed == mtdPct
                ? _value.mtdPct
                : mtdPct // ignore: cast_nullable_to_non_nullable
                      as double?,
            subItems: freezed == subItems
                ? _value.subItems
                : subItems // ignore: cast_nullable_to_non_nullable
                      as List<ProfitLossMainSummaryItemDto>?,
          )
          as $Val,
    );
  }
}

/// @nodoc
abstract class _$$ProfitLossMainSummaryItemDtoImplCopyWith<$Res>
    implements $ProfitLossMainSummaryItemDtoCopyWith<$Res> {
  factory _$$ProfitLossMainSummaryItemDtoImplCopyWith(
    _$ProfitLossMainSummaryItemDtoImpl value,
    $Res Function(_$ProfitLossMainSummaryItemDtoImpl) then,
  ) = __$$ProfitLossMainSummaryItemDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'id') String? id,
    @JsonKey(name: 'label') String? label,
    @JsonKey(name: 'is_bold') bool? isBold,
    @JsonKey(name: 'today_nominal') int? todayNominal,
    @JsonKey(name: 'today_pct') double? todayPct,
    @JsonKey(name: 'mtd_nominal') int? mtdNominal,
    @JsonKey(name: 'mtd_pct') double? mtdPct,
    @JsonKey(name: 'sub_items') List<ProfitLossMainSummaryItemDto>? subItems,
  });
}

/// @nodoc
class __$$ProfitLossMainSummaryItemDtoImplCopyWithImpl<$Res>
    extends
        _$ProfitLossMainSummaryItemDtoCopyWithImpl<
          $Res,
          _$ProfitLossMainSummaryItemDtoImpl
        >
    implements _$$ProfitLossMainSummaryItemDtoImplCopyWith<$Res> {
  __$$ProfitLossMainSummaryItemDtoImplCopyWithImpl(
    _$ProfitLossMainSummaryItemDtoImpl _value,
    $Res Function(_$ProfitLossMainSummaryItemDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of ProfitLossMainSummaryItemDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? id = freezed,
    Object? label = freezed,
    Object? isBold = freezed,
    Object? todayNominal = freezed,
    Object? todayPct = freezed,
    Object? mtdNominal = freezed,
    Object? mtdPct = freezed,
    Object? subItems = freezed,
  }) {
    return _then(
      _$ProfitLossMainSummaryItemDtoImpl(
        id: freezed == id
            ? _value.id
            : id // ignore: cast_nullable_to_non_nullable
                  as String?,
        label: freezed == label
            ? _value.label
            : label // ignore: cast_nullable_to_non_nullable
                  as String?,
        isBold: freezed == isBold
            ? _value.isBold
            : isBold // ignore: cast_nullable_to_non_nullable
                  as bool?,
        todayNominal: freezed == todayNominal
            ? _value.todayNominal
            : todayNominal // ignore: cast_nullable_to_non_nullable
                  as int?,
        todayPct: freezed == todayPct
            ? _value.todayPct
            : todayPct // ignore: cast_nullable_to_non_nullable
                  as double?,
        mtdNominal: freezed == mtdNominal
            ? _value.mtdNominal
            : mtdNominal // ignore: cast_nullable_to_non_nullable
                  as int?,
        mtdPct: freezed == mtdPct
            ? _value.mtdPct
            : mtdPct // ignore: cast_nullable_to_non_nullable
                  as double?,
        subItems: freezed == subItems
            ? _value._subItems
            : subItems // ignore: cast_nullable_to_non_nullable
                  as List<ProfitLossMainSummaryItemDto>?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$ProfitLossMainSummaryItemDtoImpl extends _ProfitLossMainSummaryItemDto {
  const _$ProfitLossMainSummaryItemDtoImpl({
    @JsonKey(name: 'id') this.id,
    @JsonKey(name: 'label') this.label,
    @JsonKey(name: 'is_bold') this.isBold,
    @JsonKey(name: 'today_nominal') this.todayNominal,
    @JsonKey(name: 'today_pct') this.todayPct,
    @JsonKey(name: 'mtd_nominal') this.mtdNominal,
    @JsonKey(name: 'mtd_pct') this.mtdPct,
    @JsonKey(name: 'sub_items')
    final List<ProfitLossMainSummaryItemDto>? subItems,
  }) : _subItems = subItems,
       super._();

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

  @override
  @JsonKey(name: 'id')
  final String? id;
  @override
  @JsonKey(name: 'label')
  final String? label;
  @override
  @JsonKey(name: 'is_bold')
  final bool? isBold;
  @override
  @JsonKey(name: 'today_nominal')
  final int? todayNominal;
  @override
  @JsonKey(name: 'today_pct')
  final double? todayPct;
  @override
  @JsonKey(name: 'mtd_nominal')
  final int? mtdNominal;
  @override
  @JsonKey(name: 'mtd_pct')
  final double? mtdPct;
  final List<ProfitLossMainSummaryItemDto>? _subItems;
  @override
  @JsonKey(name: 'sub_items')
  List<ProfitLossMainSummaryItemDto>? get subItems {
    final value = _subItems;
    if (value == null) return null;
    if (_subItems is EqualUnmodifiableListView) return _subItems;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

  @override
  String toString() {
    return 'ProfitLossMainSummaryItemDto(id: $id, label: $label, isBold: $isBold, todayNominal: $todayNominal, todayPct: $todayPct, mtdNominal: $mtdNominal, mtdPct: $mtdPct, subItems: $subItems)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ProfitLossMainSummaryItemDtoImpl &&
            (identical(other.id, id) || other.id == id) &&
            (identical(other.label, label) || other.label == label) &&
            (identical(other.isBold, isBold) || other.isBold == isBold) &&
            (identical(other.todayNominal, todayNominal) ||
                other.todayNominal == todayNominal) &&
            (identical(other.todayPct, todayPct) ||
                other.todayPct == todayPct) &&
            (identical(other.mtdNominal, mtdNominal) ||
                other.mtdNominal == mtdNominal) &&
            (identical(other.mtdPct, mtdPct) || other.mtdPct == mtdPct) &&
            const DeepCollectionEquality().equals(other._subItems, _subItems));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    id,
    label,
    isBold,
    todayNominal,
    todayPct,
    mtdNominal,
    mtdPct,
    const DeepCollectionEquality().hash(_subItems),
  );

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

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

abstract class _ProfitLossMainSummaryItemDto
    extends ProfitLossMainSummaryItemDto {
  const factory _ProfitLossMainSummaryItemDto({
    @JsonKey(name: 'id') final String? id,
    @JsonKey(name: 'label') final String? label,
    @JsonKey(name: 'is_bold') final bool? isBold,
    @JsonKey(name: 'today_nominal') final int? todayNominal,
    @JsonKey(name: 'today_pct') final double? todayPct,
    @JsonKey(name: 'mtd_nominal') final int? mtdNominal,
    @JsonKey(name: 'mtd_pct') final double? mtdPct,
    @JsonKey(name: 'sub_items')
    final List<ProfitLossMainSummaryItemDto>? subItems,
  }) = _$ProfitLossMainSummaryItemDtoImpl;
  const _ProfitLossMainSummaryItemDto._() : super._();

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

  @override
  @JsonKey(name: 'id')
  String? get id;
  @override
  @JsonKey(name: 'label')
  String? get label;
  @override
  @JsonKey(name: 'is_bold')
  bool? get isBold;
  @override
  @JsonKey(name: 'today_nominal')
  int? get todayNominal;
  @override
  @JsonKey(name: 'today_pct')
  double? get todayPct;
  @override
  @JsonKey(name: 'mtd_nominal')
  int? get mtdNominal;
  @override
  @JsonKey(name: 'mtd_pct')
  double? get mtdPct;
  @override
  @JsonKey(name: 'sub_items')
  List<ProfitLossMainSummaryItemDto>? get subItems;

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

ProfitLossPurchasingDto _$ProfitLossPurchasingDtoFromJson(
  Map<String, dynamic> json,
) {
  return _ProfitLossPurchasingDto.fromJson(json);
}

/// @nodoc
mixin _$ProfitLossPurchasingDto {
  @JsonKey(name: 'today_total')
  int? get todayTotal => throw _privateConstructorUsedError;
  @JsonKey(name: 'mtd_total')
  int? get mtdTotal => throw _privateConstructorUsedError;
  @JsonKey(name: 'today_raw_material')
  int? get todayRawMaterial => throw _privateConstructorUsedError;
  @JsonKey(name: 'mtd_raw_material')
  int? get mtdRawMaterial => throw _privateConstructorUsedError;
  @JsonKey(name: 'today_expense')
  int? get todayExpense => throw _privateConstructorUsedError;
  @JsonKey(name: 'mtd_expense')
  int? get mtdExpense => throw _privateConstructorUsedError;
  @JsonKey(name: 'items')
  List<ProfitLossPurchasingItemDto>? get items =>
      throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $ProfitLossPurchasingDtoCopyWith<$Res> {
  factory $ProfitLossPurchasingDtoCopyWith(
    ProfitLossPurchasingDto value,
    $Res Function(ProfitLossPurchasingDto) then,
  ) = _$ProfitLossPurchasingDtoCopyWithImpl<$Res, ProfitLossPurchasingDto>;
  @useResult
  $Res call({
    @JsonKey(name: 'today_total') int? todayTotal,
    @JsonKey(name: 'mtd_total') int? mtdTotal,
    @JsonKey(name: 'today_raw_material') int? todayRawMaterial,
    @JsonKey(name: 'mtd_raw_material') int? mtdRawMaterial,
    @JsonKey(name: 'today_expense') int? todayExpense,
    @JsonKey(name: 'mtd_expense') int? mtdExpense,
    @JsonKey(name: 'items') List<ProfitLossPurchasingItemDto>? items,
  });
}

/// @nodoc
class _$ProfitLossPurchasingDtoCopyWithImpl<
  $Res,
  $Val extends ProfitLossPurchasingDto
>
    implements $ProfitLossPurchasingDtoCopyWith<$Res> {
  _$ProfitLossPurchasingDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of ProfitLossPurchasingDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? todayTotal = freezed,
    Object? mtdTotal = freezed,
    Object? todayRawMaterial = freezed,
    Object? mtdRawMaterial = freezed,
    Object? todayExpense = freezed,
    Object? mtdExpense = freezed,
    Object? items = freezed,
  }) {
    return _then(
      _value.copyWith(
            todayTotal: freezed == todayTotal
                ? _value.todayTotal
                : todayTotal // ignore: cast_nullable_to_non_nullable
                      as int?,
            mtdTotal: freezed == mtdTotal
                ? _value.mtdTotal
                : mtdTotal // ignore: cast_nullable_to_non_nullable
                      as int?,
            todayRawMaterial: freezed == todayRawMaterial
                ? _value.todayRawMaterial
                : todayRawMaterial // ignore: cast_nullable_to_non_nullable
                      as int?,
            mtdRawMaterial: freezed == mtdRawMaterial
                ? _value.mtdRawMaterial
                : mtdRawMaterial // ignore: cast_nullable_to_non_nullable
                      as int?,
            todayExpense: freezed == todayExpense
                ? _value.todayExpense
                : todayExpense // ignore: cast_nullable_to_non_nullable
                      as int?,
            mtdExpense: freezed == mtdExpense
                ? _value.mtdExpense
                : mtdExpense // ignore: cast_nullable_to_non_nullable
                      as int?,
            items: freezed == items
                ? _value.items
                : items // ignore: cast_nullable_to_non_nullable
                      as List<ProfitLossPurchasingItemDto>?,
          )
          as $Val,
    );
  }
}

/// @nodoc
abstract class _$$ProfitLossPurchasingDtoImplCopyWith<$Res>
    implements $ProfitLossPurchasingDtoCopyWith<$Res> {
  factory _$$ProfitLossPurchasingDtoImplCopyWith(
    _$ProfitLossPurchasingDtoImpl value,
    $Res Function(_$ProfitLossPurchasingDtoImpl) then,
  ) = __$$ProfitLossPurchasingDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'today_total') int? todayTotal,
    @JsonKey(name: 'mtd_total') int? mtdTotal,
    @JsonKey(name: 'today_raw_material') int? todayRawMaterial,
    @JsonKey(name: 'mtd_raw_material') int? mtdRawMaterial,
    @JsonKey(name: 'today_expense') int? todayExpense,
    @JsonKey(name: 'mtd_expense') int? mtdExpense,
    @JsonKey(name: 'items') List<ProfitLossPurchasingItemDto>? items,
  });
}

/// @nodoc
class __$$ProfitLossPurchasingDtoImplCopyWithImpl<$Res>
    extends
        _$ProfitLossPurchasingDtoCopyWithImpl<
          $Res,
          _$ProfitLossPurchasingDtoImpl
        >
    implements _$$ProfitLossPurchasingDtoImplCopyWith<$Res> {
  __$$ProfitLossPurchasingDtoImplCopyWithImpl(
    _$ProfitLossPurchasingDtoImpl _value,
    $Res Function(_$ProfitLossPurchasingDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of ProfitLossPurchasingDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? todayTotal = freezed,
    Object? mtdTotal = freezed,
    Object? todayRawMaterial = freezed,
    Object? mtdRawMaterial = freezed,
    Object? todayExpense = freezed,
    Object? mtdExpense = freezed,
    Object? items = freezed,
  }) {
    return _then(
      _$ProfitLossPurchasingDtoImpl(
        todayTotal: freezed == todayTotal
            ? _value.todayTotal
            : todayTotal // ignore: cast_nullable_to_non_nullable
                  as int?,
        mtdTotal: freezed == mtdTotal
            ? _value.mtdTotal
            : mtdTotal // ignore: cast_nullable_to_non_nullable
                  as int?,
        todayRawMaterial: freezed == todayRawMaterial
            ? _value.todayRawMaterial
            : todayRawMaterial // ignore: cast_nullable_to_non_nullable
                  as int?,
        mtdRawMaterial: freezed == mtdRawMaterial
            ? _value.mtdRawMaterial
            : mtdRawMaterial // ignore: cast_nullable_to_non_nullable
                  as int?,
        todayExpense: freezed == todayExpense
            ? _value.todayExpense
            : todayExpense // ignore: cast_nullable_to_non_nullable
                  as int?,
        mtdExpense: freezed == mtdExpense
            ? _value.mtdExpense
            : mtdExpense // ignore: cast_nullable_to_non_nullable
                  as int?,
        items: freezed == items
            ? _value._items
            : items // ignore: cast_nullable_to_non_nullable
                  as List<ProfitLossPurchasingItemDto>?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$ProfitLossPurchasingDtoImpl extends _ProfitLossPurchasingDto {
  const _$ProfitLossPurchasingDtoImpl({
    @JsonKey(name: 'today_total') this.todayTotal,
    @JsonKey(name: 'mtd_total') this.mtdTotal,
    @JsonKey(name: 'today_raw_material') this.todayRawMaterial,
    @JsonKey(name: 'mtd_raw_material') this.mtdRawMaterial,
    @JsonKey(name: 'today_expense') this.todayExpense,
    @JsonKey(name: 'mtd_expense') this.mtdExpense,
    @JsonKey(name: 'items') final List<ProfitLossPurchasingItemDto>? items,
  }) : _items = items,
       super._();

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

  @override
  @JsonKey(name: 'today_total')
  final int? todayTotal;
  @override
  @JsonKey(name: 'mtd_total')
  final int? mtdTotal;
  @override
  @JsonKey(name: 'today_raw_material')
  final int? todayRawMaterial;
  @override
  @JsonKey(name: 'mtd_raw_material')
  final int? mtdRawMaterial;
  @override
  @JsonKey(name: 'today_expense')
  final int? todayExpense;
  @override
  @JsonKey(name: 'mtd_expense')
  final int? mtdExpense;
  final List<ProfitLossPurchasingItemDto>? _items;
  @override
  @JsonKey(name: 'items')
  List<ProfitLossPurchasingItemDto>? get items {
    final value = _items;
    if (value == null) return null;
    if (_items is EqualUnmodifiableListView) return _items;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

  @override
  String toString() {
    return 'ProfitLossPurchasingDto(todayTotal: $todayTotal, mtdTotal: $mtdTotal, todayRawMaterial: $todayRawMaterial, mtdRawMaterial: $mtdRawMaterial, todayExpense: $todayExpense, mtdExpense: $mtdExpense, items: $items)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ProfitLossPurchasingDtoImpl &&
            (identical(other.todayTotal, todayTotal) ||
                other.todayTotal == todayTotal) &&
            (identical(other.mtdTotal, mtdTotal) ||
                other.mtdTotal == mtdTotal) &&
            (identical(other.todayRawMaterial, todayRawMaterial) ||
                other.todayRawMaterial == todayRawMaterial) &&
            (identical(other.mtdRawMaterial, mtdRawMaterial) ||
                other.mtdRawMaterial == mtdRawMaterial) &&
            (identical(other.todayExpense, todayExpense) ||
                other.todayExpense == todayExpense) &&
            (identical(other.mtdExpense, mtdExpense) ||
                other.mtdExpense == mtdExpense) &&
            const DeepCollectionEquality().equals(other._items, _items));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    todayTotal,
    mtdTotal,
    todayRawMaterial,
    mtdRawMaterial,
    todayExpense,
    mtdExpense,
    const DeepCollectionEquality().hash(_items),
  );

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

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

abstract class _ProfitLossPurchasingDto extends ProfitLossPurchasingDto {
  const factory _ProfitLossPurchasingDto({
    @JsonKey(name: 'today_total') final int? todayTotal,
    @JsonKey(name: 'mtd_total') final int? mtdTotal,
    @JsonKey(name: 'today_raw_material') final int? todayRawMaterial,
    @JsonKey(name: 'mtd_raw_material') final int? mtdRawMaterial,
    @JsonKey(name: 'today_expense') final int? todayExpense,
    @JsonKey(name: 'mtd_expense') final int? mtdExpense,
    @JsonKey(name: 'items') final List<ProfitLossPurchasingItemDto>? items,
  }) = _$ProfitLossPurchasingDtoImpl;
  const _ProfitLossPurchasingDto._() : super._();

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

  @override
  @JsonKey(name: 'today_total')
  int? get todayTotal;
  @override
  @JsonKey(name: 'mtd_total')
  int? get mtdTotal;
  @override
  @JsonKey(name: 'today_raw_material')
  int? get todayRawMaterial;
  @override
  @JsonKey(name: 'mtd_raw_material')
  int? get mtdRawMaterial;
  @override
  @JsonKey(name: 'today_expense')
  int? get todayExpense;
  @override
  @JsonKey(name: 'mtd_expense')
  int? get mtdExpense;
  @override
  @JsonKey(name: 'items')
  List<ProfitLossPurchasingItemDto>? get items;

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

ProfitLossPurchasingItemDto _$ProfitLossPurchasingItemDtoFromJson(
  Map<String, dynamic> json,
) {
  return _ProfitLossPurchasingItemDto.fromJson(json);
}

/// @nodoc
mixin _$ProfitLossPurchasingItemDto {
  @JsonKey(name: 'date')
  String? get date => throw _privateConstructorUsedError;
  @JsonKey(name: 'item')
  String? get item => throw _privateConstructorUsedError;
  @JsonKey(name: 'quantity')
  int? get quantity => throw _privateConstructorUsedError;
  @JsonKey(name: 'nominal')
  int? get nominal => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $ProfitLossPurchasingItemDtoCopyWith<$Res> {
  factory $ProfitLossPurchasingItemDtoCopyWith(
    ProfitLossPurchasingItemDto value,
    $Res Function(ProfitLossPurchasingItemDto) then,
  ) =
      _$ProfitLossPurchasingItemDtoCopyWithImpl<
        $Res,
        ProfitLossPurchasingItemDto
      >;
  @useResult
  $Res call({
    @JsonKey(name: 'date') String? date,
    @JsonKey(name: 'item') String? item,
    @JsonKey(name: 'quantity') int? quantity,
    @JsonKey(name: 'nominal') int? nominal,
  });
}

/// @nodoc
class _$ProfitLossPurchasingItemDtoCopyWithImpl<
  $Res,
  $Val extends ProfitLossPurchasingItemDto
>
    implements $ProfitLossPurchasingItemDtoCopyWith<$Res> {
  _$ProfitLossPurchasingItemDtoCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$ProfitLossPurchasingItemDtoImplCopyWith<$Res>
    implements $ProfitLossPurchasingItemDtoCopyWith<$Res> {
  factory _$$ProfitLossPurchasingItemDtoImplCopyWith(
    _$ProfitLossPurchasingItemDtoImpl value,
    $Res Function(_$ProfitLossPurchasingItemDtoImpl) then,
  ) = __$$ProfitLossPurchasingItemDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'date') String? date,
    @JsonKey(name: 'item') String? item,
    @JsonKey(name: 'quantity') int? quantity,
    @JsonKey(name: 'nominal') int? nominal,
  });
}

/// @nodoc
class __$$ProfitLossPurchasingItemDtoImplCopyWithImpl<$Res>
    extends
        _$ProfitLossPurchasingItemDtoCopyWithImpl<
          $Res,
          _$ProfitLossPurchasingItemDtoImpl
        >
    implements _$$ProfitLossPurchasingItemDtoImplCopyWith<$Res> {
  __$$ProfitLossPurchasingItemDtoImplCopyWithImpl(
    _$ProfitLossPurchasingItemDtoImpl _value,
    $Res Function(_$ProfitLossPurchasingItemDtoImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc
@JsonSerializable()
class _$ProfitLossPurchasingItemDtoImpl extends _ProfitLossPurchasingItemDto {
  const _$ProfitLossPurchasingItemDtoImpl({
    @JsonKey(name: 'date') this.date,
    @JsonKey(name: 'item') this.item,
    @JsonKey(name: 'quantity') this.quantity,
    @JsonKey(name: 'nominal') this.nominal,
  }) : super._();

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

  @override
  @JsonKey(name: 'date')
  final String? date;
  @override
  @JsonKey(name: 'item')
  final String? item;
  @override
  @JsonKey(name: 'quantity')
  final int? quantity;
  @override
  @JsonKey(name: 'nominal')
  final int? nominal;

  @override
  String toString() {
    return 'ProfitLossPurchasingItemDto(date: $date, item: $item, quantity: $quantity, nominal: $nominal)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ProfitLossPurchasingItemDtoImpl &&
            (identical(other.date, date) || other.date == date) &&
            (identical(other.item, item) || other.item == item) &&
            (identical(other.quantity, quantity) ||
                other.quantity == quantity) &&
            (identical(other.nominal, nominal) || other.nominal == nominal));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(runtimeType, date, item, quantity, nominal);

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

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

abstract class _ProfitLossPurchasingItemDto
    extends ProfitLossPurchasingItemDto {
  const factory _ProfitLossPurchasingItemDto({
    @JsonKey(name: 'date') final String? date,
    @JsonKey(name: 'item') final String? item,
    @JsonKey(name: 'quantity') final int? quantity,
    @JsonKey(name: 'nominal') final int? nominal,
  }) = _$ProfitLossPurchasingItemDtoImpl;
  const _ProfitLossPurchasingItemDto._() : super._();

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

  @override
  @JsonKey(name: 'date')
  String? get date;
  @override
  @JsonKey(name: 'item')
  String? get item;
  @override
  @JsonKey(name: 'quantity')
  int? get quantity;
  @override
  @JsonKey(name: 'nominal')
  int? get nominal;

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

ProfitLossOperationalExpenseDto _$ProfitLossOperationalExpenseDtoFromJson(
  Map<String, dynamic> json,
) {
  return _ProfitLossOperationalExpenseDto.fromJson(json);
}

/// @nodoc
mixin _$ProfitLossOperationalExpenseDto {
  @JsonKey(name: 'item')
  String? get item => throw _privateConstructorUsedError;
  @JsonKey(name: 'nominal')
  int? get nominal => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $ProfitLossOperationalExpenseDtoCopyWith<$Res> {
  factory $ProfitLossOperationalExpenseDtoCopyWith(
    ProfitLossOperationalExpenseDto value,
    $Res Function(ProfitLossOperationalExpenseDto) then,
  ) =
      _$ProfitLossOperationalExpenseDtoCopyWithImpl<
        $Res,
        ProfitLossOperationalExpenseDto
      >;
  @useResult
  $Res call({
    @JsonKey(name: 'item') String? item,
    @JsonKey(name: 'nominal') int? nominal,
  });
}

/// @nodoc
class _$ProfitLossOperationalExpenseDtoCopyWithImpl<
  $Res,
  $Val extends ProfitLossOperationalExpenseDto
>
    implements $ProfitLossOperationalExpenseDtoCopyWith<$Res> {
  _$ProfitLossOperationalExpenseDtoCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$ProfitLossOperationalExpenseDtoImplCopyWith<$Res>
    implements $ProfitLossOperationalExpenseDtoCopyWith<$Res> {
  factory _$$ProfitLossOperationalExpenseDtoImplCopyWith(
    _$ProfitLossOperationalExpenseDtoImpl value,
    $Res Function(_$ProfitLossOperationalExpenseDtoImpl) then,
  ) = __$$ProfitLossOperationalExpenseDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'item') String? item,
    @JsonKey(name: 'nominal') int? nominal,
  });
}

/// @nodoc
class __$$ProfitLossOperationalExpenseDtoImplCopyWithImpl<$Res>
    extends
        _$ProfitLossOperationalExpenseDtoCopyWithImpl<
          $Res,
          _$ProfitLossOperationalExpenseDtoImpl
        >
    implements _$$ProfitLossOperationalExpenseDtoImplCopyWith<$Res> {
  __$$ProfitLossOperationalExpenseDtoImplCopyWithImpl(
    _$ProfitLossOperationalExpenseDtoImpl _value,
    $Res Function(_$ProfitLossOperationalExpenseDtoImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc
@JsonSerializable()
class _$ProfitLossOperationalExpenseDtoImpl
    extends _ProfitLossOperationalExpenseDto {
  const _$ProfitLossOperationalExpenseDtoImpl({
    @JsonKey(name: 'item') this.item,
    @JsonKey(name: 'nominal') this.nominal,
  }) : super._();

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

  @override
  @JsonKey(name: 'item')
  final String? item;
  @override
  @JsonKey(name: 'nominal')
  final int? nominal;

  @override
  String toString() {
    return 'ProfitLossOperationalExpenseDto(item: $item, nominal: $nominal)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ProfitLossOperationalExpenseDtoImpl &&
            (identical(other.item, item) || other.item == item) &&
            (identical(other.nominal, nominal) || other.nominal == nominal));
  }

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

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

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

abstract class _ProfitLossOperationalExpenseDto
    extends ProfitLossOperationalExpenseDto {
  const factory _ProfitLossOperationalExpenseDto({
    @JsonKey(name: 'item') final String? item,
    @JsonKey(name: 'nominal') final int? nominal,
  }) = _$ProfitLossOperationalExpenseDtoImpl;
  const _ProfitLossOperationalExpenseDto._() : super._();

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

  @override
  @JsonKey(name: 'item')
  String? get item;
  @override
  @JsonKey(name: 'nominal')
  int? get nominal;

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

CategoryAnalyticDto _$CategoryAnalyticDtoFromJson(Map<String, dynamic> json) {
  return _CategoryAnalyticDto.fromJson(json);
}

/// @nodoc
mixin _$CategoryAnalyticDto {
  @JsonKey(name: 'organization_id')
  String? get organizationId => throw _privateConstructorUsedError;
  @JsonKey(name: 'outlet_id')
  String? get outletId => throw _privateConstructorUsedError;
  @JsonKey(name: 'outlet_name')
  String? get outletName => throw _privateConstructorUsedError;
  @JsonKey(name: 'date_from')
  String? get dateFrom => throw _privateConstructorUsedError;
  @JsonKey(name: 'date_to')
  String? get dateTo => throw _privateConstructorUsedError;
  @JsonKey(name: 'data')
  List<CategoryAnalyticItemDto>? get data => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $CategoryAnalyticDtoCopyWith<$Res> {
  factory $CategoryAnalyticDtoCopyWith(
    CategoryAnalyticDto value,
    $Res Function(CategoryAnalyticDto) then,
  ) = _$CategoryAnalyticDtoCopyWithImpl<$Res, CategoryAnalyticDto>;
  @useResult
  $Res call({
    @JsonKey(name: 'organization_id') String? organizationId,
    @JsonKey(name: 'outlet_id') String? outletId,
    @JsonKey(name: 'outlet_name') String? outletName,
    @JsonKey(name: 'date_from') String? dateFrom,
    @JsonKey(name: 'date_to') String? dateTo,
    @JsonKey(name: 'data') List<CategoryAnalyticItemDto>? data,
  });
}

/// @nodoc
class _$CategoryAnalyticDtoCopyWithImpl<$Res, $Val extends CategoryAnalyticDto>
    implements $CategoryAnalyticDtoCopyWith<$Res> {
  _$CategoryAnalyticDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of CategoryAnalyticDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? organizationId = freezed,
    Object? outletId = freezed,
    Object? outletName = freezed,
    Object? dateFrom = freezed,
    Object? dateTo = freezed,
    Object? data = freezed,
  }) {
    return _then(
      _value.copyWith(
            organizationId: freezed == organizationId
                ? _value.organizationId
                : organizationId // ignore: cast_nullable_to_non_nullable
                      as String?,
            outletId: freezed == outletId
                ? _value.outletId
                : outletId // ignore: cast_nullable_to_non_nullable
                      as String?,
            outletName: freezed == outletName
                ? _value.outletName
                : outletName // ignore: cast_nullable_to_non_nullable
                      as String?,
            dateFrom: freezed == dateFrom
                ? _value.dateFrom
                : dateFrom // ignore: cast_nullable_to_non_nullable
                      as String?,
            dateTo: freezed == dateTo
                ? _value.dateTo
                : dateTo // ignore: cast_nullable_to_non_nullable
                      as String?,
            data: freezed == data
                ? _value.data
                : data // ignore: cast_nullable_to_non_nullable
                      as List<CategoryAnalyticItemDto>?,
          )
          as $Val,
    );
  }
}

/// @nodoc
abstract class _$$CategoryAnalyticDtoImplCopyWith<$Res>
    implements $CategoryAnalyticDtoCopyWith<$Res> {
  factory _$$CategoryAnalyticDtoImplCopyWith(
    _$CategoryAnalyticDtoImpl value,
    $Res Function(_$CategoryAnalyticDtoImpl) then,
  ) = __$$CategoryAnalyticDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'organization_id') String? organizationId,
    @JsonKey(name: 'outlet_id') String? outletId,
    @JsonKey(name: 'outlet_name') String? outletName,
    @JsonKey(name: 'date_from') String? dateFrom,
    @JsonKey(name: 'date_to') String? dateTo,
    @JsonKey(name: 'data') List<CategoryAnalyticItemDto>? data,
  });
}

/// @nodoc
class __$$CategoryAnalyticDtoImplCopyWithImpl<$Res>
    extends _$CategoryAnalyticDtoCopyWithImpl<$Res, _$CategoryAnalyticDtoImpl>
    implements _$$CategoryAnalyticDtoImplCopyWith<$Res> {
  __$$CategoryAnalyticDtoImplCopyWithImpl(
    _$CategoryAnalyticDtoImpl _value,
    $Res Function(_$CategoryAnalyticDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of CategoryAnalyticDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? organizationId = freezed,
    Object? outletId = freezed,
    Object? outletName = freezed,
    Object? dateFrom = freezed,
    Object? dateTo = freezed,
    Object? data = freezed,
  }) {
    return _then(
      _$CategoryAnalyticDtoImpl(
        organizationId: freezed == organizationId
            ? _value.organizationId
            : organizationId // ignore: cast_nullable_to_non_nullable
                  as String?,
        outletId: freezed == outletId
            ? _value.outletId
            : outletId // ignore: cast_nullable_to_non_nullable
                  as String?,
        outletName: freezed == outletName
            ? _value.outletName
            : outletName // ignore: cast_nullable_to_non_nullable
                  as String?,
        dateFrom: freezed == dateFrom
            ? _value.dateFrom
            : dateFrom // ignore: cast_nullable_to_non_nullable
                  as String?,
        dateTo: freezed == dateTo
            ? _value.dateTo
            : dateTo // ignore: cast_nullable_to_non_nullable
                  as String?,
        data: freezed == data
            ? _value._data
            : data // ignore: cast_nullable_to_non_nullable
                  as List<CategoryAnalyticItemDto>?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$CategoryAnalyticDtoImpl extends _CategoryAnalyticDto {
  const _$CategoryAnalyticDtoImpl({
    @JsonKey(name: 'organization_id') this.organizationId,
    @JsonKey(name: 'outlet_id') this.outletId,
    @JsonKey(name: 'outlet_name') this.outletName,
    @JsonKey(name: 'date_from') this.dateFrom,
    @JsonKey(name: 'date_to') this.dateTo,
    @JsonKey(name: 'data') final List<CategoryAnalyticItemDto>? data,
  }) : _data = data,
       super._();

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

  @override
  @JsonKey(name: 'organization_id')
  final String? organizationId;
  @override
  @JsonKey(name: 'outlet_id')
  final String? outletId;
  @override
  @JsonKey(name: 'outlet_name')
  final String? outletName;
  @override
  @JsonKey(name: 'date_from')
  final String? dateFrom;
  @override
  @JsonKey(name: 'date_to')
  final String? dateTo;
  final List<CategoryAnalyticItemDto>? _data;
  @override
  @JsonKey(name: 'data')
  List<CategoryAnalyticItemDto>? get data {
    final value = _data;
    if (value == null) return null;
    if (_data is EqualUnmodifiableListView) return _data;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

  @override
  String toString() {
    return 'CategoryAnalyticDto(organizationId: $organizationId, outletId: $outletId, outletName: $outletName, dateFrom: $dateFrom, dateTo: $dateTo, data: $data)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$CategoryAnalyticDtoImpl &&
            (identical(other.organizationId, organizationId) ||
                other.organizationId == organizationId) &&
            (identical(other.outletId, outletId) ||
                other.outletId == outletId) &&
            (identical(other.outletName, outletName) ||
                other.outletName == outletName) &&
            (identical(other.dateFrom, dateFrom) ||
                other.dateFrom == dateFrom) &&
            (identical(other.dateTo, dateTo) || other.dateTo == dateTo) &&
            const DeepCollectionEquality().equals(other._data, _data));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    organizationId,
    outletId,
    outletName,
    dateFrom,
    dateTo,
    const DeepCollectionEquality().hash(_data),
  );

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

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

abstract class _CategoryAnalyticDto extends CategoryAnalyticDto {
  const factory _CategoryAnalyticDto({
    @JsonKey(name: 'organization_id') final String? organizationId,
    @JsonKey(name: 'outlet_id') final String? outletId,
    @JsonKey(name: 'outlet_name') final String? outletName,
    @JsonKey(name: 'date_from') final String? dateFrom,
    @JsonKey(name: 'date_to') final String? dateTo,
    @JsonKey(name: 'data') final List<CategoryAnalyticItemDto>? data,
  }) = _$CategoryAnalyticDtoImpl;
  const _CategoryAnalyticDto._() : super._();

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

  @override
  @JsonKey(name: 'organization_id')
  String? get organizationId;
  @override
  @JsonKey(name: 'outlet_id')
  String? get outletId;
  @override
  @JsonKey(name: 'outlet_name')
  String? get outletName;
  @override
  @JsonKey(name: 'date_from')
  String? get dateFrom;
  @override
  @JsonKey(name: 'date_to')
  String? get dateTo;
  @override
  @JsonKey(name: 'data')
  List<CategoryAnalyticItemDto>? get data;

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

CategoryAnalyticItemDto _$CategoryAnalyticItemDtoFromJson(
  Map<String, dynamic> json,
) {
  return _CategoryAnalyticItemDto.fromJson(json);
}

/// @nodoc
mixin _$CategoryAnalyticItemDto {
  @JsonKey(name: 'category_id')
  String? get categoryId => throw _privateConstructorUsedError;
  @JsonKey(name: 'category_name')
  String? get categoryName => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_revenue')
  int? get totalRevenue => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_quantity')
  int? get totalQuantity => throw _privateConstructorUsedError;
  @JsonKey(name: 'product_count')
  int? get productCount => throw _privateConstructorUsedError;
  @JsonKey(name: 'order_count')
  int? get orderCount => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $CategoryAnalyticItemDtoCopyWith<$Res> {
  factory $CategoryAnalyticItemDtoCopyWith(
    CategoryAnalyticItemDto value,
    $Res Function(CategoryAnalyticItemDto) then,
  ) = _$CategoryAnalyticItemDtoCopyWithImpl<$Res, CategoryAnalyticItemDto>;
  @useResult
  $Res call({
    @JsonKey(name: 'category_id') String? categoryId,
    @JsonKey(name: 'category_name') String? categoryName,
    @JsonKey(name: 'total_revenue') int? totalRevenue,
    @JsonKey(name: 'total_quantity') int? totalQuantity,
    @JsonKey(name: 'product_count') int? productCount,
    @JsonKey(name: 'order_count') int? orderCount,
  });
}

/// @nodoc
class _$CategoryAnalyticItemDtoCopyWithImpl<
  $Res,
  $Val extends CategoryAnalyticItemDto
>
    implements $CategoryAnalyticItemDtoCopyWith<$Res> {
  _$CategoryAnalyticItemDtoCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$CategoryAnalyticItemDtoImplCopyWith<$Res>
    implements $CategoryAnalyticItemDtoCopyWith<$Res> {
  factory _$$CategoryAnalyticItemDtoImplCopyWith(
    _$CategoryAnalyticItemDtoImpl value,
    $Res Function(_$CategoryAnalyticItemDtoImpl) then,
  ) = __$$CategoryAnalyticItemDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'category_id') String? categoryId,
    @JsonKey(name: 'category_name') String? categoryName,
    @JsonKey(name: 'total_revenue') int? totalRevenue,
    @JsonKey(name: 'total_quantity') int? totalQuantity,
    @JsonKey(name: 'product_count') int? productCount,
    @JsonKey(name: 'order_count') int? orderCount,
  });
}

/// @nodoc
class __$$CategoryAnalyticItemDtoImplCopyWithImpl<$Res>
    extends
        _$CategoryAnalyticItemDtoCopyWithImpl<
          $Res,
          _$CategoryAnalyticItemDtoImpl
        >
    implements _$$CategoryAnalyticItemDtoImplCopyWith<$Res> {
  __$$CategoryAnalyticItemDtoImplCopyWithImpl(
    _$CategoryAnalyticItemDtoImpl _value,
    $Res Function(_$CategoryAnalyticItemDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of CategoryAnalyticItemDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? categoryId = freezed,
    Object? categoryName = freezed,
    Object? totalRevenue = freezed,
    Object? totalQuantity = freezed,
    Object? productCount = freezed,
    Object? orderCount = freezed,
  }) {
    return _then(
      _$CategoryAnalyticItemDtoImpl(
        categoryId: freezed == categoryId
            ? _value.categoryId
            : categoryId // ignore: cast_nullable_to_non_nullable
                  as String?,
        categoryName: freezed == categoryName
            ? _value.categoryName
            : categoryName // ignore: cast_nullable_to_non_nullable
                  as String?,
        totalRevenue: freezed == totalRevenue
            ? _value.totalRevenue
            : totalRevenue // ignore: cast_nullable_to_non_nullable
                  as int?,
        totalQuantity: freezed == totalQuantity
            ? _value.totalQuantity
            : totalQuantity // ignore: cast_nullable_to_non_nullable
                  as int?,
        productCount: freezed == productCount
            ? _value.productCount
            : productCount // ignore: cast_nullable_to_non_nullable
                  as int?,
        orderCount: freezed == orderCount
            ? _value.orderCount
            : orderCount // ignore: cast_nullable_to_non_nullable
                  as int?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$CategoryAnalyticItemDtoImpl extends _CategoryAnalyticItemDto {
  const _$CategoryAnalyticItemDtoImpl({
    @JsonKey(name: 'category_id') this.categoryId,
    @JsonKey(name: 'category_name') this.categoryName,
    @JsonKey(name: 'total_revenue') this.totalRevenue,
    @JsonKey(name: 'total_quantity') this.totalQuantity,
    @JsonKey(name: 'product_count') this.productCount,
    @JsonKey(name: 'order_count') this.orderCount,
  }) : super._();

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

  @override
  @JsonKey(name: 'category_id')
  final String? categoryId;
  @override
  @JsonKey(name: 'category_name')
  final String? categoryName;
  @override
  @JsonKey(name: 'total_revenue')
  final int? totalRevenue;
  @override
  @JsonKey(name: 'total_quantity')
  final int? totalQuantity;
  @override
  @JsonKey(name: 'product_count')
  final int? productCount;
  @override
  @JsonKey(name: 'order_count')
  final int? orderCount;

  @override
  String toString() {
    return 'CategoryAnalyticItemDto(categoryId: $categoryId, categoryName: $categoryName, totalRevenue: $totalRevenue, totalQuantity: $totalQuantity, productCount: $productCount, orderCount: $orderCount)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$CategoryAnalyticItemDtoImpl &&
            (identical(other.categoryId, categoryId) ||
                other.categoryId == categoryId) &&
            (identical(other.categoryName, categoryName) ||
                other.categoryName == categoryName) &&
            (identical(other.totalRevenue, totalRevenue) ||
                other.totalRevenue == totalRevenue) &&
            (identical(other.totalQuantity, totalQuantity) ||
                other.totalQuantity == totalQuantity) &&
            (identical(other.productCount, productCount) ||
                other.productCount == productCount) &&
            (identical(other.orderCount, orderCount) ||
                other.orderCount == orderCount));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    categoryId,
    categoryName,
    totalRevenue,
    totalQuantity,
    productCount,
    orderCount,
  );

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

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

abstract class _CategoryAnalyticItemDto extends CategoryAnalyticItemDto {
  const factory _CategoryAnalyticItemDto({
    @JsonKey(name: 'category_id') final String? categoryId,
    @JsonKey(name: 'category_name') final String? categoryName,
    @JsonKey(name: 'total_revenue') final int? totalRevenue,
    @JsonKey(name: 'total_quantity') final int? totalQuantity,
    @JsonKey(name: 'product_count') final int? productCount,
    @JsonKey(name: 'order_count') final int? orderCount,
  }) = _$CategoryAnalyticItemDtoImpl;
  const _CategoryAnalyticItemDto._() : super._();

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

  @override
  @JsonKey(name: 'category_id')
  String? get categoryId;
  @override
  @JsonKey(name: 'category_name')
  String? get categoryName;
  @override
  @JsonKey(name: 'total_revenue')
  int? get totalRevenue;
  @override
  @JsonKey(name: 'total_quantity')
  int? get totalQuantity;
  @override
  @JsonKey(name: 'product_count')
  int? get productCount;
  @override
  @JsonKey(name: 'order_count')
  int? get orderCount;

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

InventoryAnalyticDto _$InventoryAnalyticDtoFromJson(Map<String, dynamic> json) {
  return _InventoryAnalyticDto.fromJson(json);
}

/// @nodoc
mixin _$InventoryAnalyticDto {
  @JsonKey(name: "summary")
  InventorySummaryDto? get summary => throw _privateConstructorUsedError;
  @JsonKey(name: "products")
  List<InventoryProductDto>? get products => throw _privateConstructorUsedError;
  @JsonKey(name: "ingredients")
  List<InventoryIngredientDto>? get ingredients =>
      throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $InventoryAnalyticDtoCopyWith<$Res> {
  factory $InventoryAnalyticDtoCopyWith(
    InventoryAnalyticDto value,
    $Res Function(InventoryAnalyticDto) then,
  ) = _$InventoryAnalyticDtoCopyWithImpl<$Res, InventoryAnalyticDto>;
  @useResult
  $Res call({
    @JsonKey(name: "summary") InventorySummaryDto? summary,
    @JsonKey(name: "products") List<InventoryProductDto>? products,
    @JsonKey(name: "ingredients") List<InventoryIngredientDto>? ingredients,
  });

  $InventorySummaryDtoCopyWith<$Res>? get summary;
}

/// @nodoc
class _$InventoryAnalyticDtoCopyWithImpl<
  $Res,
  $Val extends InventoryAnalyticDto
>
    implements $InventoryAnalyticDtoCopyWith<$Res> {
  _$InventoryAnalyticDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of InventoryAnalyticDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? summary = freezed,
    Object? products = freezed,
    Object? ingredients = freezed,
  }) {
    return _then(
      _value.copyWith(
            summary: freezed == summary
                ? _value.summary
                : summary // ignore: cast_nullable_to_non_nullable
                      as InventorySummaryDto?,
            products: freezed == products
                ? _value.products
                : products // ignore: cast_nullable_to_non_nullable
                      as List<InventoryProductDto>?,
            ingredients: freezed == ingredients
                ? _value.ingredients
                : ingredients // ignore: cast_nullable_to_non_nullable
                      as List<InventoryIngredientDto>?,
          )
          as $Val,
    );
  }

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

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

/// @nodoc
abstract class _$$InventoryAnalyticDtoImplCopyWith<$Res>
    implements $InventoryAnalyticDtoCopyWith<$Res> {
  factory _$$InventoryAnalyticDtoImplCopyWith(
    _$InventoryAnalyticDtoImpl value,
    $Res Function(_$InventoryAnalyticDtoImpl) then,
  ) = __$$InventoryAnalyticDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: "summary") InventorySummaryDto? summary,
    @JsonKey(name: "products") List<InventoryProductDto>? products,
    @JsonKey(name: "ingredients") List<InventoryIngredientDto>? ingredients,
  });

  @override
  $InventorySummaryDtoCopyWith<$Res>? get summary;
}

/// @nodoc
class __$$InventoryAnalyticDtoImplCopyWithImpl<$Res>
    extends _$InventoryAnalyticDtoCopyWithImpl<$Res, _$InventoryAnalyticDtoImpl>
    implements _$$InventoryAnalyticDtoImplCopyWith<$Res> {
  __$$InventoryAnalyticDtoImplCopyWithImpl(
    _$InventoryAnalyticDtoImpl _value,
    $Res Function(_$InventoryAnalyticDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of InventoryAnalyticDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? summary = freezed,
    Object? products = freezed,
    Object? ingredients = freezed,
  }) {
    return _then(
      _$InventoryAnalyticDtoImpl(
        summary: freezed == summary
            ? _value.summary
            : summary // ignore: cast_nullable_to_non_nullable
                  as InventorySummaryDto?,
        products: freezed == products
            ? _value._products
            : products // ignore: cast_nullable_to_non_nullable
                  as List<InventoryProductDto>?,
        ingredients: freezed == ingredients
            ? _value._ingredients
            : ingredients // ignore: cast_nullable_to_non_nullable
                  as List<InventoryIngredientDto>?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$InventoryAnalyticDtoImpl extends _InventoryAnalyticDto {
  const _$InventoryAnalyticDtoImpl({
    @JsonKey(name: "summary") this.summary,
    @JsonKey(name: "products") final List<InventoryProductDto>? products,
    @JsonKey(name: "ingredients")
    final List<InventoryIngredientDto>? ingredients,
  }) : _products = products,
       _ingredients = ingredients,
       super._();

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

  @override
  @JsonKey(name: "summary")
  final InventorySummaryDto? summary;
  final List<InventoryProductDto>? _products;
  @override
  @JsonKey(name: "products")
  List<InventoryProductDto>? get products {
    final value = _products;
    if (value == null) return null;
    if (_products is EqualUnmodifiableListView) return _products;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

  final List<InventoryIngredientDto>? _ingredients;
  @override
  @JsonKey(name: "ingredients")
  List<InventoryIngredientDto>? get ingredients {
    final value = _ingredients;
    if (value == null) return null;
    if (_ingredients is EqualUnmodifiableListView) return _ingredients;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

  @override
  String toString() {
    return 'InventoryAnalyticDto(summary: $summary, products: $products, ingredients: $ingredients)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$InventoryAnalyticDtoImpl &&
            (identical(other.summary, summary) || other.summary == summary) &&
            const DeepCollectionEquality().equals(other._products, _products) &&
            const DeepCollectionEquality().equals(
              other._ingredients,
              _ingredients,
            ));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    summary,
    const DeepCollectionEquality().hash(_products),
    const DeepCollectionEquality().hash(_ingredients),
  );

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

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

abstract class _InventoryAnalyticDto extends InventoryAnalyticDto {
  const factory _InventoryAnalyticDto({
    @JsonKey(name: "summary") final InventorySummaryDto? summary,
    @JsonKey(name: "products") final List<InventoryProductDto>? products,
    @JsonKey(name: "ingredients")
    final List<InventoryIngredientDto>? ingredients,
  }) = _$InventoryAnalyticDtoImpl;
  const _InventoryAnalyticDto._() : super._();

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

  @override
  @JsonKey(name: "summary")
  InventorySummaryDto? get summary;
  @override
  @JsonKey(name: "products")
  List<InventoryProductDto>? get products;
  @override
  @JsonKey(name: "ingredients")
  List<InventoryIngredientDto>? get ingredients;

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

InventorySummaryDto _$InventorySummaryDtoFromJson(Map<String, dynamic> json) {
  return _InventorySummaryDto.fromJson(json);
}

/// @nodoc
mixin _$InventorySummaryDto {
  @JsonKey(name: "total_products")
  int? get totalProducts => throw _privateConstructorUsedError;
  @JsonKey(name: "total_ingredients")
  int? get totalIngredients => throw _privateConstructorUsedError;
  @JsonKey(name: "total_value")
  int? get totalValue => throw _privateConstructorUsedError;
  @JsonKey(name: "low_stock_products")
  int? get lowStockProducts => throw _privateConstructorUsedError;
  @JsonKey(name: "low_stock_ingredients")
  int? get lowStockIngredients => throw _privateConstructorUsedError;
  @JsonKey(name: "zero_stock_products")
  int? get zeroStockProducts => throw _privateConstructorUsedError;
  @JsonKey(name: "zero_stock_ingredients")
  int? get zeroStockIngredients => throw _privateConstructorUsedError;
  @JsonKey(name: "total_sold_products")
  int? get totalSoldProducts => throw _privateConstructorUsedError;
  @JsonKey(name: "total_sold_ingredients")
  int? get totalSoldIngredients => throw _privateConstructorUsedError;
  @JsonKey(name: "outlet_id")
  String? get outletId => throw _privateConstructorUsedError;
  @JsonKey(name: "outlet_name")
  String? get outletName => throw _privateConstructorUsedError;
  @JsonKey(name: "generated_at")
  String? get generatedAt => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $InventorySummaryDtoCopyWith<$Res> {
  factory $InventorySummaryDtoCopyWith(
    InventorySummaryDto value,
    $Res Function(InventorySummaryDto) then,
  ) = _$InventorySummaryDtoCopyWithImpl<$Res, InventorySummaryDto>;
  @useResult
  $Res call({
    @JsonKey(name: "total_products") int? totalProducts,
    @JsonKey(name: "total_ingredients") int? totalIngredients,
    @JsonKey(name: "total_value") int? totalValue,
    @JsonKey(name: "low_stock_products") int? lowStockProducts,
    @JsonKey(name: "low_stock_ingredients") int? lowStockIngredients,
    @JsonKey(name: "zero_stock_products") int? zeroStockProducts,
    @JsonKey(name: "zero_stock_ingredients") int? zeroStockIngredients,
    @JsonKey(name: "total_sold_products") int? totalSoldProducts,
    @JsonKey(name: "total_sold_ingredients") int? totalSoldIngredients,
    @JsonKey(name: "outlet_id") String? outletId,
    @JsonKey(name: "outlet_name") String? outletName,
    @JsonKey(name: "generated_at") String? generatedAt,
  });
}

/// @nodoc
class _$InventorySummaryDtoCopyWithImpl<$Res, $Val extends InventorySummaryDto>
    implements $InventorySummaryDtoCopyWith<$Res> {
  _$InventorySummaryDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of InventorySummaryDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? totalProducts = freezed,
    Object? totalIngredients = freezed,
    Object? totalValue = freezed,
    Object? lowStockProducts = freezed,
    Object? lowStockIngredients = freezed,
    Object? zeroStockProducts = freezed,
    Object? zeroStockIngredients = freezed,
    Object? totalSoldProducts = freezed,
    Object? totalSoldIngredients = freezed,
    Object? outletId = freezed,
    Object? outletName = freezed,
    Object? generatedAt = freezed,
  }) {
    return _then(
      _value.copyWith(
            totalProducts: freezed == totalProducts
                ? _value.totalProducts
                : totalProducts // ignore: cast_nullable_to_non_nullable
                      as int?,
            totalIngredients: freezed == totalIngredients
                ? _value.totalIngredients
                : totalIngredients // ignore: cast_nullable_to_non_nullable
                      as int?,
            totalValue: freezed == totalValue
                ? _value.totalValue
                : totalValue // ignore: cast_nullable_to_non_nullable
                      as int?,
            lowStockProducts: freezed == lowStockProducts
                ? _value.lowStockProducts
                : lowStockProducts // ignore: cast_nullable_to_non_nullable
                      as int?,
            lowStockIngredients: freezed == lowStockIngredients
                ? _value.lowStockIngredients
                : lowStockIngredients // ignore: cast_nullable_to_non_nullable
                      as int?,
            zeroStockProducts: freezed == zeroStockProducts
                ? _value.zeroStockProducts
                : zeroStockProducts // ignore: cast_nullable_to_non_nullable
                      as int?,
            zeroStockIngredients: freezed == zeroStockIngredients
                ? _value.zeroStockIngredients
                : zeroStockIngredients // ignore: cast_nullable_to_non_nullable
                      as int?,
            totalSoldProducts: freezed == totalSoldProducts
                ? _value.totalSoldProducts
                : totalSoldProducts // ignore: cast_nullable_to_non_nullable
                      as int?,
            totalSoldIngredients: freezed == totalSoldIngredients
                ? _value.totalSoldIngredients
                : totalSoldIngredients // ignore: cast_nullable_to_non_nullable
                      as int?,
            outletId: freezed == outletId
                ? _value.outletId
                : outletId // ignore: cast_nullable_to_non_nullable
                      as String?,
            outletName: freezed == outletName
                ? _value.outletName
                : outletName // ignore: cast_nullable_to_non_nullable
                      as String?,
            generatedAt: freezed == generatedAt
                ? _value.generatedAt
                : generatedAt // ignore: cast_nullable_to_non_nullable
                      as String?,
          )
          as $Val,
    );
  }
}

/// @nodoc
abstract class _$$InventorySummaryDtoImplCopyWith<$Res>
    implements $InventorySummaryDtoCopyWith<$Res> {
  factory _$$InventorySummaryDtoImplCopyWith(
    _$InventorySummaryDtoImpl value,
    $Res Function(_$InventorySummaryDtoImpl) then,
  ) = __$$InventorySummaryDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: "total_products") int? totalProducts,
    @JsonKey(name: "total_ingredients") int? totalIngredients,
    @JsonKey(name: "total_value") int? totalValue,
    @JsonKey(name: "low_stock_products") int? lowStockProducts,
    @JsonKey(name: "low_stock_ingredients") int? lowStockIngredients,
    @JsonKey(name: "zero_stock_products") int? zeroStockProducts,
    @JsonKey(name: "zero_stock_ingredients") int? zeroStockIngredients,
    @JsonKey(name: "total_sold_products") int? totalSoldProducts,
    @JsonKey(name: "total_sold_ingredients") int? totalSoldIngredients,
    @JsonKey(name: "outlet_id") String? outletId,
    @JsonKey(name: "outlet_name") String? outletName,
    @JsonKey(name: "generated_at") String? generatedAt,
  });
}

/// @nodoc
class __$$InventorySummaryDtoImplCopyWithImpl<$Res>
    extends _$InventorySummaryDtoCopyWithImpl<$Res, _$InventorySummaryDtoImpl>
    implements _$$InventorySummaryDtoImplCopyWith<$Res> {
  __$$InventorySummaryDtoImplCopyWithImpl(
    _$InventorySummaryDtoImpl _value,
    $Res Function(_$InventorySummaryDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of InventorySummaryDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? totalProducts = freezed,
    Object? totalIngredients = freezed,
    Object? totalValue = freezed,
    Object? lowStockProducts = freezed,
    Object? lowStockIngredients = freezed,
    Object? zeroStockProducts = freezed,
    Object? zeroStockIngredients = freezed,
    Object? totalSoldProducts = freezed,
    Object? totalSoldIngredients = freezed,
    Object? outletId = freezed,
    Object? outletName = freezed,
    Object? generatedAt = freezed,
  }) {
    return _then(
      _$InventorySummaryDtoImpl(
        totalProducts: freezed == totalProducts
            ? _value.totalProducts
            : totalProducts // ignore: cast_nullable_to_non_nullable
                  as int?,
        totalIngredients: freezed == totalIngredients
            ? _value.totalIngredients
            : totalIngredients // ignore: cast_nullable_to_non_nullable
                  as int?,
        totalValue: freezed == totalValue
            ? _value.totalValue
            : totalValue // ignore: cast_nullable_to_non_nullable
                  as int?,
        lowStockProducts: freezed == lowStockProducts
            ? _value.lowStockProducts
            : lowStockProducts // ignore: cast_nullable_to_non_nullable
                  as int?,
        lowStockIngredients: freezed == lowStockIngredients
            ? _value.lowStockIngredients
            : lowStockIngredients // ignore: cast_nullable_to_non_nullable
                  as int?,
        zeroStockProducts: freezed == zeroStockProducts
            ? _value.zeroStockProducts
            : zeroStockProducts // ignore: cast_nullable_to_non_nullable
                  as int?,
        zeroStockIngredients: freezed == zeroStockIngredients
            ? _value.zeroStockIngredients
            : zeroStockIngredients // ignore: cast_nullable_to_non_nullable
                  as int?,
        totalSoldProducts: freezed == totalSoldProducts
            ? _value.totalSoldProducts
            : totalSoldProducts // ignore: cast_nullable_to_non_nullable
                  as int?,
        totalSoldIngredients: freezed == totalSoldIngredients
            ? _value.totalSoldIngredients
            : totalSoldIngredients // ignore: cast_nullable_to_non_nullable
                  as int?,
        outletId: freezed == outletId
            ? _value.outletId
            : outletId // ignore: cast_nullable_to_non_nullable
                  as String?,
        outletName: freezed == outletName
            ? _value.outletName
            : outletName // ignore: cast_nullable_to_non_nullable
                  as String?,
        generatedAt: freezed == generatedAt
            ? _value.generatedAt
            : generatedAt // ignore: cast_nullable_to_non_nullable
                  as String?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$InventorySummaryDtoImpl implements _InventorySummaryDto {
  const _$InventorySummaryDtoImpl({
    @JsonKey(name: "total_products") this.totalProducts,
    @JsonKey(name: "total_ingredients") this.totalIngredients,
    @JsonKey(name: "total_value") this.totalValue,
    @JsonKey(name: "low_stock_products") this.lowStockProducts,
    @JsonKey(name: "low_stock_ingredients") this.lowStockIngredients,
    @JsonKey(name: "zero_stock_products") this.zeroStockProducts,
    @JsonKey(name: "zero_stock_ingredients") this.zeroStockIngredients,
    @JsonKey(name: "total_sold_products") this.totalSoldProducts,
    @JsonKey(name: "total_sold_ingredients") this.totalSoldIngredients,
    @JsonKey(name: "outlet_id") this.outletId,
    @JsonKey(name: "outlet_name") this.outletName,
    @JsonKey(name: "generated_at") this.generatedAt,
  });

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

  @override
  @JsonKey(name: "total_products")
  final int? totalProducts;
  @override
  @JsonKey(name: "total_ingredients")
  final int? totalIngredients;
  @override
  @JsonKey(name: "total_value")
  final int? totalValue;
  @override
  @JsonKey(name: "low_stock_products")
  final int? lowStockProducts;
  @override
  @JsonKey(name: "low_stock_ingredients")
  final int? lowStockIngredients;
  @override
  @JsonKey(name: "zero_stock_products")
  final int? zeroStockProducts;
  @override
  @JsonKey(name: "zero_stock_ingredients")
  final int? zeroStockIngredients;
  @override
  @JsonKey(name: "total_sold_products")
  final int? totalSoldProducts;
  @override
  @JsonKey(name: "total_sold_ingredients")
  final int? totalSoldIngredients;
  @override
  @JsonKey(name: "outlet_id")
  final String? outletId;
  @override
  @JsonKey(name: "outlet_name")
  final String? outletName;
  @override
  @JsonKey(name: "generated_at")
  final String? generatedAt;

  @override
  String toString() {
    return 'InventorySummaryDto(totalProducts: $totalProducts, totalIngredients: $totalIngredients, totalValue: $totalValue, lowStockProducts: $lowStockProducts, lowStockIngredients: $lowStockIngredients, zeroStockProducts: $zeroStockProducts, zeroStockIngredients: $zeroStockIngredients, totalSoldProducts: $totalSoldProducts, totalSoldIngredients: $totalSoldIngredients, outletId: $outletId, outletName: $outletName, generatedAt: $generatedAt)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$InventorySummaryDtoImpl &&
            (identical(other.totalProducts, totalProducts) ||
                other.totalProducts == totalProducts) &&
            (identical(other.totalIngredients, totalIngredients) ||
                other.totalIngredients == totalIngredients) &&
            (identical(other.totalValue, totalValue) ||
                other.totalValue == totalValue) &&
            (identical(other.lowStockProducts, lowStockProducts) ||
                other.lowStockProducts == lowStockProducts) &&
            (identical(other.lowStockIngredients, lowStockIngredients) ||
                other.lowStockIngredients == lowStockIngredients) &&
            (identical(other.zeroStockProducts, zeroStockProducts) ||
                other.zeroStockProducts == zeroStockProducts) &&
            (identical(other.zeroStockIngredients, zeroStockIngredients) ||
                other.zeroStockIngredients == zeroStockIngredients) &&
            (identical(other.totalSoldProducts, totalSoldProducts) ||
                other.totalSoldProducts == totalSoldProducts) &&
            (identical(other.totalSoldIngredients, totalSoldIngredients) ||
                other.totalSoldIngredients == totalSoldIngredients) &&
            (identical(other.outletId, outletId) ||
                other.outletId == outletId) &&
            (identical(other.outletName, outletName) ||
                other.outletName == outletName) &&
            (identical(other.generatedAt, generatedAt) ||
                other.generatedAt == generatedAt));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    totalProducts,
    totalIngredients,
    totalValue,
    lowStockProducts,
    lowStockIngredients,
    zeroStockProducts,
    zeroStockIngredients,
    totalSoldProducts,
    totalSoldIngredients,
    outletId,
    outletName,
    generatedAt,
  );

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

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

abstract class _InventorySummaryDto implements InventorySummaryDto {
  const factory _InventorySummaryDto({
    @JsonKey(name: "total_products") final int? totalProducts,
    @JsonKey(name: "total_ingredients") final int? totalIngredients,
    @JsonKey(name: "total_value") final int? totalValue,
    @JsonKey(name: "low_stock_products") final int? lowStockProducts,
    @JsonKey(name: "low_stock_ingredients") final int? lowStockIngredients,
    @JsonKey(name: "zero_stock_products") final int? zeroStockProducts,
    @JsonKey(name: "zero_stock_ingredients") final int? zeroStockIngredients,
    @JsonKey(name: "total_sold_products") final int? totalSoldProducts,
    @JsonKey(name: "total_sold_ingredients") final int? totalSoldIngredients,
    @JsonKey(name: "outlet_id") final String? outletId,
    @JsonKey(name: "outlet_name") final String? outletName,
    @JsonKey(name: "generated_at") final String? generatedAt,
  }) = _$InventorySummaryDtoImpl;

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

  @override
  @JsonKey(name: "total_products")
  int? get totalProducts;
  @override
  @JsonKey(name: "total_ingredients")
  int? get totalIngredients;
  @override
  @JsonKey(name: "total_value")
  int? get totalValue;
  @override
  @JsonKey(name: "low_stock_products")
  int? get lowStockProducts;
  @override
  @JsonKey(name: "low_stock_ingredients")
  int? get lowStockIngredients;
  @override
  @JsonKey(name: "zero_stock_products")
  int? get zeroStockProducts;
  @override
  @JsonKey(name: "zero_stock_ingredients")
  int? get zeroStockIngredients;
  @override
  @JsonKey(name: "total_sold_products")
  int? get totalSoldProducts;
  @override
  @JsonKey(name: "total_sold_ingredients")
  int? get totalSoldIngredients;
  @override
  @JsonKey(name: "outlet_id")
  String? get outletId;
  @override
  @JsonKey(name: "outlet_name")
  String? get outletName;
  @override
  @JsonKey(name: "generated_at")
  String? get generatedAt;

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

InventoryProductDto _$InventoryProductDtoFromJson(Map<String, dynamic> json) {
  return _InventoryProductDto.fromJson(json);
}

/// @nodoc
mixin _$InventoryProductDto {
  @JsonKey(name: "id")
  String? get id => throw _privateConstructorUsedError;
  @JsonKey(name: "product_id")
  String? get productId => throw _privateConstructorUsedError;
  @JsonKey(name: "product_name")
  String? get productName => throw _privateConstructorUsedError;
  @JsonKey(name: "category_name")
  String? get categoryName => throw _privateConstructorUsedError;
  @JsonKey(name: "quantity")
  int? get quantity => throw _privateConstructorUsedError;
  @JsonKey(name: "reorder_level")
  int? get reorderLevel => throw _privateConstructorUsedError;
  @JsonKey(name: "unit_cost")
  int? get unitCost => throw _privateConstructorUsedError;
  @JsonKey(name: "total_value")
  int? get totalValue => throw _privateConstructorUsedError;
  @JsonKey(name: "total_in")
  int? get totalIn => throw _privateConstructorUsedError;
  @JsonKey(name: "total_out")
  int? get totalOut => throw _privateConstructorUsedError;
  @JsonKey(name: "is_low_stock")
  bool? get isLowStock => throw _privateConstructorUsedError;
  @JsonKey(name: "is_zero_stock")
  bool? get isZeroStock => throw _privateConstructorUsedError;
  @JsonKey(name: "updated_at")
  String? get updatedAt => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $InventoryProductDtoCopyWith<$Res> {
  factory $InventoryProductDtoCopyWith(
    InventoryProductDto value,
    $Res Function(InventoryProductDto) then,
  ) = _$InventoryProductDtoCopyWithImpl<$Res, InventoryProductDto>;
  @useResult
  $Res call({
    @JsonKey(name: "id") String? id,
    @JsonKey(name: "product_id") String? productId,
    @JsonKey(name: "product_name") String? productName,
    @JsonKey(name: "category_name") String? categoryName,
    @JsonKey(name: "quantity") int? quantity,
    @JsonKey(name: "reorder_level") int? reorderLevel,
    @JsonKey(name: "unit_cost") int? unitCost,
    @JsonKey(name: "total_value") int? totalValue,
    @JsonKey(name: "total_in") int? totalIn,
    @JsonKey(name: "total_out") int? totalOut,
    @JsonKey(name: "is_low_stock") bool? isLowStock,
    @JsonKey(name: "is_zero_stock") bool? isZeroStock,
    @JsonKey(name: "updated_at") String? updatedAt,
  });
}

/// @nodoc
class _$InventoryProductDtoCopyWithImpl<$Res, $Val extends InventoryProductDto>
    implements $InventoryProductDtoCopyWith<$Res> {
  _$InventoryProductDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of InventoryProductDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? id = freezed,
    Object? productId = freezed,
    Object? productName = freezed,
    Object? categoryName = freezed,
    Object? quantity = freezed,
    Object? reorderLevel = freezed,
    Object? unitCost = freezed,
    Object? totalValue = freezed,
    Object? totalIn = freezed,
    Object? totalOut = freezed,
    Object? isLowStock = freezed,
    Object? isZeroStock = freezed,
    Object? updatedAt = freezed,
  }) {
    return _then(
      _value.copyWith(
            id: freezed == id
                ? _value.id
                : id // ignore: cast_nullable_to_non_nullable
                      as String?,
            productId: freezed == productId
                ? _value.productId
                : productId // ignore: cast_nullable_to_non_nullable
                      as String?,
            productName: freezed == productName
                ? _value.productName
                : productName // ignore: cast_nullable_to_non_nullable
                      as String?,
            categoryName: freezed == categoryName
                ? _value.categoryName
                : categoryName // ignore: cast_nullable_to_non_nullable
                      as String?,
            quantity: freezed == quantity
                ? _value.quantity
                : quantity // ignore: cast_nullable_to_non_nullable
                      as int?,
            reorderLevel: freezed == reorderLevel
                ? _value.reorderLevel
                : reorderLevel // ignore: cast_nullable_to_non_nullable
                      as int?,
            unitCost: freezed == unitCost
                ? _value.unitCost
                : unitCost // ignore: cast_nullable_to_non_nullable
                      as int?,
            totalValue: freezed == totalValue
                ? _value.totalValue
                : totalValue // ignore: cast_nullable_to_non_nullable
                      as int?,
            totalIn: freezed == totalIn
                ? _value.totalIn
                : totalIn // ignore: cast_nullable_to_non_nullable
                      as int?,
            totalOut: freezed == totalOut
                ? _value.totalOut
                : totalOut // ignore: cast_nullable_to_non_nullable
                      as int?,
            isLowStock: freezed == isLowStock
                ? _value.isLowStock
                : isLowStock // ignore: cast_nullable_to_non_nullable
                      as bool?,
            isZeroStock: freezed == isZeroStock
                ? _value.isZeroStock
                : isZeroStock // ignore: cast_nullable_to_non_nullable
                      as bool?,
            updatedAt: freezed == updatedAt
                ? _value.updatedAt
                : updatedAt // ignore: cast_nullable_to_non_nullable
                      as String?,
          )
          as $Val,
    );
  }
}

/// @nodoc
abstract class _$$InventoryProductDtoImplCopyWith<$Res>
    implements $InventoryProductDtoCopyWith<$Res> {
  factory _$$InventoryProductDtoImplCopyWith(
    _$InventoryProductDtoImpl value,
    $Res Function(_$InventoryProductDtoImpl) then,
  ) = __$$InventoryProductDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: "id") String? id,
    @JsonKey(name: "product_id") String? productId,
    @JsonKey(name: "product_name") String? productName,
    @JsonKey(name: "category_name") String? categoryName,
    @JsonKey(name: "quantity") int? quantity,
    @JsonKey(name: "reorder_level") int? reorderLevel,
    @JsonKey(name: "unit_cost") int? unitCost,
    @JsonKey(name: "total_value") int? totalValue,
    @JsonKey(name: "total_in") int? totalIn,
    @JsonKey(name: "total_out") int? totalOut,
    @JsonKey(name: "is_low_stock") bool? isLowStock,
    @JsonKey(name: "is_zero_stock") bool? isZeroStock,
    @JsonKey(name: "updated_at") String? updatedAt,
  });
}

/// @nodoc
class __$$InventoryProductDtoImplCopyWithImpl<$Res>
    extends _$InventoryProductDtoCopyWithImpl<$Res, _$InventoryProductDtoImpl>
    implements _$$InventoryProductDtoImplCopyWith<$Res> {
  __$$InventoryProductDtoImplCopyWithImpl(
    _$InventoryProductDtoImpl _value,
    $Res Function(_$InventoryProductDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of InventoryProductDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? id = freezed,
    Object? productId = freezed,
    Object? productName = freezed,
    Object? categoryName = freezed,
    Object? quantity = freezed,
    Object? reorderLevel = freezed,
    Object? unitCost = freezed,
    Object? totalValue = freezed,
    Object? totalIn = freezed,
    Object? totalOut = freezed,
    Object? isLowStock = freezed,
    Object? isZeroStock = freezed,
    Object? updatedAt = freezed,
  }) {
    return _then(
      _$InventoryProductDtoImpl(
        id: freezed == id
            ? _value.id
            : id // ignore: cast_nullable_to_non_nullable
                  as String?,
        productId: freezed == productId
            ? _value.productId
            : productId // ignore: cast_nullable_to_non_nullable
                  as String?,
        productName: freezed == productName
            ? _value.productName
            : productName // ignore: cast_nullable_to_non_nullable
                  as String?,
        categoryName: freezed == categoryName
            ? _value.categoryName
            : categoryName // ignore: cast_nullable_to_non_nullable
                  as String?,
        quantity: freezed == quantity
            ? _value.quantity
            : quantity // ignore: cast_nullable_to_non_nullable
                  as int?,
        reorderLevel: freezed == reorderLevel
            ? _value.reorderLevel
            : reorderLevel // ignore: cast_nullable_to_non_nullable
                  as int?,
        unitCost: freezed == unitCost
            ? _value.unitCost
            : unitCost // ignore: cast_nullable_to_non_nullable
                  as int?,
        totalValue: freezed == totalValue
            ? _value.totalValue
            : totalValue // ignore: cast_nullable_to_non_nullable
                  as int?,
        totalIn: freezed == totalIn
            ? _value.totalIn
            : totalIn // ignore: cast_nullable_to_non_nullable
                  as int?,
        totalOut: freezed == totalOut
            ? _value.totalOut
            : totalOut // ignore: cast_nullable_to_non_nullable
                  as int?,
        isLowStock: freezed == isLowStock
            ? _value.isLowStock
            : isLowStock // ignore: cast_nullable_to_non_nullable
                  as bool?,
        isZeroStock: freezed == isZeroStock
            ? _value.isZeroStock
            : isZeroStock // ignore: cast_nullable_to_non_nullable
                  as bool?,
        updatedAt: freezed == updatedAt
            ? _value.updatedAt
            : updatedAt // ignore: cast_nullable_to_non_nullable
                  as String?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$InventoryProductDtoImpl implements _InventoryProductDto {
  const _$InventoryProductDtoImpl({
    @JsonKey(name: "id") this.id,
    @JsonKey(name: "product_id") this.productId,
    @JsonKey(name: "product_name") this.productName,
    @JsonKey(name: "category_name") this.categoryName,
    @JsonKey(name: "quantity") this.quantity,
    @JsonKey(name: "reorder_level") this.reorderLevel,
    @JsonKey(name: "unit_cost") this.unitCost,
    @JsonKey(name: "total_value") this.totalValue,
    @JsonKey(name: "total_in") this.totalIn,
    @JsonKey(name: "total_out") this.totalOut,
    @JsonKey(name: "is_low_stock") this.isLowStock,
    @JsonKey(name: "is_zero_stock") this.isZeroStock,
    @JsonKey(name: "updated_at") this.updatedAt,
  });

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

  @override
  @JsonKey(name: "id")
  final String? id;
  @override
  @JsonKey(name: "product_id")
  final String? productId;
  @override
  @JsonKey(name: "product_name")
  final String? productName;
  @override
  @JsonKey(name: "category_name")
  final String? categoryName;
  @override
  @JsonKey(name: "quantity")
  final int? quantity;
  @override
  @JsonKey(name: "reorder_level")
  final int? reorderLevel;
  @override
  @JsonKey(name: "unit_cost")
  final int? unitCost;
  @override
  @JsonKey(name: "total_value")
  final int? totalValue;
  @override
  @JsonKey(name: "total_in")
  final int? totalIn;
  @override
  @JsonKey(name: "total_out")
  final int? totalOut;
  @override
  @JsonKey(name: "is_low_stock")
  final bool? isLowStock;
  @override
  @JsonKey(name: "is_zero_stock")
  final bool? isZeroStock;
  @override
  @JsonKey(name: "updated_at")
  final String? updatedAt;

  @override
  String toString() {
    return 'InventoryProductDto(id: $id, productId: $productId, productName: $productName, categoryName: $categoryName, quantity: $quantity, reorderLevel: $reorderLevel, unitCost: $unitCost, totalValue: $totalValue, totalIn: $totalIn, totalOut: $totalOut, isLowStock: $isLowStock, isZeroStock: $isZeroStock, updatedAt: $updatedAt)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$InventoryProductDtoImpl &&
            (identical(other.id, id) || other.id == id) &&
            (identical(other.productId, productId) ||
                other.productId == productId) &&
            (identical(other.productName, productName) ||
                other.productName == productName) &&
            (identical(other.categoryName, categoryName) ||
                other.categoryName == categoryName) &&
            (identical(other.quantity, quantity) ||
                other.quantity == quantity) &&
            (identical(other.reorderLevel, reorderLevel) ||
                other.reorderLevel == reorderLevel) &&
            (identical(other.unitCost, unitCost) ||
                other.unitCost == unitCost) &&
            (identical(other.totalValue, totalValue) ||
                other.totalValue == totalValue) &&
            (identical(other.totalIn, totalIn) || other.totalIn == totalIn) &&
            (identical(other.totalOut, totalOut) ||
                other.totalOut == totalOut) &&
            (identical(other.isLowStock, isLowStock) ||
                other.isLowStock == isLowStock) &&
            (identical(other.isZeroStock, isZeroStock) ||
                other.isZeroStock == isZeroStock) &&
            (identical(other.updatedAt, updatedAt) ||
                other.updatedAt == updatedAt));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    id,
    productId,
    productName,
    categoryName,
    quantity,
    reorderLevel,
    unitCost,
    totalValue,
    totalIn,
    totalOut,
    isLowStock,
    isZeroStock,
    updatedAt,
  );

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

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

abstract class _InventoryProductDto implements InventoryProductDto {
  const factory _InventoryProductDto({
    @JsonKey(name: "id") final String? id,
    @JsonKey(name: "product_id") final String? productId,
    @JsonKey(name: "product_name") final String? productName,
    @JsonKey(name: "category_name") final String? categoryName,
    @JsonKey(name: "quantity") final int? quantity,
    @JsonKey(name: "reorder_level") final int? reorderLevel,
    @JsonKey(name: "unit_cost") final int? unitCost,
    @JsonKey(name: "total_value") final int? totalValue,
    @JsonKey(name: "total_in") final int? totalIn,
    @JsonKey(name: "total_out") final int? totalOut,
    @JsonKey(name: "is_low_stock") final bool? isLowStock,
    @JsonKey(name: "is_zero_stock") final bool? isZeroStock,
    @JsonKey(name: "updated_at") final String? updatedAt,
  }) = _$InventoryProductDtoImpl;

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

  @override
  @JsonKey(name: "id")
  String? get id;
  @override
  @JsonKey(name: "product_id")
  String? get productId;
  @override
  @JsonKey(name: "product_name")
  String? get productName;
  @override
  @JsonKey(name: "category_name")
  String? get categoryName;
  @override
  @JsonKey(name: "quantity")
  int? get quantity;
  @override
  @JsonKey(name: "reorder_level")
  int? get reorderLevel;
  @override
  @JsonKey(name: "unit_cost")
  int? get unitCost;
  @override
  @JsonKey(name: "total_value")
  int? get totalValue;
  @override
  @JsonKey(name: "total_in")
  int? get totalIn;
  @override
  @JsonKey(name: "total_out")
  int? get totalOut;
  @override
  @JsonKey(name: "is_low_stock")
  bool? get isLowStock;
  @override
  @JsonKey(name: "is_zero_stock")
  bool? get isZeroStock;
  @override
  @JsonKey(name: "updated_at")
  String? get updatedAt;

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

InventoryIngredientDto _$InventoryIngredientDtoFromJson(
  Map<String, dynamic> json,
) {
  return _InventoryIngredientDto.fromJson(json);
}

/// @nodoc
mixin _$InventoryIngredientDto {
  @JsonKey(name: "id")
  String? get id => throw _privateConstructorUsedError;
  @JsonKey(name: "ingredient_id")
  String? get ingredientId => throw _privateConstructorUsedError;
  @JsonKey(name: "ingredient_name")
  String? get ingredientName => throw _privateConstructorUsedError;
  @JsonKey(name: "unit_name")
  String? get unitName => throw _privateConstructorUsedError;
  @JsonKey(name: "quantity")
  int? get quantity => throw _privateConstructorUsedError;
  @JsonKey(name: "reorder_level")
  int? get reorderLevel => throw _privateConstructorUsedError;
  @JsonKey(name: "unit_cost")
  int? get unitCost => throw _privateConstructorUsedError;
  @JsonKey(name: "total_value")
  int? get totalValue => throw _privateConstructorUsedError;
  @JsonKey(name: "total_in")
  int? get totalIn => throw _privateConstructorUsedError;
  @JsonKey(name: "total_out")
  int? get totalOut => throw _privateConstructorUsedError;
  @JsonKey(name: "is_low_stock")
  bool? get isLowStock => throw _privateConstructorUsedError;
  @JsonKey(name: "is_zero_stock")
  bool? get isZeroStock => throw _privateConstructorUsedError;
  @JsonKey(name: "updated_at")
  String? get updatedAt => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $InventoryIngredientDtoCopyWith<$Res> {
  factory $InventoryIngredientDtoCopyWith(
    InventoryIngredientDto value,
    $Res Function(InventoryIngredientDto) then,
  ) = _$InventoryIngredientDtoCopyWithImpl<$Res, InventoryIngredientDto>;
  @useResult
  $Res call({
    @JsonKey(name: "id") String? id,
    @JsonKey(name: "ingredient_id") String? ingredientId,
    @JsonKey(name: "ingredient_name") String? ingredientName,
    @JsonKey(name: "unit_name") String? unitName,
    @JsonKey(name: "quantity") int? quantity,
    @JsonKey(name: "reorder_level") int? reorderLevel,
    @JsonKey(name: "unit_cost") int? unitCost,
    @JsonKey(name: "total_value") int? totalValue,
    @JsonKey(name: "total_in") int? totalIn,
    @JsonKey(name: "total_out") int? totalOut,
    @JsonKey(name: "is_low_stock") bool? isLowStock,
    @JsonKey(name: "is_zero_stock") bool? isZeroStock,
    @JsonKey(name: "updated_at") String? updatedAt,
  });
}

/// @nodoc
class _$InventoryIngredientDtoCopyWithImpl<
  $Res,
  $Val extends InventoryIngredientDto
>
    implements $InventoryIngredientDtoCopyWith<$Res> {
  _$InventoryIngredientDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of InventoryIngredientDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? id = freezed,
    Object? ingredientId = freezed,
    Object? ingredientName = freezed,
    Object? unitName = freezed,
    Object? quantity = freezed,
    Object? reorderLevel = freezed,
    Object? unitCost = freezed,
    Object? totalValue = freezed,
    Object? totalIn = freezed,
    Object? totalOut = freezed,
    Object? isLowStock = freezed,
    Object? isZeroStock = freezed,
    Object? updatedAt = freezed,
  }) {
    return _then(
      _value.copyWith(
            id: freezed == id
                ? _value.id
                : id // ignore: cast_nullable_to_non_nullable
                      as String?,
            ingredientId: freezed == ingredientId
                ? _value.ingredientId
                : ingredientId // ignore: cast_nullable_to_non_nullable
                      as String?,
            ingredientName: freezed == ingredientName
                ? _value.ingredientName
                : ingredientName // ignore: cast_nullable_to_non_nullable
                      as String?,
            unitName: freezed == unitName
                ? _value.unitName
                : unitName // ignore: cast_nullable_to_non_nullable
                      as String?,
            quantity: freezed == quantity
                ? _value.quantity
                : quantity // ignore: cast_nullable_to_non_nullable
                      as int?,
            reorderLevel: freezed == reorderLevel
                ? _value.reorderLevel
                : reorderLevel // ignore: cast_nullable_to_non_nullable
                      as int?,
            unitCost: freezed == unitCost
                ? _value.unitCost
                : unitCost // ignore: cast_nullable_to_non_nullable
                      as int?,
            totalValue: freezed == totalValue
                ? _value.totalValue
                : totalValue // ignore: cast_nullable_to_non_nullable
                      as int?,
            totalIn: freezed == totalIn
                ? _value.totalIn
                : totalIn // ignore: cast_nullable_to_non_nullable
                      as int?,
            totalOut: freezed == totalOut
                ? _value.totalOut
                : totalOut // ignore: cast_nullable_to_non_nullable
                      as int?,
            isLowStock: freezed == isLowStock
                ? _value.isLowStock
                : isLowStock // ignore: cast_nullable_to_non_nullable
                      as bool?,
            isZeroStock: freezed == isZeroStock
                ? _value.isZeroStock
                : isZeroStock // ignore: cast_nullable_to_non_nullable
                      as bool?,
            updatedAt: freezed == updatedAt
                ? _value.updatedAt
                : updatedAt // ignore: cast_nullable_to_non_nullable
                      as String?,
          )
          as $Val,
    );
  }
}

/// @nodoc
abstract class _$$InventoryIngredientDtoImplCopyWith<$Res>
    implements $InventoryIngredientDtoCopyWith<$Res> {
  factory _$$InventoryIngredientDtoImplCopyWith(
    _$InventoryIngredientDtoImpl value,
    $Res Function(_$InventoryIngredientDtoImpl) then,
  ) = __$$InventoryIngredientDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: "id") String? id,
    @JsonKey(name: "ingredient_id") String? ingredientId,
    @JsonKey(name: "ingredient_name") String? ingredientName,
    @JsonKey(name: "unit_name") String? unitName,
    @JsonKey(name: "quantity") int? quantity,
    @JsonKey(name: "reorder_level") int? reorderLevel,
    @JsonKey(name: "unit_cost") int? unitCost,
    @JsonKey(name: "total_value") int? totalValue,
    @JsonKey(name: "total_in") int? totalIn,
    @JsonKey(name: "total_out") int? totalOut,
    @JsonKey(name: "is_low_stock") bool? isLowStock,
    @JsonKey(name: "is_zero_stock") bool? isZeroStock,
    @JsonKey(name: "updated_at") String? updatedAt,
  });
}

/// @nodoc
class __$$InventoryIngredientDtoImplCopyWithImpl<$Res>
    extends
        _$InventoryIngredientDtoCopyWithImpl<$Res, _$InventoryIngredientDtoImpl>
    implements _$$InventoryIngredientDtoImplCopyWith<$Res> {
  __$$InventoryIngredientDtoImplCopyWithImpl(
    _$InventoryIngredientDtoImpl _value,
    $Res Function(_$InventoryIngredientDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of InventoryIngredientDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? id = freezed,
    Object? ingredientId = freezed,
    Object? ingredientName = freezed,
    Object? unitName = freezed,
    Object? quantity = freezed,
    Object? reorderLevel = freezed,
    Object? unitCost = freezed,
    Object? totalValue = freezed,
    Object? totalIn = freezed,
    Object? totalOut = freezed,
    Object? isLowStock = freezed,
    Object? isZeroStock = freezed,
    Object? updatedAt = freezed,
  }) {
    return _then(
      _$InventoryIngredientDtoImpl(
        id: freezed == id
            ? _value.id
            : id // ignore: cast_nullable_to_non_nullable
                  as String?,
        ingredientId: freezed == ingredientId
            ? _value.ingredientId
            : ingredientId // ignore: cast_nullable_to_non_nullable
                  as String?,
        ingredientName: freezed == ingredientName
            ? _value.ingredientName
            : ingredientName // ignore: cast_nullable_to_non_nullable
                  as String?,
        unitName: freezed == unitName
            ? _value.unitName
            : unitName // ignore: cast_nullable_to_non_nullable
                  as String?,
        quantity: freezed == quantity
            ? _value.quantity
            : quantity // ignore: cast_nullable_to_non_nullable
                  as int?,
        reorderLevel: freezed == reorderLevel
            ? _value.reorderLevel
            : reorderLevel // ignore: cast_nullable_to_non_nullable
                  as int?,
        unitCost: freezed == unitCost
            ? _value.unitCost
            : unitCost // ignore: cast_nullable_to_non_nullable
                  as int?,
        totalValue: freezed == totalValue
            ? _value.totalValue
            : totalValue // ignore: cast_nullable_to_non_nullable
                  as int?,
        totalIn: freezed == totalIn
            ? _value.totalIn
            : totalIn // ignore: cast_nullable_to_non_nullable
                  as int?,
        totalOut: freezed == totalOut
            ? _value.totalOut
            : totalOut // ignore: cast_nullable_to_non_nullable
                  as int?,
        isLowStock: freezed == isLowStock
            ? _value.isLowStock
            : isLowStock // ignore: cast_nullable_to_non_nullable
                  as bool?,
        isZeroStock: freezed == isZeroStock
            ? _value.isZeroStock
            : isZeroStock // ignore: cast_nullable_to_non_nullable
                  as bool?,
        updatedAt: freezed == updatedAt
            ? _value.updatedAt
            : updatedAt // ignore: cast_nullable_to_non_nullable
                  as String?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$InventoryIngredientDtoImpl implements _InventoryIngredientDto {
  const _$InventoryIngredientDtoImpl({
    @JsonKey(name: "id") this.id,
    @JsonKey(name: "ingredient_id") this.ingredientId,
    @JsonKey(name: "ingredient_name") this.ingredientName,
    @JsonKey(name: "unit_name") this.unitName,
    @JsonKey(name: "quantity") this.quantity,
    @JsonKey(name: "reorder_level") this.reorderLevel,
    @JsonKey(name: "unit_cost") this.unitCost,
    @JsonKey(name: "total_value") this.totalValue,
    @JsonKey(name: "total_in") this.totalIn,
    @JsonKey(name: "total_out") this.totalOut,
    @JsonKey(name: "is_low_stock") this.isLowStock,
    @JsonKey(name: "is_zero_stock") this.isZeroStock,
    @JsonKey(name: "updated_at") this.updatedAt,
  });

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

  @override
  @JsonKey(name: "id")
  final String? id;
  @override
  @JsonKey(name: "ingredient_id")
  final String? ingredientId;
  @override
  @JsonKey(name: "ingredient_name")
  final String? ingredientName;
  @override
  @JsonKey(name: "unit_name")
  final String? unitName;
  @override
  @JsonKey(name: "quantity")
  final int? quantity;
  @override
  @JsonKey(name: "reorder_level")
  final int? reorderLevel;
  @override
  @JsonKey(name: "unit_cost")
  final int? unitCost;
  @override
  @JsonKey(name: "total_value")
  final int? totalValue;
  @override
  @JsonKey(name: "total_in")
  final int? totalIn;
  @override
  @JsonKey(name: "total_out")
  final int? totalOut;
  @override
  @JsonKey(name: "is_low_stock")
  final bool? isLowStock;
  @override
  @JsonKey(name: "is_zero_stock")
  final bool? isZeroStock;
  @override
  @JsonKey(name: "updated_at")
  final String? updatedAt;

  @override
  String toString() {
    return 'InventoryIngredientDto(id: $id, ingredientId: $ingredientId, ingredientName: $ingredientName, unitName: $unitName, quantity: $quantity, reorderLevel: $reorderLevel, unitCost: $unitCost, totalValue: $totalValue, totalIn: $totalIn, totalOut: $totalOut, isLowStock: $isLowStock, isZeroStock: $isZeroStock, updatedAt: $updatedAt)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$InventoryIngredientDtoImpl &&
            (identical(other.id, id) || other.id == id) &&
            (identical(other.ingredientId, ingredientId) ||
                other.ingredientId == ingredientId) &&
            (identical(other.ingredientName, ingredientName) ||
                other.ingredientName == ingredientName) &&
            (identical(other.unitName, unitName) ||
                other.unitName == unitName) &&
            (identical(other.quantity, quantity) ||
                other.quantity == quantity) &&
            (identical(other.reorderLevel, reorderLevel) ||
                other.reorderLevel == reorderLevel) &&
            (identical(other.unitCost, unitCost) ||
                other.unitCost == unitCost) &&
            (identical(other.totalValue, totalValue) ||
                other.totalValue == totalValue) &&
            (identical(other.totalIn, totalIn) || other.totalIn == totalIn) &&
            (identical(other.totalOut, totalOut) ||
                other.totalOut == totalOut) &&
            (identical(other.isLowStock, isLowStock) ||
                other.isLowStock == isLowStock) &&
            (identical(other.isZeroStock, isZeroStock) ||
                other.isZeroStock == isZeroStock) &&
            (identical(other.updatedAt, updatedAt) ||
                other.updatedAt == updatedAt));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    id,
    ingredientId,
    ingredientName,
    unitName,
    quantity,
    reorderLevel,
    unitCost,
    totalValue,
    totalIn,
    totalOut,
    isLowStock,
    isZeroStock,
    updatedAt,
  );

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

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

abstract class _InventoryIngredientDto implements InventoryIngredientDto {
  const factory _InventoryIngredientDto({
    @JsonKey(name: "id") final String? id,
    @JsonKey(name: "ingredient_id") final String? ingredientId,
    @JsonKey(name: "ingredient_name") final String? ingredientName,
    @JsonKey(name: "unit_name") final String? unitName,
    @JsonKey(name: "quantity") final int? quantity,
    @JsonKey(name: "reorder_level") final int? reorderLevel,
    @JsonKey(name: "unit_cost") final int? unitCost,
    @JsonKey(name: "total_value") final int? totalValue,
    @JsonKey(name: "total_in") final int? totalIn,
    @JsonKey(name: "total_out") final int? totalOut,
    @JsonKey(name: "is_low_stock") final bool? isLowStock,
    @JsonKey(name: "is_zero_stock") final bool? isZeroStock,
    @JsonKey(name: "updated_at") final String? updatedAt,
  }) = _$InventoryIngredientDtoImpl;

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

  @override
  @JsonKey(name: "id")
  String? get id;
  @override
  @JsonKey(name: "ingredient_id")
  String? get ingredientId;
  @override
  @JsonKey(name: "ingredient_name")
  String? get ingredientName;
  @override
  @JsonKey(name: "unit_name")
  String? get unitName;
  @override
  @JsonKey(name: "quantity")
  int? get quantity;
  @override
  @JsonKey(name: "reorder_level")
  int? get reorderLevel;
  @override
  @JsonKey(name: "unit_cost")
  int? get unitCost;
  @override
  @JsonKey(name: "total_value")
  int? get totalValue;
  @override
  @JsonKey(name: "total_in")
  int? get totalIn;
  @override
  @JsonKey(name: "total_out")
  int? get totalOut;
  @override
  @JsonKey(name: "is_low_stock")
  bool? get isLowStock;
  @override
  @JsonKey(name: "is_zero_stock")
  bool? get isZeroStock;
  @override
  @JsonKey(name: "updated_at")
  String? get updatedAt;

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

DashboardAnalyticDto _$DashboardAnalyticDtoFromJson(Map<String, dynamic> json) {
  return _DashboardAnalyticDto.fromJson(json);
}

/// @nodoc
mixin _$DashboardAnalyticDto {
  @JsonKey(name: 'organization_id')
  String? get organizationId => throw _privateConstructorUsedError;
  @JsonKey(name: 'outlet_id')
  String? get outletId => throw _privateConstructorUsedError;
  @JsonKey(name: 'outlet_name')
  String? get outletName => throw _privateConstructorUsedError;
  @JsonKey(name: 'date_from')
  String? get dateFrom => throw _privateConstructorUsedError;
  @JsonKey(name: 'date_to')
  String? get dateTo => throw _privateConstructorUsedError;
  @JsonKey(name: 'overview')
  DashboardOverviewDto? get overview => throw _privateConstructorUsedError;
  @JsonKey(name: 'top_products')
  List<DashboardTopProductDto>? get topProducts =>
      throw _privateConstructorUsedError;
  @JsonKey(name: 'payment_methods')
  List<DashboardPaymentMethodDto>? get paymentMethods =>
      throw _privateConstructorUsedError;
  @JsonKey(name: 'recent_sales')
  List<DashboardRecentSaleDto>? get recentSales =>
      throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $DashboardAnalyticDtoCopyWith<$Res> {
  factory $DashboardAnalyticDtoCopyWith(
    DashboardAnalyticDto value,
    $Res Function(DashboardAnalyticDto) then,
  ) = _$DashboardAnalyticDtoCopyWithImpl<$Res, DashboardAnalyticDto>;
  @useResult
  $Res call({
    @JsonKey(name: 'organization_id') String? organizationId,
    @JsonKey(name: 'outlet_id') String? outletId,
    @JsonKey(name: 'outlet_name') String? outletName,
    @JsonKey(name: 'date_from') String? dateFrom,
    @JsonKey(name: 'date_to') String? dateTo,
    @JsonKey(name: 'overview') DashboardOverviewDto? overview,
    @JsonKey(name: 'top_products') List<DashboardTopProductDto>? topProducts,
    @JsonKey(name: 'payment_methods')
    List<DashboardPaymentMethodDto>? paymentMethods,
    @JsonKey(name: 'recent_sales') List<DashboardRecentSaleDto>? recentSales,
  });

  $DashboardOverviewDtoCopyWith<$Res>? get overview;
}

/// @nodoc
class _$DashboardAnalyticDtoCopyWithImpl<
  $Res,
  $Val extends DashboardAnalyticDto
>
    implements $DashboardAnalyticDtoCopyWith<$Res> {
  _$DashboardAnalyticDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of DashboardAnalyticDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? organizationId = freezed,
    Object? outletId = freezed,
    Object? outletName = freezed,
    Object? dateFrom = freezed,
    Object? dateTo = freezed,
    Object? overview = freezed,
    Object? topProducts = freezed,
    Object? paymentMethods = freezed,
    Object? recentSales = freezed,
  }) {
    return _then(
      _value.copyWith(
            organizationId: freezed == organizationId
                ? _value.organizationId
                : organizationId // ignore: cast_nullable_to_non_nullable
                      as String?,
            outletId: freezed == outletId
                ? _value.outletId
                : outletId // ignore: cast_nullable_to_non_nullable
                      as String?,
            outletName: freezed == outletName
                ? _value.outletName
                : outletName // ignore: cast_nullable_to_non_nullable
                      as String?,
            dateFrom: freezed == dateFrom
                ? _value.dateFrom
                : dateFrom // ignore: cast_nullable_to_non_nullable
                      as String?,
            dateTo: freezed == dateTo
                ? _value.dateTo
                : dateTo // ignore: cast_nullable_to_non_nullable
                      as String?,
            overview: freezed == overview
                ? _value.overview
                : overview // ignore: cast_nullable_to_non_nullable
                      as DashboardOverviewDto?,
            topProducts: freezed == topProducts
                ? _value.topProducts
                : topProducts // ignore: cast_nullable_to_non_nullable
                      as List<DashboardTopProductDto>?,
            paymentMethods: freezed == paymentMethods
                ? _value.paymentMethods
                : paymentMethods // ignore: cast_nullable_to_non_nullable
                      as List<DashboardPaymentMethodDto>?,
            recentSales: freezed == recentSales
                ? _value.recentSales
                : recentSales // ignore: cast_nullable_to_non_nullable
                      as List<DashboardRecentSaleDto>?,
          )
          as $Val,
    );
  }

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

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

/// @nodoc
abstract class _$$DashboardAnalyticDtoImplCopyWith<$Res>
    implements $DashboardAnalyticDtoCopyWith<$Res> {
  factory _$$DashboardAnalyticDtoImplCopyWith(
    _$DashboardAnalyticDtoImpl value,
    $Res Function(_$DashboardAnalyticDtoImpl) then,
  ) = __$$DashboardAnalyticDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'organization_id') String? organizationId,
    @JsonKey(name: 'outlet_id') String? outletId,
    @JsonKey(name: 'outlet_name') String? outletName,
    @JsonKey(name: 'date_from') String? dateFrom,
    @JsonKey(name: 'date_to') String? dateTo,
    @JsonKey(name: 'overview') DashboardOverviewDto? overview,
    @JsonKey(name: 'top_products') List<DashboardTopProductDto>? topProducts,
    @JsonKey(name: 'payment_methods')
    List<DashboardPaymentMethodDto>? paymentMethods,
    @JsonKey(name: 'recent_sales') List<DashboardRecentSaleDto>? recentSales,
  });

  @override
  $DashboardOverviewDtoCopyWith<$Res>? get overview;
}

/// @nodoc
class __$$DashboardAnalyticDtoImplCopyWithImpl<$Res>
    extends _$DashboardAnalyticDtoCopyWithImpl<$Res, _$DashboardAnalyticDtoImpl>
    implements _$$DashboardAnalyticDtoImplCopyWith<$Res> {
  __$$DashboardAnalyticDtoImplCopyWithImpl(
    _$DashboardAnalyticDtoImpl _value,
    $Res Function(_$DashboardAnalyticDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of DashboardAnalyticDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? organizationId = freezed,
    Object? outletId = freezed,
    Object? outletName = freezed,
    Object? dateFrom = freezed,
    Object? dateTo = freezed,
    Object? overview = freezed,
    Object? topProducts = freezed,
    Object? paymentMethods = freezed,
    Object? recentSales = freezed,
  }) {
    return _then(
      _$DashboardAnalyticDtoImpl(
        organizationId: freezed == organizationId
            ? _value.organizationId
            : organizationId // ignore: cast_nullable_to_non_nullable
                  as String?,
        outletId: freezed == outletId
            ? _value.outletId
            : outletId // ignore: cast_nullable_to_non_nullable
                  as String?,
        outletName: freezed == outletName
            ? _value.outletName
            : outletName // ignore: cast_nullable_to_non_nullable
                  as String?,
        dateFrom: freezed == dateFrom
            ? _value.dateFrom
            : dateFrom // ignore: cast_nullable_to_non_nullable
                  as String?,
        dateTo: freezed == dateTo
            ? _value.dateTo
            : dateTo // ignore: cast_nullable_to_non_nullable
                  as String?,
        overview: freezed == overview
            ? _value.overview
            : overview // ignore: cast_nullable_to_non_nullable
                  as DashboardOverviewDto?,
        topProducts: freezed == topProducts
            ? _value._topProducts
            : topProducts // ignore: cast_nullable_to_non_nullable
                  as List<DashboardTopProductDto>?,
        paymentMethods: freezed == paymentMethods
            ? _value._paymentMethods
            : paymentMethods // ignore: cast_nullable_to_non_nullable
                  as List<DashboardPaymentMethodDto>?,
        recentSales: freezed == recentSales
            ? _value._recentSales
            : recentSales // ignore: cast_nullable_to_non_nullable
                  as List<DashboardRecentSaleDto>?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$DashboardAnalyticDtoImpl extends _DashboardAnalyticDto {
  const _$DashboardAnalyticDtoImpl({
    @JsonKey(name: 'organization_id') this.organizationId,
    @JsonKey(name: 'outlet_id') this.outletId,
    @JsonKey(name: 'outlet_name') this.outletName,
    @JsonKey(name: 'date_from') this.dateFrom,
    @JsonKey(name: 'date_to') this.dateTo,
    @JsonKey(name: 'overview') this.overview,
    @JsonKey(name: 'top_products')
    final List<DashboardTopProductDto>? topProducts,
    @JsonKey(name: 'payment_methods')
    final List<DashboardPaymentMethodDto>? paymentMethods,
    @JsonKey(name: 'recent_sales')
    final List<DashboardRecentSaleDto>? recentSales,
  }) : _topProducts = topProducts,
       _paymentMethods = paymentMethods,
       _recentSales = recentSales,
       super._();

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

  @override
  @JsonKey(name: 'organization_id')
  final String? organizationId;
  @override
  @JsonKey(name: 'outlet_id')
  final String? outletId;
  @override
  @JsonKey(name: 'outlet_name')
  final String? outletName;
  @override
  @JsonKey(name: 'date_from')
  final String? dateFrom;
  @override
  @JsonKey(name: 'date_to')
  final String? dateTo;
  @override
  @JsonKey(name: 'overview')
  final DashboardOverviewDto? overview;
  final List<DashboardTopProductDto>? _topProducts;
  @override
  @JsonKey(name: 'top_products')
  List<DashboardTopProductDto>? get topProducts {
    final value = _topProducts;
    if (value == null) return null;
    if (_topProducts is EqualUnmodifiableListView) return _topProducts;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

  final List<DashboardPaymentMethodDto>? _paymentMethods;
  @override
  @JsonKey(name: 'payment_methods')
  List<DashboardPaymentMethodDto>? get paymentMethods {
    final value = _paymentMethods;
    if (value == null) return null;
    if (_paymentMethods is EqualUnmodifiableListView) return _paymentMethods;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

  final List<DashboardRecentSaleDto>? _recentSales;
  @override
  @JsonKey(name: 'recent_sales')
  List<DashboardRecentSaleDto>? get recentSales {
    final value = _recentSales;
    if (value == null) return null;
    if (_recentSales is EqualUnmodifiableListView) return _recentSales;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

  @override
  String toString() {
    return 'DashboardAnalyticDto(organizationId: $organizationId, outletId: $outletId, outletName: $outletName, dateFrom: $dateFrom, dateTo: $dateTo, overview: $overview, topProducts: $topProducts, paymentMethods: $paymentMethods, recentSales: $recentSales)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$DashboardAnalyticDtoImpl &&
            (identical(other.organizationId, organizationId) ||
                other.organizationId == organizationId) &&
            (identical(other.outletId, outletId) ||
                other.outletId == outletId) &&
            (identical(other.outletName, outletName) ||
                other.outletName == outletName) &&
            (identical(other.dateFrom, dateFrom) ||
                other.dateFrom == dateFrom) &&
            (identical(other.dateTo, dateTo) || other.dateTo == dateTo) &&
            (identical(other.overview, overview) ||
                other.overview == overview) &&
            const DeepCollectionEquality().equals(
              other._topProducts,
              _topProducts,
            ) &&
            const DeepCollectionEquality().equals(
              other._paymentMethods,
              _paymentMethods,
            ) &&
            const DeepCollectionEquality().equals(
              other._recentSales,
              _recentSales,
            ));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    organizationId,
    outletId,
    outletName,
    dateFrom,
    dateTo,
    overview,
    const DeepCollectionEquality().hash(_topProducts),
    const DeepCollectionEquality().hash(_paymentMethods),
    const DeepCollectionEquality().hash(_recentSales),
  );

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

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

abstract class _DashboardAnalyticDto extends DashboardAnalyticDto {
  const factory _DashboardAnalyticDto({
    @JsonKey(name: 'organization_id') final String? organizationId,
    @JsonKey(name: 'outlet_id') final String? outletId,
    @JsonKey(name: 'outlet_name') final String? outletName,
    @JsonKey(name: 'date_from') final String? dateFrom,
    @JsonKey(name: 'date_to') final String? dateTo,
    @JsonKey(name: 'overview') final DashboardOverviewDto? overview,
    @JsonKey(name: 'top_products')
    final List<DashboardTopProductDto>? topProducts,
    @JsonKey(name: 'payment_methods')
    final List<DashboardPaymentMethodDto>? paymentMethods,
    @JsonKey(name: 'recent_sales')
    final List<DashboardRecentSaleDto>? recentSales,
  }) = _$DashboardAnalyticDtoImpl;
  const _DashboardAnalyticDto._() : super._();

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

  @override
  @JsonKey(name: 'organization_id')
  String? get organizationId;
  @override
  @JsonKey(name: 'outlet_id')
  String? get outletId;
  @override
  @JsonKey(name: 'outlet_name')
  String? get outletName;
  @override
  @JsonKey(name: 'date_from')
  String? get dateFrom;
  @override
  @JsonKey(name: 'date_to')
  String? get dateTo;
  @override
  @JsonKey(name: 'overview')
  DashboardOverviewDto? get overview;
  @override
  @JsonKey(name: 'top_products')
  List<DashboardTopProductDto>? get topProducts;
  @override
  @JsonKey(name: 'payment_methods')
  List<DashboardPaymentMethodDto>? get paymentMethods;
  @override
  @JsonKey(name: 'recent_sales')
  List<DashboardRecentSaleDto>? get recentSales;

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

DashboardOverviewDto _$DashboardOverviewDtoFromJson(Map<String, dynamic> json) {
  return _DashboardOverviewDto.fromJson(json);
}

/// @nodoc
mixin _$DashboardOverviewDto {
  @JsonKey(name: 'total_sales')
  int? get totalSales => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_orders')
  int? get totalOrders => throw _privateConstructorUsedError;
  @JsonKey(name: 'average_order_value')
  double? get averageOrderValue => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_customers')
  int? get totalCustomers => throw _privateConstructorUsedError;
  @JsonKey(name: 'voided_orders')
  int? get voidedOrders => throw _privateConstructorUsedError;
  @JsonKey(name: 'refunded_orders')
  int? get refundedOrders => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_item_sold')
  int? get totalItemSold => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_low_stock')
  int? get totalLowStock => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_product_active')
  int? get totalProductActive => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $DashboardOverviewDtoCopyWith<$Res> {
  factory $DashboardOverviewDtoCopyWith(
    DashboardOverviewDto value,
    $Res Function(DashboardOverviewDto) then,
  ) = _$DashboardOverviewDtoCopyWithImpl<$Res, DashboardOverviewDto>;
  @useResult
  $Res call({
    @JsonKey(name: 'total_sales') int? totalSales,
    @JsonKey(name: 'total_orders') int? totalOrders,
    @JsonKey(name: 'average_order_value') double? averageOrderValue,
    @JsonKey(name: 'total_customers') int? totalCustomers,
    @JsonKey(name: 'voided_orders') int? voidedOrders,
    @JsonKey(name: 'refunded_orders') int? refundedOrders,
    @JsonKey(name: 'total_item_sold') int? totalItemSold,
    @JsonKey(name: 'total_low_stock') int? totalLowStock,
    @JsonKey(name: 'total_product_active') int? totalProductActive,
  });
}

/// @nodoc
class _$DashboardOverviewDtoCopyWithImpl<
  $Res,
  $Val extends DashboardOverviewDto
>
    implements $DashboardOverviewDtoCopyWith<$Res> {
  _$DashboardOverviewDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of DashboardOverviewDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? totalSales = freezed,
    Object? totalOrders = freezed,
    Object? averageOrderValue = freezed,
    Object? totalCustomers = freezed,
    Object? voidedOrders = freezed,
    Object? refundedOrders = freezed,
    Object? totalItemSold = freezed,
    Object? totalLowStock = freezed,
    Object? totalProductActive = freezed,
  }) {
    return _then(
      _value.copyWith(
            totalSales: freezed == totalSales
                ? _value.totalSales
                : totalSales // ignore: cast_nullable_to_non_nullable
                      as int?,
            totalOrders: freezed == totalOrders
                ? _value.totalOrders
                : totalOrders // ignore: cast_nullable_to_non_nullable
                      as int?,
            averageOrderValue: freezed == averageOrderValue
                ? _value.averageOrderValue
                : averageOrderValue // ignore: cast_nullable_to_non_nullable
                      as double?,
            totalCustomers: freezed == totalCustomers
                ? _value.totalCustomers
                : totalCustomers // ignore: cast_nullable_to_non_nullable
                      as int?,
            voidedOrders: freezed == voidedOrders
                ? _value.voidedOrders
                : voidedOrders // ignore: cast_nullable_to_non_nullable
                      as int?,
            refundedOrders: freezed == refundedOrders
                ? _value.refundedOrders
                : refundedOrders // ignore: cast_nullable_to_non_nullable
                      as int?,
            totalItemSold: freezed == totalItemSold
                ? _value.totalItemSold
                : totalItemSold // ignore: cast_nullable_to_non_nullable
                      as int?,
            totalLowStock: freezed == totalLowStock
                ? _value.totalLowStock
                : totalLowStock // ignore: cast_nullable_to_non_nullable
                      as int?,
            totalProductActive: freezed == totalProductActive
                ? _value.totalProductActive
                : totalProductActive // ignore: cast_nullable_to_non_nullable
                      as int?,
          )
          as $Val,
    );
  }
}

/// @nodoc
abstract class _$$DashboardOverviewDtoImplCopyWith<$Res>
    implements $DashboardOverviewDtoCopyWith<$Res> {
  factory _$$DashboardOverviewDtoImplCopyWith(
    _$DashboardOverviewDtoImpl value,
    $Res Function(_$DashboardOverviewDtoImpl) then,
  ) = __$$DashboardOverviewDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'total_sales') int? totalSales,
    @JsonKey(name: 'total_orders') int? totalOrders,
    @JsonKey(name: 'average_order_value') double? averageOrderValue,
    @JsonKey(name: 'total_customers') int? totalCustomers,
    @JsonKey(name: 'voided_orders') int? voidedOrders,
    @JsonKey(name: 'refunded_orders') int? refundedOrders,
    @JsonKey(name: 'total_item_sold') int? totalItemSold,
    @JsonKey(name: 'total_low_stock') int? totalLowStock,
    @JsonKey(name: 'total_product_active') int? totalProductActive,
  });
}

/// @nodoc
class __$$DashboardOverviewDtoImplCopyWithImpl<$Res>
    extends _$DashboardOverviewDtoCopyWithImpl<$Res, _$DashboardOverviewDtoImpl>
    implements _$$DashboardOverviewDtoImplCopyWith<$Res> {
  __$$DashboardOverviewDtoImplCopyWithImpl(
    _$DashboardOverviewDtoImpl _value,
    $Res Function(_$DashboardOverviewDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of DashboardOverviewDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? totalSales = freezed,
    Object? totalOrders = freezed,
    Object? averageOrderValue = freezed,
    Object? totalCustomers = freezed,
    Object? voidedOrders = freezed,
    Object? refundedOrders = freezed,
    Object? totalItemSold = freezed,
    Object? totalLowStock = freezed,
    Object? totalProductActive = freezed,
  }) {
    return _then(
      _$DashboardOverviewDtoImpl(
        totalSales: freezed == totalSales
            ? _value.totalSales
            : totalSales // ignore: cast_nullable_to_non_nullable
                  as int?,
        totalOrders: freezed == totalOrders
            ? _value.totalOrders
            : totalOrders // ignore: cast_nullable_to_non_nullable
                  as int?,
        averageOrderValue: freezed == averageOrderValue
            ? _value.averageOrderValue
            : averageOrderValue // ignore: cast_nullable_to_non_nullable
                  as double?,
        totalCustomers: freezed == totalCustomers
            ? _value.totalCustomers
            : totalCustomers // ignore: cast_nullable_to_non_nullable
                  as int?,
        voidedOrders: freezed == voidedOrders
            ? _value.voidedOrders
            : voidedOrders // ignore: cast_nullable_to_non_nullable
                  as int?,
        refundedOrders: freezed == refundedOrders
            ? _value.refundedOrders
            : refundedOrders // ignore: cast_nullable_to_non_nullable
                  as int?,
        totalItemSold: freezed == totalItemSold
            ? _value.totalItemSold
            : totalItemSold // ignore: cast_nullable_to_non_nullable
                  as int?,
        totalLowStock: freezed == totalLowStock
            ? _value.totalLowStock
            : totalLowStock // ignore: cast_nullable_to_non_nullable
                  as int?,
        totalProductActive: freezed == totalProductActive
            ? _value.totalProductActive
            : totalProductActive // ignore: cast_nullable_to_non_nullable
                  as int?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$DashboardOverviewDtoImpl extends _DashboardOverviewDto {
  const _$DashboardOverviewDtoImpl({
    @JsonKey(name: 'total_sales') this.totalSales,
    @JsonKey(name: 'total_orders') this.totalOrders,
    @JsonKey(name: 'average_order_value') this.averageOrderValue,
    @JsonKey(name: 'total_customers') this.totalCustomers,
    @JsonKey(name: 'voided_orders') this.voidedOrders,
    @JsonKey(name: 'refunded_orders') this.refundedOrders,
    @JsonKey(name: 'total_item_sold') this.totalItemSold,
    @JsonKey(name: 'total_low_stock') this.totalLowStock,
    @JsonKey(name: 'total_product_active') this.totalProductActive,
  }) : super._();

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

  @override
  @JsonKey(name: 'total_sales')
  final int? totalSales;
  @override
  @JsonKey(name: 'total_orders')
  final int? totalOrders;
  @override
  @JsonKey(name: 'average_order_value')
  final double? averageOrderValue;
  @override
  @JsonKey(name: 'total_customers')
  final int? totalCustomers;
  @override
  @JsonKey(name: 'voided_orders')
  final int? voidedOrders;
  @override
  @JsonKey(name: 'refunded_orders')
  final int? refundedOrders;
  @override
  @JsonKey(name: 'total_item_sold')
  final int? totalItemSold;
  @override
  @JsonKey(name: 'total_low_stock')
  final int? totalLowStock;
  @override
  @JsonKey(name: 'total_product_active')
  final int? totalProductActive;

  @override
  String toString() {
    return 'DashboardOverviewDto(totalSales: $totalSales, totalOrders: $totalOrders, averageOrderValue: $averageOrderValue, totalCustomers: $totalCustomers, voidedOrders: $voidedOrders, refundedOrders: $refundedOrders, totalItemSold: $totalItemSold, totalLowStock: $totalLowStock, totalProductActive: $totalProductActive)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$DashboardOverviewDtoImpl &&
            (identical(other.totalSales, totalSales) ||
                other.totalSales == totalSales) &&
            (identical(other.totalOrders, totalOrders) ||
                other.totalOrders == totalOrders) &&
            (identical(other.averageOrderValue, averageOrderValue) ||
                other.averageOrderValue == averageOrderValue) &&
            (identical(other.totalCustomers, totalCustomers) ||
                other.totalCustomers == totalCustomers) &&
            (identical(other.voidedOrders, voidedOrders) ||
                other.voidedOrders == voidedOrders) &&
            (identical(other.refundedOrders, refundedOrders) ||
                other.refundedOrders == refundedOrders) &&
            (identical(other.totalItemSold, totalItemSold) ||
                other.totalItemSold == totalItemSold) &&
            (identical(other.totalLowStock, totalLowStock) ||
                other.totalLowStock == totalLowStock) &&
            (identical(other.totalProductActive, totalProductActive) ||
                other.totalProductActive == totalProductActive));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    totalSales,
    totalOrders,
    averageOrderValue,
    totalCustomers,
    voidedOrders,
    refundedOrders,
    totalItemSold,
    totalLowStock,
    totalProductActive,
  );

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

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

abstract class _DashboardOverviewDto extends DashboardOverviewDto {
  const factory _DashboardOverviewDto({
    @JsonKey(name: 'total_sales') final int? totalSales,
    @JsonKey(name: 'total_orders') final int? totalOrders,
    @JsonKey(name: 'average_order_value') final double? averageOrderValue,
    @JsonKey(name: 'total_customers') final int? totalCustomers,
    @JsonKey(name: 'voided_orders') final int? voidedOrders,
    @JsonKey(name: 'refunded_orders') final int? refundedOrders,
    @JsonKey(name: 'total_item_sold') final int? totalItemSold,
    @JsonKey(name: 'total_low_stock') final int? totalLowStock,
    @JsonKey(name: 'total_product_active') final int? totalProductActive,
  }) = _$DashboardOverviewDtoImpl;
  const _DashboardOverviewDto._() : super._();

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

  @override
  @JsonKey(name: 'total_sales')
  int? get totalSales;
  @override
  @JsonKey(name: 'total_orders')
  int? get totalOrders;
  @override
  @JsonKey(name: 'average_order_value')
  double? get averageOrderValue;
  @override
  @JsonKey(name: 'total_customers')
  int? get totalCustomers;
  @override
  @JsonKey(name: 'voided_orders')
  int? get voidedOrders;
  @override
  @JsonKey(name: 'refunded_orders')
  int? get refundedOrders;
  @override
  @JsonKey(name: 'total_item_sold')
  int? get totalItemSold;
  @override
  @JsonKey(name: 'total_low_stock')
  int? get totalLowStock;
  @override
  @JsonKey(name: 'total_product_active')
  int? get totalProductActive;

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

DashboardTopProductDto _$DashboardTopProductDtoFromJson(
  Map<String, dynamic> json,
) {
  return _DashboardTopProductDto.fromJson(json);
}

/// @nodoc
mixin _$DashboardTopProductDto {
  @JsonKey(name: 'product_id')
  String? get productId => throw _privateConstructorUsedError;
  @JsonKey(name: 'product_name')
  String? get productName => throw _privateConstructorUsedError;
  @JsonKey(name: 'category_id')
  String? get categoryId => throw _privateConstructorUsedError;
  @JsonKey(name: 'category_name')
  String? get categoryName => throw _privateConstructorUsedError;
  @JsonKey(name: 'quantity_sold')
  int? get quantitySold => throw _privateConstructorUsedError;
  @JsonKey(name: 'revenue')
  int? get revenue => throw _privateConstructorUsedError;
  @JsonKey(name: 'average_price')
  double? get averagePrice => throw _privateConstructorUsedError;
  @JsonKey(name: 'order_count')
  int? get orderCount => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $DashboardTopProductDtoCopyWith<$Res> {
  factory $DashboardTopProductDtoCopyWith(
    DashboardTopProductDto value,
    $Res Function(DashboardTopProductDto) then,
  ) = _$DashboardTopProductDtoCopyWithImpl<$Res, DashboardTopProductDto>;
  @useResult
  $Res call({
    @JsonKey(name: 'product_id') String? productId,
    @JsonKey(name: 'product_name') String? productName,
    @JsonKey(name: 'category_id') String? categoryId,
    @JsonKey(name: 'category_name') String? categoryName,
    @JsonKey(name: 'quantity_sold') int? quantitySold,
    @JsonKey(name: 'revenue') int? revenue,
    @JsonKey(name: 'average_price') double? averagePrice,
    @JsonKey(name: 'order_count') int? orderCount,
  });
}

/// @nodoc
class _$DashboardTopProductDtoCopyWithImpl<
  $Res,
  $Val extends DashboardTopProductDto
>
    implements $DashboardTopProductDtoCopyWith<$Res> {
  _$DashboardTopProductDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of DashboardTopProductDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? productId = freezed,
    Object? productName = freezed,
    Object? categoryId = freezed,
    Object? categoryName = freezed,
    Object? quantitySold = freezed,
    Object? revenue = freezed,
    Object? averagePrice = freezed,
    Object? orderCount = freezed,
  }) {
    return _then(
      _value.copyWith(
            productId: freezed == productId
                ? _value.productId
                : productId // ignore: cast_nullable_to_non_nullable
                      as String?,
            productName: freezed == productName
                ? _value.productName
                : productName // ignore: cast_nullable_to_non_nullable
                      as String?,
            categoryId: freezed == categoryId
                ? _value.categoryId
                : categoryId // ignore: cast_nullable_to_non_nullable
                      as String?,
            categoryName: freezed == categoryName
                ? _value.categoryName
                : categoryName // ignore: cast_nullable_to_non_nullable
                      as String?,
            quantitySold: freezed == quantitySold
                ? _value.quantitySold
                : quantitySold // ignore: cast_nullable_to_non_nullable
                      as int?,
            revenue: freezed == revenue
                ? _value.revenue
                : revenue // ignore: cast_nullable_to_non_nullable
                      as int?,
            averagePrice: freezed == averagePrice
                ? _value.averagePrice
                : averagePrice // ignore: cast_nullable_to_non_nullable
                      as double?,
            orderCount: freezed == orderCount
                ? _value.orderCount
                : orderCount // ignore: cast_nullable_to_non_nullable
                      as int?,
          )
          as $Val,
    );
  }
}

/// @nodoc
abstract class _$$DashboardTopProductDtoImplCopyWith<$Res>
    implements $DashboardTopProductDtoCopyWith<$Res> {
  factory _$$DashboardTopProductDtoImplCopyWith(
    _$DashboardTopProductDtoImpl value,
    $Res Function(_$DashboardTopProductDtoImpl) then,
  ) = __$$DashboardTopProductDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'product_id') String? productId,
    @JsonKey(name: 'product_name') String? productName,
    @JsonKey(name: 'category_id') String? categoryId,
    @JsonKey(name: 'category_name') String? categoryName,
    @JsonKey(name: 'quantity_sold') int? quantitySold,
    @JsonKey(name: 'revenue') int? revenue,
    @JsonKey(name: 'average_price') double? averagePrice,
    @JsonKey(name: 'order_count') int? orderCount,
  });
}

/// @nodoc
class __$$DashboardTopProductDtoImplCopyWithImpl<$Res>
    extends
        _$DashboardTopProductDtoCopyWithImpl<$Res, _$DashboardTopProductDtoImpl>
    implements _$$DashboardTopProductDtoImplCopyWith<$Res> {
  __$$DashboardTopProductDtoImplCopyWithImpl(
    _$DashboardTopProductDtoImpl _value,
    $Res Function(_$DashboardTopProductDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of DashboardTopProductDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? productId = freezed,
    Object? productName = freezed,
    Object? categoryId = freezed,
    Object? categoryName = freezed,
    Object? quantitySold = freezed,
    Object? revenue = freezed,
    Object? averagePrice = freezed,
    Object? orderCount = freezed,
  }) {
    return _then(
      _$DashboardTopProductDtoImpl(
        productId: freezed == productId
            ? _value.productId
            : productId // ignore: cast_nullable_to_non_nullable
                  as String?,
        productName: freezed == productName
            ? _value.productName
            : productName // ignore: cast_nullable_to_non_nullable
                  as String?,
        categoryId: freezed == categoryId
            ? _value.categoryId
            : categoryId // ignore: cast_nullable_to_non_nullable
                  as String?,
        categoryName: freezed == categoryName
            ? _value.categoryName
            : categoryName // ignore: cast_nullable_to_non_nullable
                  as String?,
        quantitySold: freezed == quantitySold
            ? _value.quantitySold
            : quantitySold // ignore: cast_nullable_to_non_nullable
                  as int?,
        revenue: freezed == revenue
            ? _value.revenue
            : revenue // ignore: cast_nullable_to_non_nullable
                  as int?,
        averagePrice: freezed == averagePrice
            ? _value.averagePrice
            : averagePrice // ignore: cast_nullable_to_non_nullable
                  as double?,
        orderCount: freezed == orderCount
            ? _value.orderCount
            : orderCount // ignore: cast_nullable_to_non_nullable
                  as int?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$DashboardTopProductDtoImpl extends _DashboardTopProductDto {
  const _$DashboardTopProductDtoImpl({
    @JsonKey(name: 'product_id') this.productId,
    @JsonKey(name: 'product_name') this.productName,
    @JsonKey(name: 'category_id') this.categoryId,
    @JsonKey(name: 'category_name') this.categoryName,
    @JsonKey(name: 'quantity_sold') this.quantitySold,
    @JsonKey(name: 'revenue') this.revenue,
    @JsonKey(name: 'average_price') this.averagePrice,
    @JsonKey(name: 'order_count') this.orderCount,
  }) : super._();

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

  @override
  @JsonKey(name: 'product_id')
  final String? productId;
  @override
  @JsonKey(name: 'product_name')
  final String? productName;
  @override
  @JsonKey(name: 'category_id')
  final String? categoryId;
  @override
  @JsonKey(name: 'category_name')
  final String? categoryName;
  @override
  @JsonKey(name: 'quantity_sold')
  final int? quantitySold;
  @override
  @JsonKey(name: 'revenue')
  final int? revenue;
  @override
  @JsonKey(name: 'average_price')
  final double? averagePrice;
  @override
  @JsonKey(name: 'order_count')
  final int? orderCount;

  @override
  String toString() {
    return 'DashboardTopProductDto(productId: $productId, productName: $productName, categoryId: $categoryId, categoryName: $categoryName, quantitySold: $quantitySold, revenue: $revenue, averagePrice: $averagePrice, orderCount: $orderCount)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$DashboardTopProductDtoImpl &&
            (identical(other.productId, productId) ||
                other.productId == productId) &&
            (identical(other.productName, productName) ||
                other.productName == productName) &&
            (identical(other.categoryId, categoryId) ||
                other.categoryId == categoryId) &&
            (identical(other.categoryName, categoryName) ||
                other.categoryName == categoryName) &&
            (identical(other.quantitySold, quantitySold) ||
                other.quantitySold == quantitySold) &&
            (identical(other.revenue, revenue) || other.revenue == revenue) &&
            (identical(other.averagePrice, averagePrice) ||
                other.averagePrice == averagePrice) &&
            (identical(other.orderCount, orderCount) ||
                other.orderCount == orderCount));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    productId,
    productName,
    categoryId,
    categoryName,
    quantitySold,
    revenue,
    averagePrice,
    orderCount,
  );

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

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

abstract class _DashboardTopProductDto extends DashboardTopProductDto {
  const factory _DashboardTopProductDto({
    @JsonKey(name: 'product_id') final String? productId,
    @JsonKey(name: 'product_name') final String? productName,
    @JsonKey(name: 'category_id') final String? categoryId,
    @JsonKey(name: 'category_name') final String? categoryName,
    @JsonKey(name: 'quantity_sold') final int? quantitySold,
    @JsonKey(name: 'revenue') final int? revenue,
    @JsonKey(name: 'average_price') final double? averagePrice,
    @JsonKey(name: 'order_count') final int? orderCount,
  }) = _$DashboardTopProductDtoImpl;
  const _DashboardTopProductDto._() : super._();

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

  @override
  @JsonKey(name: 'product_id')
  String? get productId;
  @override
  @JsonKey(name: 'product_name')
  String? get productName;
  @override
  @JsonKey(name: 'category_id')
  String? get categoryId;
  @override
  @JsonKey(name: 'category_name')
  String? get categoryName;
  @override
  @JsonKey(name: 'quantity_sold')
  int? get quantitySold;
  @override
  @JsonKey(name: 'revenue')
  int? get revenue;
  @override
  @JsonKey(name: 'average_price')
  double? get averagePrice;
  @override
  @JsonKey(name: 'order_count')
  int? get orderCount;

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

DashboardPaymentMethodDto _$DashboardPaymentMethodDtoFromJson(
  Map<String, dynamic> json,
) {
  return _DashboardPaymentMethodDto.fromJson(json);
}

/// @nodoc
mixin _$DashboardPaymentMethodDto {
  @JsonKey(name: 'payment_method_id')
  String? get paymentMethodId => throw _privateConstructorUsedError;
  @JsonKey(name: 'payment_method_name')
  String? get paymentMethodName => throw _privateConstructorUsedError;
  @JsonKey(name: 'payment_method_type')
  String? get paymentMethodType => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_amount')
  int? get totalAmount => throw _privateConstructorUsedError;
  @JsonKey(name: 'order_count')
  int? get orderCount => throw _privateConstructorUsedError;
  @JsonKey(name: 'payment_count')
  int? get paymentCount => throw _privateConstructorUsedError;
  @JsonKey(name: 'percentage')
  double? get percentage => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $DashboardPaymentMethodDtoCopyWith<$Res> {
  factory $DashboardPaymentMethodDtoCopyWith(
    DashboardPaymentMethodDto value,
    $Res Function(DashboardPaymentMethodDto) then,
  ) = _$DashboardPaymentMethodDtoCopyWithImpl<$Res, DashboardPaymentMethodDto>;
  @useResult
  $Res call({
    @JsonKey(name: 'payment_method_id') String? paymentMethodId,
    @JsonKey(name: 'payment_method_name') String? paymentMethodName,
    @JsonKey(name: 'payment_method_type') String? paymentMethodType,
    @JsonKey(name: 'total_amount') int? totalAmount,
    @JsonKey(name: 'order_count') int? orderCount,
    @JsonKey(name: 'payment_count') int? paymentCount,
    @JsonKey(name: 'percentage') double? percentage,
  });
}

/// @nodoc
class _$DashboardPaymentMethodDtoCopyWithImpl<
  $Res,
  $Val extends DashboardPaymentMethodDto
>
    implements $DashboardPaymentMethodDtoCopyWith<$Res> {
  _$DashboardPaymentMethodDtoCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$DashboardPaymentMethodDtoImplCopyWith<$Res>
    implements $DashboardPaymentMethodDtoCopyWith<$Res> {
  factory _$$DashboardPaymentMethodDtoImplCopyWith(
    _$DashboardPaymentMethodDtoImpl value,
    $Res Function(_$DashboardPaymentMethodDtoImpl) then,
  ) = __$$DashboardPaymentMethodDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'payment_method_id') String? paymentMethodId,
    @JsonKey(name: 'payment_method_name') String? paymentMethodName,
    @JsonKey(name: 'payment_method_type') String? paymentMethodType,
    @JsonKey(name: 'total_amount') int? totalAmount,
    @JsonKey(name: 'order_count') int? orderCount,
    @JsonKey(name: 'payment_count') int? paymentCount,
    @JsonKey(name: 'percentage') double? percentage,
  });
}

/// @nodoc
class __$$DashboardPaymentMethodDtoImplCopyWithImpl<$Res>
    extends
        _$DashboardPaymentMethodDtoCopyWithImpl<
          $Res,
          _$DashboardPaymentMethodDtoImpl
        >
    implements _$$DashboardPaymentMethodDtoImplCopyWith<$Res> {
  __$$DashboardPaymentMethodDtoImplCopyWithImpl(
    _$DashboardPaymentMethodDtoImpl _value,
    $Res Function(_$DashboardPaymentMethodDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of DashboardPaymentMethodDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? paymentMethodId = freezed,
    Object? paymentMethodName = freezed,
    Object? paymentMethodType = freezed,
    Object? totalAmount = freezed,
    Object? orderCount = freezed,
    Object? paymentCount = freezed,
    Object? percentage = freezed,
  }) {
    return _then(
      _$DashboardPaymentMethodDtoImpl(
        paymentMethodId: freezed == paymentMethodId
            ? _value.paymentMethodId
            : paymentMethodId // ignore: cast_nullable_to_non_nullable
                  as String?,
        paymentMethodName: freezed == paymentMethodName
            ? _value.paymentMethodName
            : paymentMethodName // ignore: cast_nullable_to_non_nullable
                  as String?,
        paymentMethodType: freezed == paymentMethodType
            ? _value.paymentMethodType
            : paymentMethodType // ignore: cast_nullable_to_non_nullable
                  as String?,
        totalAmount: freezed == totalAmount
            ? _value.totalAmount
            : totalAmount // ignore: cast_nullable_to_non_nullable
                  as int?,
        orderCount: freezed == orderCount
            ? _value.orderCount
            : orderCount // ignore: cast_nullable_to_non_nullable
                  as int?,
        paymentCount: freezed == paymentCount
            ? _value.paymentCount
            : paymentCount // ignore: cast_nullable_to_non_nullable
                  as int?,
        percentage: freezed == percentage
            ? _value.percentage
            : percentage // ignore: cast_nullable_to_non_nullable
                  as double?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$DashboardPaymentMethodDtoImpl extends _DashboardPaymentMethodDto {
  const _$DashboardPaymentMethodDtoImpl({
    @JsonKey(name: 'payment_method_id') this.paymentMethodId,
    @JsonKey(name: 'payment_method_name') this.paymentMethodName,
    @JsonKey(name: 'payment_method_type') this.paymentMethodType,
    @JsonKey(name: 'total_amount') this.totalAmount,
    @JsonKey(name: 'order_count') this.orderCount,
    @JsonKey(name: 'payment_count') this.paymentCount,
    @JsonKey(name: 'percentage') this.percentage,
  }) : super._();

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

  @override
  @JsonKey(name: 'payment_method_id')
  final String? paymentMethodId;
  @override
  @JsonKey(name: 'payment_method_name')
  final String? paymentMethodName;
  @override
  @JsonKey(name: 'payment_method_type')
  final String? paymentMethodType;
  @override
  @JsonKey(name: 'total_amount')
  final int? totalAmount;
  @override
  @JsonKey(name: 'order_count')
  final int? orderCount;
  @override
  @JsonKey(name: 'payment_count')
  final int? paymentCount;
  @override
  @JsonKey(name: 'percentage')
  final double? percentage;

  @override
  String toString() {
    return 'DashboardPaymentMethodDto(paymentMethodId: $paymentMethodId, paymentMethodName: $paymentMethodName, paymentMethodType: $paymentMethodType, totalAmount: $totalAmount, orderCount: $orderCount, paymentCount: $paymentCount, percentage: $percentage)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$DashboardPaymentMethodDtoImpl &&
            (identical(other.paymentMethodId, paymentMethodId) ||
                other.paymentMethodId == paymentMethodId) &&
            (identical(other.paymentMethodName, paymentMethodName) ||
                other.paymentMethodName == paymentMethodName) &&
            (identical(other.paymentMethodType, paymentMethodType) ||
                other.paymentMethodType == paymentMethodType) &&
            (identical(other.totalAmount, totalAmount) ||
                other.totalAmount == totalAmount) &&
            (identical(other.orderCount, orderCount) ||
                other.orderCount == orderCount) &&
            (identical(other.paymentCount, paymentCount) ||
                other.paymentCount == paymentCount) &&
            (identical(other.percentage, percentage) ||
                other.percentage == percentage));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    paymentMethodId,
    paymentMethodName,
    paymentMethodType,
    totalAmount,
    orderCount,
    paymentCount,
    percentage,
  );

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

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

abstract class _DashboardPaymentMethodDto extends DashboardPaymentMethodDto {
  const factory _DashboardPaymentMethodDto({
    @JsonKey(name: 'payment_method_id') final String? paymentMethodId,
    @JsonKey(name: 'payment_method_name') final String? paymentMethodName,
    @JsonKey(name: 'payment_method_type') final String? paymentMethodType,
    @JsonKey(name: 'total_amount') final int? totalAmount,
    @JsonKey(name: 'order_count') final int? orderCount,
    @JsonKey(name: 'payment_count') final int? paymentCount,
    @JsonKey(name: 'percentage') final double? percentage,
  }) = _$DashboardPaymentMethodDtoImpl;
  const _DashboardPaymentMethodDto._() : super._();

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

  @override
  @JsonKey(name: 'payment_method_id')
  String? get paymentMethodId;
  @override
  @JsonKey(name: 'payment_method_name')
  String? get paymentMethodName;
  @override
  @JsonKey(name: 'payment_method_type')
  String? get paymentMethodType;
  @override
  @JsonKey(name: 'total_amount')
  int? get totalAmount;
  @override
  @JsonKey(name: 'order_count')
  int? get orderCount;
  @override
  @JsonKey(name: 'payment_count')
  int? get paymentCount;
  @override
  @JsonKey(name: 'percentage')
  double? get percentage;

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

DashboardRecentSaleDto _$DashboardRecentSaleDtoFromJson(
  Map<String, dynamic> json,
) {
  return _DashboardRecentSaleDto.fromJson(json);
}

/// @nodoc
mixin _$DashboardRecentSaleDto {
  @JsonKey(name: 'date')
  String? get date => throw _privateConstructorUsedError;
  @JsonKey(name: 'sales')
  int? get sales => throw _privateConstructorUsedError;
  @JsonKey(name: 'orders')
  int? get orders => throw _privateConstructorUsedError;
  @JsonKey(name: 'items')
  int? get items => throw _privateConstructorUsedError;
  @JsonKey(name: 'tax')
  int? get tax => throw _privateConstructorUsedError;
  @JsonKey(name: 'discount')
  int? get discount => throw _privateConstructorUsedError;
  @JsonKey(name: 'net_sales')
  int? get netSales => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $DashboardRecentSaleDtoCopyWith<$Res> {
  factory $DashboardRecentSaleDtoCopyWith(
    DashboardRecentSaleDto value,
    $Res Function(DashboardRecentSaleDto) then,
  ) = _$DashboardRecentSaleDtoCopyWithImpl<$Res, DashboardRecentSaleDto>;
  @useResult
  $Res call({
    @JsonKey(name: 'date') String? date,
    @JsonKey(name: 'sales') int? sales,
    @JsonKey(name: 'orders') int? orders,
    @JsonKey(name: 'items') int? items,
    @JsonKey(name: 'tax') int? tax,
    @JsonKey(name: 'discount') int? discount,
    @JsonKey(name: 'net_sales') int? netSales,
  });
}

/// @nodoc
class _$DashboardRecentSaleDtoCopyWithImpl<
  $Res,
  $Val extends DashboardRecentSaleDto
>
    implements $DashboardRecentSaleDtoCopyWith<$Res> {
  _$DashboardRecentSaleDtoCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$DashboardRecentSaleDtoImplCopyWith<$Res>
    implements $DashboardRecentSaleDtoCopyWith<$Res> {
  factory _$$DashboardRecentSaleDtoImplCopyWith(
    _$DashboardRecentSaleDtoImpl value,
    $Res Function(_$DashboardRecentSaleDtoImpl) then,
  ) = __$$DashboardRecentSaleDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'date') String? date,
    @JsonKey(name: 'sales') int? sales,
    @JsonKey(name: 'orders') int? orders,
    @JsonKey(name: 'items') int? items,
    @JsonKey(name: 'tax') int? tax,
    @JsonKey(name: 'discount') int? discount,
    @JsonKey(name: 'net_sales') int? netSales,
  });
}

/// @nodoc
class __$$DashboardRecentSaleDtoImplCopyWithImpl<$Res>
    extends
        _$DashboardRecentSaleDtoCopyWithImpl<$Res, _$DashboardRecentSaleDtoImpl>
    implements _$$DashboardRecentSaleDtoImplCopyWith<$Res> {
  __$$DashboardRecentSaleDtoImplCopyWithImpl(
    _$DashboardRecentSaleDtoImpl _value,
    $Res Function(_$DashboardRecentSaleDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of DashboardRecentSaleDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? date = freezed,
    Object? sales = freezed,
    Object? orders = freezed,
    Object? items = freezed,
    Object? tax = freezed,
    Object? discount = freezed,
    Object? netSales = freezed,
  }) {
    return _then(
      _$DashboardRecentSaleDtoImpl(
        date: freezed == date
            ? _value.date
            : date // ignore: cast_nullable_to_non_nullable
                  as String?,
        sales: freezed == sales
            ? _value.sales
            : sales // ignore: cast_nullable_to_non_nullable
                  as int?,
        orders: freezed == orders
            ? _value.orders
            : orders // ignore: cast_nullable_to_non_nullable
                  as int?,
        items: freezed == items
            ? _value.items
            : items // ignore: cast_nullable_to_non_nullable
                  as int?,
        tax: freezed == tax
            ? _value.tax
            : tax // ignore: cast_nullable_to_non_nullable
                  as int?,
        discount: freezed == discount
            ? _value.discount
            : discount // ignore: cast_nullable_to_non_nullable
                  as int?,
        netSales: freezed == netSales
            ? _value.netSales
            : netSales // ignore: cast_nullable_to_non_nullable
                  as int?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$DashboardRecentSaleDtoImpl extends _DashboardRecentSaleDto {
  const _$DashboardRecentSaleDtoImpl({
    @JsonKey(name: 'date') this.date,
    @JsonKey(name: 'sales') this.sales,
    @JsonKey(name: 'orders') this.orders,
    @JsonKey(name: 'items') this.items,
    @JsonKey(name: 'tax') this.tax,
    @JsonKey(name: 'discount') this.discount,
    @JsonKey(name: 'net_sales') this.netSales,
  }) : super._();

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

  @override
  @JsonKey(name: 'date')
  final String? date;
  @override
  @JsonKey(name: 'sales')
  final int? sales;
  @override
  @JsonKey(name: 'orders')
  final int? orders;
  @override
  @JsonKey(name: 'items')
  final int? items;
  @override
  @JsonKey(name: 'tax')
  final int? tax;
  @override
  @JsonKey(name: 'discount')
  final int? discount;
  @override
  @JsonKey(name: 'net_sales')
  final int? netSales;

  @override
  String toString() {
    return 'DashboardRecentSaleDto(date: $date, sales: $sales, orders: $orders, items: $items, tax: $tax, discount: $discount, netSales: $netSales)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$DashboardRecentSaleDtoImpl &&
            (identical(other.date, date) || other.date == date) &&
            (identical(other.sales, sales) || other.sales == sales) &&
            (identical(other.orders, orders) || other.orders == orders) &&
            (identical(other.items, items) || other.items == items) &&
            (identical(other.tax, tax) || other.tax == tax) &&
            (identical(other.discount, discount) ||
                other.discount == discount) &&
            (identical(other.netSales, netSales) ||
                other.netSales == netSales));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    date,
    sales,
    orders,
    items,
    tax,
    discount,
    netSales,
  );

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

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

abstract class _DashboardRecentSaleDto extends DashboardRecentSaleDto {
  const factory _DashboardRecentSaleDto({
    @JsonKey(name: 'date') final String? date,
    @JsonKey(name: 'sales') final int? sales,
    @JsonKey(name: 'orders') final int? orders,
    @JsonKey(name: 'items') final int? items,
    @JsonKey(name: 'tax') final int? tax,
    @JsonKey(name: 'discount') final int? discount,
    @JsonKey(name: 'net_sales') final int? netSales,
  }) = _$DashboardRecentSaleDtoImpl;
  const _DashboardRecentSaleDto._() : super._();

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

  @override
  @JsonKey(name: 'date')
  String? get date;
  @override
  @JsonKey(name: 'sales')
  int? get sales;
  @override
  @JsonKey(name: 'orders')
  int? get orders;
  @override
  @JsonKey(name: 'items')
  int? get items;
  @override
  @JsonKey(name: 'tax')
  int? get tax;
  @override
  @JsonKey(name: 'discount')
  int? get discount;
  @override
  @JsonKey(name: 'net_sales')
  int? get netSales;

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

ProductAnalyticDto _$ProductAnalyticDtoFromJson(Map<String, dynamic> json) {
  return _ProductAnalyticDto.fromJson(json);
}

/// @nodoc
mixin _$ProductAnalyticDto {
  @JsonKey(name: 'organization_id')
  String? get organizationId => throw _privateConstructorUsedError;
  @JsonKey(name: 'outlet_id')
  String? get outletId => throw _privateConstructorUsedError;
  @JsonKey(name: 'outlet_name')
  String? get outletName => throw _privateConstructorUsedError;
  @JsonKey(name: 'date_from')
  String? get dateFrom => throw _privateConstructorUsedError;
  @JsonKey(name: 'date_to')
  String? get dateTo => throw _privateConstructorUsedError;
  @JsonKey(name: 'data')
  List<ProductAnalyticDataDto>? get data => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $ProductAnalyticDtoCopyWith<$Res> {
  factory $ProductAnalyticDtoCopyWith(
    ProductAnalyticDto value,
    $Res Function(ProductAnalyticDto) then,
  ) = _$ProductAnalyticDtoCopyWithImpl<$Res, ProductAnalyticDto>;
  @useResult
  $Res call({
    @JsonKey(name: 'organization_id') String? organizationId,
    @JsonKey(name: 'outlet_id') String? outletId,
    @JsonKey(name: 'outlet_name') String? outletName,
    @JsonKey(name: 'date_from') String? dateFrom,
    @JsonKey(name: 'date_to') String? dateTo,
    @JsonKey(name: 'data') List<ProductAnalyticDataDto>? data,
  });
}

/// @nodoc
class _$ProductAnalyticDtoCopyWithImpl<$Res, $Val extends ProductAnalyticDto>
    implements $ProductAnalyticDtoCopyWith<$Res> {
  _$ProductAnalyticDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of ProductAnalyticDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? organizationId = freezed,
    Object? outletId = freezed,
    Object? outletName = freezed,
    Object? dateFrom = freezed,
    Object? dateTo = freezed,
    Object? data = freezed,
  }) {
    return _then(
      _value.copyWith(
            organizationId: freezed == organizationId
                ? _value.organizationId
                : organizationId // ignore: cast_nullable_to_non_nullable
                      as String?,
            outletId: freezed == outletId
                ? _value.outletId
                : outletId // ignore: cast_nullable_to_non_nullable
                      as String?,
            outletName: freezed == outletName
                ? _value.outletName
                : outletName // ignore: cast_nullable_to_non_nullable
                      as String?,
            dateFrom: freezed == dateFrom
                ? _value.dateFrom
                : dateFrom // ignore: cast_nullable_to_non_nullable
                      as String?,
            dateTo: freezed == dateTo
                ? _value.dateTo
                : dateTo // ignore: cast_nullable_to_non_nullable
                      as String?,
            data: freezed == data
                ? _value.data
                : data // ignore: cast_nullable_to_non_nullable
                      as List<ProductAnalyticDataDto>?,
          )
          as $Val,
    );
  }
}

/// @nodoc
abstract class _$$ProductAnalyticDtoImplCopyWith<$Res>
    implements $ProductAnalyticDtoCopyWith<$Res> {
  factory _$$ProductAnalyticDtoImplCopyWith(
    _$ProductAnalyticDtoImpl value,
    $Res Function(_$ProductAnalyticDtoImpl) then,
  ) = __$$ProductAnalyticDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'organization_id') String? organizationId,
    @JsonKey(name: 'outlet_id') String? outletId,
    @JsonKey(name: 'outlet_name') String? outletName,
    @JsonKey(name: 'date_from') String? dateFrom,
    @JsonKey(name: 'date_to') String? dateTo,
    @JsonKey(name: 'data') List<ProductAnalyticDataDto>? data,
  });
}

/// @nodoc
class __$$ProductAnalyticDtoImplCopyWithImpl<$Res>
    extends _$ProductAnalyticDtoCopyWithImpl<$Res, _$ProductAnalyticDtoImpl>
    implements _$$ProductAnalyticDtoImplCopyWith<$Res> {
  __$$ProductAnalyticDtoImplCopyWithImpl(
    _$ProductAnalyticDtoImpl _value,
    $Res Function(_$ProductAnalyticDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of ProductAnalyticDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? organizationId = freezed,
    Object? outletId = freezed,
    Object? outletName = freezed,
    Object? dateFrom = freezed,
    Object? dateTo = freezed,
    Object? data = freezed,
  }) {
    return _then(
      _$ProductAnalyticDtoImpl(
        organizationId: freezed == organizationId
            ? _value.organizationId
            : organizationId // ignore: cast_nullable_to_non_nullable
                  as String?,
        outletId: freezed == outletId
            ? _value.outletId
            : outletId // ignore: cast_nullable_to_non_nullable
                  as String?,
        outletName: freezed == outletName
            ? _value.outletName
            : outletName // ignore: cast_nullable_to_non_nullable
                  as String?,
        dateFrom: freezed == dateFrom
            ? _value.dateFrom
            : dateFrom // ignore: cast_nullable_to_non_nullable
                  as String?,
        dateTo: freezed == dateTo
            ? _value.dateTo
            : dateTo // ignore: cast_nullable_to_non_nullable
                  as String?,
        data: freezed == data
            ? _value._data
            : data // ignore: cast_nullable_to_non_nullable
                  as List<ProductAnalyticDataDto>?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$ProductAnalyticDtoImpl extends _ProductAnalyticDto {
  const _$ProductAnalyticDtoImpl({
    @JsonKey(name: 'organization_id') this.organizationId,
    @JsonKey(name: 'outlet_id') this.outletId,
    @JsonKey(name: 'outlet_name') this.outletName,
    @JsonKey(name: 'date_from') this.dateFrom,
    @JsonKey(name: 'date_to') this.dateTo,
    @JsonKey(name: 'data') final List<ProductAnalyticDataDto>? data,
  }) : _data = data,
       super._();

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

  @override
  @JsonKey(name: 'organization_id')
  final String? organizationId;
  @override
  @JsonKey(name: 'outlet_id')
  final String? outletId;
  @override
  @JsonKey(name: 'outlet_name')
  final String? outletName;
  @override
  @JsonKey(name: 'date_from')
  final String? dateFrom;
  @override
  @JsonKey(name: 'date_to')
  final String? dateTo;
  final List<ProductAnalyticDataDto>? _data;
  @override
  @JsonKey(name: 'data')
  List<ProductAnalyticDataDto>? get data {
    final value = _data;
    if (value == null) return null;
    if (_data is EqualUnmodifiableListView) return _data;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

  @override
  String toString() {
    return 'ProductAnalyticDto(organizationId: $organizationId, outletId: $outletId, outletName: $outletName, dateFrom: $dateFrom, dateTo: $dateTo, data: $data)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ProductAnalyticDtoImpl &&
            (identical(other.organizationId, organizationId) ||
                other.organizationId == organizationId) &&
            (identical(other.outletId, outletId) ||
                other.outletId == outletId) &&
            (identical(other.outletName, outletName) ||
                other.outletName == outletName) &&
            (identical(other.dateFrom, dateFrom) ||
                other.dateFrom == dateFrom) &&
            (identical(other.dateTo, dateTo) || other.dateTo == dateTo) &&
            const DeepCollectionEquality().equals(other._data, _data));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    organizationId,
    outletId,
    outletName,
    dateFrom,
    dateTo,
    const DeepCollectionEquality().hash(_data),
  );

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

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

abstract class _ProductAnalyticDto extends ProductAnalyticDto {
  const factory _ProductAnalyticDto({
    @JsonKey(name: 'organization_id') final String? organizationId,
    @JsonKey(name: 'outlet_id') final String? outletId,
    @JsonKey(name: 'outlet_name') final String? outletName,
    @JsonKey(name: 'date_from') final String? dateFrom,
    @JsonKey(name: 'date_to') final String? dateTo,
    @JsonKey(name: 'data') final List<ProductAnalyticDataDto>? data,
  }) = _$ProductAnalyticDtoImpl;
  const _ProductAnalyticDto._() : super._();

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

  @override
  @JsonKey(name: 'organization_id')
  String? get organizationId;
  @override
  @JsonKey(name: 'outlet_id')
  String? get outletId;
  @override
  @JsonKey(name: 'outlet_name')
  String? get outletName;
  @override
  @JsonKey(name: 'date_from')
  String? get dateFrom;
  @override
  @JsonKey(name: 'date_to')
  String? get dateTo;
  @override
  @JsonKey(name: 'data')
  List<ProductAnalyticDataDto>? get data;

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

ProductAnalyticDataDto _$ProductAnalyticDataDtoFromJson(
  Map<String, dynamic> json,
) {
  return _ProductAnalyticDataDto.fromJson(json);
}

/// @nodoc
mixin _$ProductAnalyticDataDto {
  @JsonKey(name: 'product_id')
  String? get productId => throw _privateConstructorUsedError;
  @JsonKey(name: 'product_name')
  String? get productName => throw _privateConstructorUsedError;
  @JsonKey(name: 'product_sku')
  String? get productSku => throw _privateConstructorUsedError;
  @JsonKey(name: 'product_price')
  int? get productPrice => throw _privateConstructorUsedError;
  @JsonKey(name: 'category_id')
  String? get categoryId => throw _privateConstructorUsedError;
  @JsonKey(name: 'category_name')
  String? get categoryName => throw _privateConstructorUsedError;
  @JsonKey(name: 'category_order')
  int? get categoryOrder => throw _privateConstructorUsedError;
  @JsonKey(name: 'quantity_sold')
  int? get quantitySold => throw _privateConstructorUsedError;
  @JsonKey(name: 'revenue')
  int? get revenue => throw _privateConstructorUsedError;
  @JsonKey(name: 'average_price')
  double? get averagePrice => throw _privateConstructorUsedError;
  @JsonKey(name: 'order_count')
  int? get orderCount => throw _privateConstructorUsedError;
  @JsonKey(name: 'standard_hpp_per_unit')
  int? get standardHppPerUnit => throw _privateConstructorUsedError;
  @JsonKey(name: 'standard_hpp_total')
  int? get standardHppTotal => throw _privateConstructorUsedError;
  @JsonKey(name: 'fifo_hpp_per_unit')
  int? get fifoHppPerUnit => throw _privateConstructorUsedError;
  @JsonKey(name: 'fifo_hpp_total')
  int? get fifoHppTotal => throw _privateConstructorUsedError;
  @JsonKey(name: 'moving_average_hpp_per_unit')
  int? get movingAverageHppPerUnit => throw _privateConstructorUsedError;
  @JsonKey(name: 'moving_average_hpp_total')
  int? get movingAverageHppTotal => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $ProductAnalyticDataDtoCopyWith<$Res> {
  factory $ProductAnalyticDataDtoCopyWith(
    ProductAnalyticDataDto value,
    $Res Function(ProductAnalyticDataDto) then,
  ) = _$ProductAnalyticDataDtoCopyWithImpl<$Res, ProductAnalyticDataDto>;
  @useResult
  $Res call({
    @JsonKey(name: 'product_id') String? productId,
    @JsonKey(name: 'product_name') String? productName,
    @JsonKey(name: 'product_sku') String? productSku,
    @JsonKey(name: 'product_price') int? productPrice,
    @JsonKey(name: 'category_id') String? categoryId,
    @JsonKey(name: 'category_name') String? categoryName,
    @JsonKey(name: 'category_order') int? categoryOrder,
    @JsonKey(name: 'quantity_sold') int? quantitySold,
    @JsonKey(name: 'revenue') int? revenue,
    @JsonKey(name: 'average_price') double? averagePrice,
    @JsonKey(name: 'order_count') int? orderCount,
    @JsonKey(name: 'standard_hpp_per_unit') int? standardHppPerUnit,
    @JsonKey(name: 'standard_hpp_total') int? standardHppTotal,
    @JsonKey(name: 'fifo_hpp_per_unit') int? fifoHppPerUnit,
    @JsonKey(name: 'fifo_hpp_total') int? fifoHppTotal,
    @JsonKey(name: 'moving_average_hpp_per_unit') int? movingAverageHppPerUnit,
    @JsonKey(name: 'moving_average_hpp_total') int? movingAverageHppTotal,
  });
}

/// @nodoc
class _$ProductAnalyticDataDtoCopyWithImpl<
  $Res,
  $Val extends ProductAnalyticDataDto
>
    implements $ProductAnalyticDataDtoCopyWith<$Res> {
  _$ProductAnalyticDataDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of ProductAnalyticDataDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? productId = freezed,
    Object? productName = freezed,
    Object? productSku = freezed,
    Object? productPrice = freezed,
    Object? categoryId = freezed,
    Object? categoryName = freezed,
    Object? categoryOrder = freezed,
    Object? quantitySold = freezed,
    Object? revenue = freezed,
    Object? averagePrice = freezed,
    Object? orderCount = freezed,
    Object? standardHppPerUnit = freezed,
    Object? standardHppTotal = freezed,
    Object? fifoHppPerUnit = freezed,
    Object? fifoHppTotal = freezed,
    Object? movingAverageHppPerUnit = freezed,
    Object? movingAverageHppTotal = freezed,
  }) {
    return _then(
      _value.copyWith(
            productId: freezed == productId
                ? _value.productId
                : productId // ignore: cast_nullable_to_non_nullable
                      as String?,
            productName: freezed == productName
                ? _value.productName
                : productName // ignore: cast_nullable_to_non_nullable
                      as String?,
            productSku: freezed == productSku
                ? _value.productSku
                : productSku // ignore: cast_nullable_to_non_nullable
                      as String?,
            productPrice: freezed == productPrice
                ? _value.productPrice
                : productPrice // ignore: cast_nullable_to_non_nullable
                      as int?,
            categoryId: freezed == categoryId
                ? _value.categoryId
                : categoryId // ignore: cast_nullable_to_non_nullable
                      as String?,
            categoryName: freezed == categoryName
                ? _value.categoryName
                : categoryName // ignore: cast_nullable_to_non_nullable
                      as String?,
            categoryOrder: freezed == categoryOrder
                ? _value.categoryOrder
                : categoryOrder // ignore: cast_nullable_to_non_nullable
                      as int?,
            quantitySold: freezed == quantitySold
                ? _value.quantitySold
                : quantitySold // ignore: cast_nullable_to_non_nullable
                      as int?,
            revenue: freezed == revenue
                ? _value.revenue
                : revenue // ignore: cast_nullable_to_non_nullable
                      as int?,
            averagePrice: freezed == averagePrice
                ? _value.averagePrice
                : averagePrice // ignore: cast_nullable_to_non_nullable
                      as double?,
            orderCount: freezed == orderCount
                ? _value.orderCount
                : orderCount // ignore: cast_nullable_to_non_nullable
                      as int?,
            standardHppPerUnit: freezed == standardHppPerUnit
                ? _value.standardHppPerUnit
                : standardHppPerUnit // ignore: cast_nullable_to_non_nullable
                      as int?,
            standardHppTotal: freezed == standardHppTotal
                ? _value.standardHppTotal
                : standardHppTotal // ignore: cast_nullable_to_non_nullable
                      as int?,
            fifoHppPerUnit: freezed == fifoHppPerUnit
                ? _value.fifoHppPerUnit
                : fifoHppPerUnit // ignore: cast_nullable_to_non_nullable
                      as int?,
            fifoHppTotal: freezed == fifoHppTotal
                ? _value.fifoHppTotal
                : fifoHppTotal // ignore: cast_nullable_to_non_nullable
                      as int?,
            movingAverageHppPerUnit: freezed == movingAverageHppPerUnit
                ? _value.movingAverageHppPerUnit
                : movingAverageHppPerUnit // ignore: cast_nullable_to_non_nullable
                      as int?,
            movingAverageHppTotal: freezed == movingAverageHppTotal
                ? _value.movingAverageHppTotal
                : movingAverageHppTotal // ignore: cast_nullable_to_non_nullable
                      as int?,
          )
          as $Val,
    );
  }
}

/// @nodoc
abstract class _$$ProductAnalyticDataDtoImplCopyWith<$Res>
    implements $ProductAnalyticDataDtoCopyWith<$Res> {
  factory _$$ProductAnalyticDataDtoImplCopyWith(
    _$ProductAnalyticDataDtoImpl value,
    $Res Function(_$ProductAnalyticDataDtoImpl) then,
  ) = __$$ProductAnalyticDataDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'product_id') String? productId,
    @JsonKey(name: 'product_name') String? productName,
    @JsonKey(name: 'product_sku') String? productSku,
    @JsonKey(name: 'product_price') int? productPrice,
    @JsonKey(name: 'category_id') String? categoryId,
    @JsonKey(name: 'category_name') String? categoryName,
    @JsonKey(name: 'category_order') int? categoryOrder,
    @JsonKey(name: 'quantity_sold') int? quantitySold,
    @JsonKey(name: 'revenue') int? revenue,
    @JsonKey(name: 'average_price') double? averagePrice,
    @JsonKey(name: 'order_count') int? orderCount,
    @JsonKey(name: 'standard_hpp_per_unit') int? standardHppPerUnit,
    @JsonKey(name: 'standard_hpp_total') int? standardHppTotal,
    @JsonKey(name: 'fifo_hpp_per_unit') int? fifoHppPerUnit,
    @JsonKey(name: 'fifo_hpp_total') int? fifoHppTotal,
    @JsonKey(name: 'moving_average_hpp_per_unit') int? movingAverageHppPerUnit,
    @JsonKey(name: 'moving_average_hpp_total') int? movingAverageHppTotal,
  });
}

/// @nodoc
class __$$ProductAnalyticDataDtoImplCopyWithImpl<$Res>
    extends
        _$ProductAnalyticDataDtoCopyWithImpl<$Res, _$ProductAnalyticDataDtoImpl>
    implements _$$ProductAnalyticDataDtoImplCopyWith<$Res> {
  __$$ProductAnalyticDataDtoImplCopyWithImpl(
    _$ProductAnalyticDataDtoImpl _value,
    $Res Function(_$ProductAnalyticDataDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of ProductAnalyticDataDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? productId = freezed,
    Object? productName = freezed,
    Object? productSku = freezed,
    Object? productPrice = freezed,
    Object? categoryId = freezed,
    Object? categoryName = freezed,
    Object? categoryOrder = freezed,
    Object? quantitySold = freezed,
    Object? revenue = freezed,
    Object? averagePrice = freezed,
    Object? orderCount = freezed,
    Object? standardHppPerUnit = freezed,
    Object? standardHppTotal = freezed,
    Object? fifoHppPerUnit = freezed,
    Object? fifoHppTotal = freezed,
    Object? movingAverageHppPerUnit = freezed,
    Object? movingAverageHppTotal = freezed,
  }) {
    return _then(
      _$ProductAnalyticDataDtoImpl(
        productId: freezed == productId
            ? _value.productId
            : productId // ignore: cast_nullable_to_non_nullable
                  as String?,
        productName: freezed == productName
            ? _value.productName
            : productName // ignore: cast_nullable_to_non_nullable
                  as String?,
        productSku: freezed == productSku
            ? _value.productSku
            : productSku // ignore: cast_nullable_to_non_nullable
                  as String?,
        productPrice: freezed == productPrice
            ? _value.productPrice
            : productPrice // ignore: cast_nullable_to_non_nullable
                  as int?,
        categoryId: freezed == categoryId
            ? _value.categoryId
            : categoryId // ignore: cast_nullable_to_non_nullable
                  as String?,
        categoryName: freezed == categoryName
            ? _value.categoryName
            : categoryName // ignore: cast_nullable_to_non_nullable
                  as String?,
        categoryOrder: freezed == categoryOrder
            ? _value.categoryOrder
            : categoryOrder // ignore: cast_nullable_to_non_nullable
                  as int?,
        quantitySold: freezed == quantitySold
            ? _value.quantitySold
            : quantitySold // ignore: cast_nullable_to_non_nullable
                  as int?,
        revenue: freezed == revenue
            ? _value.revenue
            : revenue // ignore: cast_nullable_to_non_nullable
                  as int?,
        averagePrice: freezed == averagePrice
            ? _value.averagePrice
            : averagePrice // ignore: cast_nullable_to_non_nullable
                  as double?,
        orderCount: freezed == orderCount
            ? _value.orderCount
            : orderCount // ignore: cast_nullable_to_non_nullable
                  as int?,
        standardHppPerUnit: freezed == standardHppPerUnit
            ? _value.standardHppPerUnit
            : standardHppPerUnit // ignore: cast_nullable_to_non_nullable
                  as int?,
        standardHppTotal: freezed == standardHppTotal
            ? _value.standardHppTotal
            : standardHppTotal // ignore: cast_nullable_to_non_nullable
                  as int?,
        fifoHppPerUnit: freezed == fifoHppPerUnit
            ? _value.fifoHppPerUnit
            : fifoHppPerUnit // ignore: cast_nullable_to_non_nullable
                  as int?,
        fifoHppTotal: freezed == fifoHppTotal
            ? _value.fifoHppTotal
            : fifoHppTotal // ignore: cast_nullable_to_non_nullable
                  as int?,
        movingAverageHppPerUnit: freezed == movingAverageHppPerUnit
            ? _value.movingAverageHppPerUnit
            : movingAverageHppPerUnit // ignore: cast_nullable_to_non_nullable
                  as int?,
        movingAverageHppTotal: freezed == movingAverageHppTotal
            ? _value.movingAverageHppTotal
            : movingAverageHppTotal // ignore: cast_nullable_to_non_nullable
                  as int?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$ProductAnalyticDataDtoImpl extends _ProductAnalyticDataDto {
  const _$ProductAnalyticDataDtoImpl({
    @JsonKey(name: 'product_id') this.productId,
    @JsonKey(name: 'product_name') this.productName,
    @JsonKey(name: 'product_sku') this.productSku,
    @JsonKey(name: 'product_price') this.productPrice,
    @JsonKey(name: 'category_id') this.categoryId,
    @JsonKey(name: 'category_name') this.categoryName,
    @JsonKey(name: 'category_order') this.categoryOrder,
    @JsonKey(name: 'quantity_sold') this.quantitySold,
    @JsonKey(name: 'revenue') this.revenue,
    @JsonKey(name: 'average_price') this.averagePrice,
    @JsonKey(name: 'order_count') this.orderCount,
    @JsonKey(name: 'standard_hpp_per_unit') this.standardHppPerUnit,
    @JsonKey(name: 'standard_hpp_total') this.standardHppTotal,
    @JsonKey(name: 'fifo_hpp_per_unit') this.fifoHppPerUnit,
    @JsonKey(name: 'fifo_hpp_total') this.fifoHppTotal,
    @JsonKey(name: 'moving_average_hpp_per_unit') this.movingAverageHppPerUnit,
    @JsonKey(name: 'moving_average_hpp_total') this.movingAverageHppTotal,
  }) : super._();

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

  @override
  @JsonKey(name: 'product_id')
  final String? productId;
  @override
  @JsonKey(name: 'product_name')
  final String? productName;
  @override
  @JsonKey(name: 'product_sku')
  final String? productSku;
  @override
  @JsonKey(name: 'product_price')
  final int? productPrice;
  @override
  @JsonKey(name: 'category_id')
  final String? categoryId;
  @override
  @JsonKey(name: 'category_name')
  final String? categoryName;
  @override
  @JsonKey(name: 'category_order')
  final int? categoryOrder;
  @override
  @JsonKey(name: 'quantity_sold')
  final int? quantitySold;
  @override
  @JsonKey(name: 'revenue')
  final int? revenue;
  @override
  @JsonKey(name: 'average_price')
  final double? averagePrice;
  @override
  @JsonKey(name: 'order_count')
  final int? orderCount;
  @override
  @JsonKey(name: 'standard_hpp_per_unit')
  final int? standardHppPerUnit;
  @override
  @JsonKey(name: 'standard_hpp_total')
  final int? standardHppTotal;
  @override
  @JsonKey(name: 'fifo_hpp_per_unit')
  final int? fifoHppPerUnit;
  @override
  @JsonKey(name: 'fifo_hpp_total')
  final int? fifoHppTotal;
  @override
  @JsonKey(name: 'moving_average_hpp_per_unit')
  final int? movingAverageHppPerUnit;
  @override
  @JsonKey(name: 'moving_average_hpp_total')
  final int? movingAverageHppTotal;

  @override
  String toString() {
    return 'ProductAnalyticDataDto(productId: $productId, productName: $productName, productSku: $productSku, productPrice: $productPrice, categoryId: $categoryId, categoryName: $categoryName, categoryOrder: $categoryOrder, quantitySold: $quantitySold, revenue: $revenue, averagePrice: $averagePrice, orderCount: $orderCount, standardHppPerUnit: $standardHppPerUnit, standardHppTotal: $standardHppTotal, fifoHppPerUnit: $fifoHppPerUnit, fifoHppTotal: $fifoHppTotal, movingAverageHppPerUnit: $movingAverageHppPerUnit, movingAverageHppTotal: $movingAverageHppTotal)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ProductAnalyticDataDtoImpl &&
            (identical(other.productId, productId) ||
                other.productId == productId) &&
            (identical(other.productName, productName) ||
                other.productName == productName) &&
            (identical(other.productSku, productSku) ||
                other.productSku == productSku) &&
            (identical(other.productPrice, productPrice) ||
                other.productPrice == productPrice) &&
            (identical(other.categoryId, categoryId) ||
                other.categoryId == categoryId) &&
            (identical(other.categoryName, categoryName) ||
                other.categoryName == categoryName) &&
            (identical(other.categoryOrder, categoryOrder) ||
                other.categoryOrder == categoryOrder) &&
            (identical(other.quantitySold, quantitySold) ||
                other.quantitySold == quantitySold) &&
            (identical(other.revenue, revenue) || other.revenue == revenue) &&
            (identical(other.averagePrice, averagePrice) ||
                other.averagePrice == averagePrice) &&
            (identical(other.orderCount, orderCount) ||
                other.orderCount == orderCount) &&
            (identical(other.standardHppPerUnit, standardHppPerUnit) ||
                other.standardHppPerUnit == standardHppPerUnit) &&
            (identical(other.standardHppTotal, standardHppTotal) ||
                other.standardHppTotal == standardHppTotal) &&
            (identical(other.fifoHppPerUnit, fifoHppPerUnit) ||
                other.fifoHppPerUnit == fifoHppPerUnit) &&
            (identical(other.fifoHppTotal, fifoHppTotal) ||
                other.fifoHppTotal == fifoHppTotal) &&
            (identical(
                  other.movingAverageHppPerUnit,
                  movingAverageHppPerUnit,
                ) ||
                other.movingAverageHppPerUnit == movingAverageHppPerUnit) &&
            (identical(other.movingAverageHppTotal, movingAverageHppTotal) ||
                other.movingAverageHppTotal == movingAverageHppTotal));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    productId,
    productName,
    productSku,
    productPrice,
    categoryId,
    categoryName,
    categoryOrder,
    quantitySold,
    revenue,
    averagePrice,
    orderCount,
    standardHppPerUnit,
    standardHppTotal,
    fifoHppPerUnit,
    fifoHppTotal,
    movingAverageHppPerUnit,
    movingAverageHppTotal,
  );

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

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

abstract class _ProductAnalyticDataDto extends ProductAnalyticDataDto {
  const factory _ProductAnalyticDataDto({
    @JsonKey(name: 'product_id') final String? productId,
    @JsonKey(name: 'product_name') final String? productName,
    @JsonKey(name: 'product_sku') final String? productSku,
    @JsonKey(name: 'product_price') final int? productPrice,
    @JsonKey(name: 'category_id') final String? categoryId,
    @JsonKey(name: 'category_name') final String? categoryName,
    @JsonKey(name: 'category_order') final int? categoryOrder,
    @JsonKey(name: 'quantity_sold') final int? quantitySold,
    @JsonKey(name: 'revenue') final int? revenue,
    @JsonKey(name: 'average_price') final double? averagePrice,
    @JsonKey(name: 'order_count') final int? orderCount,
    @JsonKey(name: 'standard_hpp_per_unit') final int? standardHppPerUnit,
    @JsonKey(name: 'standard_hpp_total') final int? standardHppTotal,
    @JsonKey(name: 'fifo_hpp_per_unit') final int? fifoHppPerUnit,
    @JsonKey(name: 'fifo_hpp_total') final int? fifoHppTotal,
    @JsonKey(name: 'moving_average_hpp_per_unit')
    final int? movingAverageHppPerUnit,
    @JsonKey(name: 'moving_average_hpp_total') final int? movingAverageHppTotal,
  }) = _$ProductAnalyticDataDtoImpl;
  const _ProductAnalyticDataDto._() : super._();

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

  @override
  @JsonKey(name: 'product_id')
  String? get productId;
  @override
  @JsonKey(name: 'product_name')
  String? get productName;
  @override
  @JsonKey(name: 'product_sku')
  String? get productSku;
  @override
  @JsonKey(name: 'product_price')
  int? get productPrice;
  @override
  @JsonKey(name: 'category_id')
  String? get categoryId;
  @override
  @JsonKey(name: 'category_name')
  String? get categoryName;
  @override
  @JsonKey(name: 'category_order')
  int? get categoryOrder;
  @override
  @JsonKey(name: 'quantity_sold')
  int? get quantitySold;
  @override
  @JsonKey(name: 'revenue')
  int? get revenue;
  @override
  @JsonKey(name: 'average_price')
  double? get averagePrice;
  @override
  @JsonKey(name: 'order_count')
  int? get orderCount;
  @override
  @JsonKey(name: 'standard_hpp_per_unit')
  int? get standardHppPerUnit;
  @override
  @JsonKey(name: 'standard_hpp_total')
  int? get standardHppTotal;
  @override
  @JsonKey(name: 'fifo_hpp_per_unit')
  int? get fifoHppPerUnit;
  @override
  @JsonKey(name: 'fifo_hpp_total')
  int? get fifoHppTotal;
  @override
  @JsonKey(name: 'moving_average_hpp_per_unit')
  int? get movingAverageHppPerUnit;
  @override
  @JsonKey(name: 'moving_average_hpp_total')
  int? get movingAverageHppTotal;

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

PaymentMethodAnalyticDto _$PaymentMethodAnalyticDtoFromJson(
  Map<String, dynamic> json,
) {
  return _PaymentMethodAnalyticDto.fromJson(json);
}

/// @nodoc
mixin _$PaymentMethodAnalyticDto {
  @JsonKey(name: 'organization_id')
  String? get organizationId => throw _privateConstructorUsedError;
  @JsonKey(name: 'outlet_id')
  String? get outletId => throw _privateConstructorUsedError;
  @JsonKey(name: 'outlet_name')
  String? get outletName => throw _privateConstructorUsedError;
  @JsonKey(name: 'date_from')
  String? get dateFrom => throw _privateConstructorUsedError;
  @JsonKey(name: 'date_to')
  String? get dateTo => throw _privateConstructorUsedError;
  @JsonKey(name: 'group_by')
  String? get groupBy => throw _privateConstructorUsedError;
  @JsonKey(name: 'summary')
  PaymentMethodSummaryDto? get summary => throw _privateConstructorUsedError;
  @JsonKey(name: 'data')
  List<PaymentMethodItemDto>? get data => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $PaymentMethodAnalyticDtoCopyWith<$Res> {
  factory $PaymentMethodAnalyticDtoCopyWith(
    PaymentMethodAnalyticDto value,
    $Res Function(PaymentMethodAnalyticDto) then,
  ) = _$PaymentMethodAnalyticDtoCopyWithImpl<$Res, PaymentMethodAnalyticDto>;
  @useResult
  $Res call({
    @JsonKey(name: 'organization_id') String? organizationId,
    @JsonKey(name: 'outlet_id') String? outletId,
    @JsonKey(name: 'outlet_name') String? outletName,
    @JsonKey(name: 'date_from') String? dateFrom,
    @JsonKey(name: 'date_to') String? dateTo,
    @JsonKey(name: 'group_by') String? groupBy,
    @JsonKey(name: 'summary') PaymentMethodSummaryDto? summary,
    @JsonKey(name: 'data') List<PaymentMethodItemDto>? data,
  });

  $PaymentMethodSummaryDtoCopyWith<$Res>? get summary;
}

/// @nodoc
class _$PaymentMethodAnalyticDtoCopyWithImpl<
  $Res,
  $Val extends PaymentMethodAnalyticDto
>
    implements $PaymentMethodAnalyticDtoCopyWith<$Res> {
  _$PaymentMethodAnalyticDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of PaymentMethodAnalyticDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? organizationId = freezed,
    Object? outletId = freezed,
    Object? outletName = freezed,
    Object? dateFrom = freezed,
    Object? dateTo = freezed,
    Object? groupBy = freezed,
    Object? summary = freezed,
    Object? data = freezed,
  }) {
    return _then(
      _value.copyWith(
            organizationId: freezed == organizationId
                ? _value.organizationId
                : organizationId // ignore: cast_nullable_to_non_nullable
                      as String?,
            outletId: freezed == outletId
                ? _value.outletId
                : outletId // ignore: cast_nullable_to_non_nullable
                      as String?,
            outletName: freezed == outletName
                ? _value.outletName
                : outletName // ignore: cast_nullable_to_non_nullable
                      as String?,
            dateFrom: freezed == dateFrom
                ? _value.dateFrom
                : dateFrom // ignore: cast_nullable_to_non_nullable
                      as String?,
            dateTo: freezed == dateTo
                ? _value.dateTo
                : dateTo // ignore: cast_nullable_to_non_nullable
                      as String?,
            groupBy: freezed == groupBy
                ? _value.groupBy
                : groupBy // ignore: cast_nullable_to_non_nullable
                      as String?,
            summary: freezed == summary
                ? _value.summary
                : summary // ignore: cast_nullable_to_non_nullable
                      as PaymentMethodSummaryDto?,
            data: freezed == data
                ? _value.data
                : data // ignore: cast_nullable_to_non_nullable
                      as List<PaymentMethodItemDto>?,
          )
          as $Val,
    );
  }

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

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

/// @nodoc
abstract class _$$PaymentMethodAnalyticDtoImplCopyWith<$Res>
    implements $PaymentMethodAnalyticDtoCopyWith<$Res> {
  factory _$$PaymentMethodAnalyticDtoImplCopyWith(
    _$PaymentMethodAnalyticDtoImpl value,
    $Res Function(_$PaymentMethodAnalyticDtoImpl) then,
  ) = __$$PaymentMethodAnalyticDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'organization_id') String? organizationId,
    @JsonKey(name: 'outlet_id') String? outletId,
    @JsonKey(name: 'outlet_name') String? outletName,
    @JsonKey(name: 'date_from') String? dateFrom,
    @JsonKey(name: 'date_to') String? dateTo,
    @JsonKey(name: 'group_by') String? groupBy,
    @JsonKey(name: 'summary') PaymentMethodSummaryDto? summary,
    @JsonKey(name: 'data') List<PaymentMethodItemDto>? data,
  });

  @override
  $PaymentMethodSummaryDtoCopyWith<$Res>? get summary;
}

/// @nodoc
class __$$PaymentMethodAnalyticDtoImplCopyWithImpl<$Res>
    extends
        _$PaymentMethodAnalyticDtoCopyWithImpl<
          $Res,
          _$PaymentMethodAnalyticDtoImpl
        >
    implements _$$PaymentMethodAnalyticDtoImplCopyWith<$Res> {
  __$$PaymentMethodAnalyticDtoImplCopyWithImpl(
    _$PaymentMethodAnalyticDtoImpl _value,
    $Res Function(_$PaymentMethodAnalyticDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of PaymentMethodAnalyticDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? organizationId = freezed,
    Object? outletId = freezed,
    Object? outletName = freezed,
    Object? dateFrom = freezed,
    Object? dateTo = freezed,
    Object? groupBy = freezed,
    Object? summary = freezed,
    Object? data = freezed,
  }) {
    return _then(
      _$PaymentMethodAnalyticDtoImpl(
        organizationId: freezed == organizationId
            ? _value.organizationId
            : organizationId // ignore: cast_nullable_to_non_nullable
                  as String?,
        outletId: freezed == outletId
            ? _value.outletId
            : outletId // ignore: cast_nullable_to_non_nullable
                  as String?,
        outletName: freezed == outletName
            ? _value.outletName
            : outletName // ignore: cast_nullable_to_non_nullable
                  as String?,
        dateFrom: freezed == dateFrom
            ? _value.dateFrom
            : dateFrom // ignore: cast_nullable_to_non_nullable
                  as String?,
        dateTo: freezed == dateTo
            ? _value.dateTo
            : dateTo // ignore: cast_nullable_to_non_nullable
                  as String?,
        groupBy: freezed == groupBy
            ? _value.groupBy
            : groupBy // ignore: cast_nullable_to_non_nullable
                  as String?,
        summary: freezed == summary
            ? _value.summary
            : summary // ignore: cast_nullable_to_non_nullable
                  as PaymentMethodSummaryDto?,
        data: freezed == data
            ? _value._data
            : data // ignore: cast_nullable_to_non_nullable
                  as List<PaymentMethodItemDto>?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$PaymentMethodAnalyticDtoImpl extends _PaymentMethodAnalyticDto {
  const _$PaymentMethodAnalyticDtoImpl({
    @JsonKey(name: 'organization_id') this.organizationId,
    @JsonKey(name: 'outlet_id') this.outletId,
    @JsonKey(name: 'outlet_name') this.outletName,
    @JsonKey(name: 'date_from') this.dateFrom,
    @JsonKey(name: 'date_to') this.dateTo,
    @JsonKey(name: 'group_by') this.groupBy,
    @JsonKey(name: 'summary') this.summary,
    @JsonKey(name: 'data') final List<PaymentMethodItemDto>? data,
  }) : _data = data,
       super._();

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

  @override
  @JsonKey(name: 'organization_id')
  final String? organizationId;
  @override
  @JsonKey(name: 'outlet_id')
  final String? outletId;
  @override
  @JsonKey(name: 'outlet_name')
  final String? outletName;
  @override
  @JsonKey(name: 'date_from')
  final String? dateFrom;
  @override
  @JsonKey(name: 'date_to')
  final String? dateTo;
  @override
  @JsonKey(name: 'group_by')
  final String? groupBy;
  @override
  @JsonKey(name: 'summary')
  final PaymentMethodSummaryDto? summary;
  final List<PaymentMethodItemDto>? _data;
  @override
  @JsonKey(name: 'data')
  List<PaymentMethodItemDto>? get data {
    final value = _data;
    if (value == null) return null;
    if (_data is EqualUnmodifiableListView) return _data;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

  @override
  String toString() {
    return 'PaymentMethodAnalyticDto(organizationId: $organizationId, outletId: $outletId, outletName: $outletName, dateFrom: $dateFrom, dateTo: $dateTo, groupBy: $groupBy, summary: $summary, data: $data)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$PaymentMethodAnalyticDtoImpl &&
            (identical(other.organizationId, organizationId) ||
                other.organizationId == organizationId) &&
            (identical(other.outletId, outletId) ||
                other.outletId == outletId) &&
            (identical(other.outletName, outletName) ||
                other.outletName == outletName) &&
            (identical(other.dateFrom, dateFrom) ||
                other.dateFrom == dateFrom) &&
            (identical(other.dateTo, dateTo) || other.dateTo == dateTo) &&
            (identical(other.groupBy, groupBy) || other.groupBy == groupBy) &&
            (identical(other.summary, summary) || other.summary == summary) &&
            const DeepCollectionEquality().equals(other._data, _data));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    organizationId,
    outletId,
    outletName,
    dateFrom,
    dateTo,
    groupBy,
    summary,
    const DeepCollectionEquality().hash(_data),
  );

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

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

abstract class _PaymentMethodAnalyticDto extends PaymentMethodAnalyticDto {
  const factory _PaymentMethodAnalyticDto({
    @JsonKey(name: 'organization_id') final String? organizationId,
    @JsonKey(name: 'outlet_id') final String? outletId,
    @JsonKey(name: 'outlet_name') final String? outletName,
    @JsonKey(name: 'date_from') final String? dateFrom,
    @JsonKey(name: 'date_to') final String? dateTo,
    @JsonKey(name: 'group_by') final String? groupBy,
    @JsonKey(name: 'summary') final PaymentMethodSummaryDto? summary,
    @JsonKey(name: 'data') final List<PaymentMethodItemDto>? data,
  }) = _$PaymentMethodAnalyticDtoImpl;
  const _PaymentMethodAnalyticDto._() : super._();

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

  @override
  @JsonKey(name: 'organization_id')
  String? get organizationId;
  @override
  @JsonKey(name: 'outlet_id')
  String? get outletId;
  @override
  @JsonKey(name: 'outlet_name')
  String? get outletName;
  @override
  @JsonKey(name: 'date_from')
  String? get dateFrom;
  @override
  @JsonKey(name: 'date_to')
  String? get dateTo;
  @override
  @JsonKey(name: 'group_by')
  String? get groupBy;
  @override
  @JsonKey(name: 'summary')
  PaymentMethodSummaryDto? get summary;
  @override
  @JsonKey(name: 'data')
  List<PaymentMethodItemDto>? get data;

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

PaymentMethodItemDto _$PaymentMethodItemDtoFromJson(Map<String, dynamic> json) {
  return _PaymentMethodItemDto.fromJson(json);
}

/// @nodoc
mixin _$PaymentMethodItemDto {
  @JsonKey(name: 'payment_method_id')
  String? get paymentMethodId => throw _privateConstructorUsedError;
  @JsonKey(name: 'payment_method_name')
  String? get paymentMethodName => throw _privateConstructorUsedError;
  @JsonKey(name: 'payment_method_type')
  String? get paymentMethodType => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_amount')
  num? get totalAmount => throw _privateConstructorUsedError;
  @JsonKey(name: 'order_count')
  int? get orderCount => throw _privateConstructorUsedError;
  @JsonKey(name: 'payment_count')
  int? get paymentCount => throw _privateConstructorUsedError;
  @JsonKey(name: 'percentage')
  double? get percentage => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $PaymentMethodItemDtoCopyWith<$Res> {
  factory $PaymentMethodItemDtoCopyWith(
    PaymentMethodItemDto value,
    $Res Function(PaymentMethodItemDto) then,
  ) = _$PaymentMethodItemDtoCopyWithImpl<$Res, PaymentMethodItemDto>;
  @useResult
  $Res call({
    @JsonKey(name: 'payment_method_id') String? paymentMethodId,
    @JsonKey(name: 'payment_method_name') String? paymentMethodName,
    @JsonKey(name: 'payment_method_type') String? paymentMethodType,
    @JsonKey(name: 'total_amount') num? totalAmount,
    @JsonKey(name: 'order_count') int? orderCount,
    @JsonKey(name: 'payment_count') int? paymentCount,
    @JsonKey(name: 'percentage') double? percentage,
  });
}

/// @nodoc
class _$PaymentMethodItemDtoCopyWithImpl<
  $Res,
  $Val extends PaymentMethodItemDto
>
    implements $PaymentMethodItemDtoCopyWith<$Res> {
  _$PaymentMethodItemDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of PaymentMethodItemDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? paymentMethodId = freezed,
    Object? paymentMethodName = freezed,
    Object? paymentMethodType = freezed,
    Object? totalAmount = freezed,
    Object? orderCount = freezed,
    Object? paymentCount = freezed,
    Object? percentage = freezed,
  }) {
    return _then(
      _value.copyWith(
            paymentMethodId: freezed == paymentMethodId
                ? _value.paymentMethodId
                : paymentMethodId // ignore: cast_nullable_to_non_nullable
                      as String?,
            paymentMethodName: freezed == paymentMethodName
                ? _value.paymentMethodName
                : paymentMethodName // ignore: cast_nullable_to_non_nullable
                      as String?,
            paymentMethodType: freezed == paymentMethodType
                ? _value.paymentMethodType
                : paymentMethodType // ignore: cast_nullable_to_non_nullable
                      as String?,
            totalAmount: freezed == totalAmount
                ? _value.totalAmount
                : totalAmount // ignore: cast_nullable_to_non_nullable
                      as num?,
            orderCount: freezed == orderCount
                ? _value.orderCount
                : orderCount // ignore: cast_nullable_to_non_nullable
                      as int?,
            paymentCount: freezed == paymentCount
                ? _value.paymentCount
                : paymentCount // ignore: cast_nullable_to_non_nullable
                      as int?,
            percentage: freezed == percentage
                ? _value.percentage
                : percentage // ignore: cast_nullable_to_non_nullable
                      as double?,
          )
          as $Val,
    );
  }
}

/// @nodoc
abstract class _$$PaymentMethodItemDtoImplCopyWith<$Res>
    implements $PaymentMethodItemDtoCopyWith<$Res> {
  factory _$$PaymentMethodItemDtoImplCopyWith(
    _$PaymentMethodItemDtoImpl value,
    $Res Function(_$PaymentMethodItemDtoImpl) then,
  ) = __$$PaymentMethodItemDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'payment_method_id') String? paymentMethodId,
    @JsonKey(name: 'payment_method_name') String? paymentMethodName,
    @JsonKey(name: 'payment_method_type') String? paymentMethodType,
    @JsonKey(name: 'total_amount') num? totalAmount,
    @JsonKey(name: 'order_count') int? orderCount,
    @JsonKey(name: 'payment_count') int? paymentCount,
    @JsonKey(name: 'percentage') double? percentage,
  });
}

/// @nodoc
class __$$PaymentMethodItemDtoImplCopyWithImpl<$Res>
    extends _$PaymentMethodItemDtoCopyWithImpl<$Res, _$PaymentMethodItemDtoImpl>
    implements _$$PaymentMethodItemDtoImplCopyWith<$Res> {
  __$$PaymentMethodItemDtoImplCopyWithImpl(
    _$PaymentMethodItemDtoImpl _value,
    $Res Function(_$PaymentMethodItemDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of PaymentMethodItemDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? paymentMethodId = freezed,
    Object? paymentMethodName = freezed,
    Object? paymentMethodType = freezed,
    Object? totalAmount = freezed,
    Object? orderCount = freezed,
    Object? paymentCount = freezed,
    Object? percentage = freezed,
  }) {
    return _then(
      _$PaymentMethodItemDtoImpl(
        paymentMethodId: freezed == paymentMethodId
            ? _value.paymentMethodId
            : paymentMethodId // ignore: cast_nullable_to_non_nullable
                  as String?,
        paymentMethodName: freezed == paymentMethodName
            ? _value.paymentMethodName
            : paymentMethodName // ignore: cast_nullable_to_non_nullable
                  as String?,
        paymentMethodType: freezed == paymentMethodType
            ? _value.paymentMethodType
            : paymentMethodType // ignore: cast_nullable_to_non_nullable
                  as String?,
        totalAmount: freezed == totalAmount
            ? _value.totalAmount
            : totalAmount // ignore: cast_nullable_to_non_nullable
                  as num?,
        orderCount: freezed == orderCount
            ? _value.orderCount
            : orderCount // ignore: cast_nullable_to_non_nullable
                  as int?,
        paymentCount: freezed == paymentCount
            ? _value.paymentCount
            : paymentCount // ignore: cast_nullable_to_non_nullable
                  as int?,
        percentage: freezed == percentage
            ? _value.percentage
            : percentage // ignore: cast_nullable_to_non_nullable
                  as double?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$PaymentMethodItemDtoImpl extends _PaymentMethodItemDto {
  const _$PaymentMethodItemDtoImpl({
    @JsonKey(name: 'payment_method_id') this.paymentMethodId,
    @JsonKey(name: 'payment_method_name') this.paymentMethodName,
    @JsonKey(name: 'payment_method_type') this.paymentMethodType,
    @JsonKey(name: 'total_amount') this.totalAmount,
    @JsonKey(name: 'order_count') this.orderCount,
    @JsonKey(name: 'payment_count') this.paymentCount,
    @JsonKey(name: 'percentage') this.percentage,
  }) : super._();

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

  @override
  @JsonKey(name: 'payment_method_id')
  final String? paymentMethodId;
  @override
  @JsonKey(name: 'payment_method_name')
  final String? paymentMethodName;
  @override
  @JsonKey(name: 'payment_method_type')
  final String? paymentMethodType;
  @override
  @JsonKey(name: 'total_amount')
  final num? totalAmount;
  @override
  @JsonKey(name: 'order_count')
  final int? orderCount;
  @override
  @JsonKey(name: 'payment_count')
  final int? paymentCount;
  @override
  @JsonKey(name: 'percentage')
  final double? percentage;

  @override
  String toString() {
    return 'PaymentMethodItemDto(paymentMethodId: $paymentMethodId, paymentMethodName: $paymentMethodName, paymentMethodType: $paymentMethodType, totalAmount: $totalAmount, orderCount: $orderCount, paymentCount: $paymentCount, percentage: $percentage)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$PaymentMethodItemDtoImpl &&
            (identical(other.paymentMethodId, paymentMethodId) ||
                other.paymentMethodId == paymentMethodId) &&
            (identical(other.paymentMethodName, paymentMethodName) ||
                other.paymentMethodName == paymentMethodName) &&
            (identical(other.paymentMethodType, paymentMethodType) ||
                other.paymentMethodType == paymentMethodType) &&
            (identical(other.totalAmount, totalAmount) ||
                other.totalAmount == totalAmount) &&
            (identical(other.orderCount, orderCount) ||
                other.orderCount == orderCount) &&
            (identical(other.paymentCount, paymentCount) ||
                other.paymentCount == paymentCount) &&
            (identical(other.percentage, percentage) ||
                other.percentage == percentage));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    paymentMethodId,
    paymentMethodName,
    paymentMethodType,
    totalAmount,
    orderCount,
    paymentCount,
    percentage,
  );

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

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

abstract class _PaymentMethodItemDto extends PaymentMethodItemDto {
  const factory _PaymentMethodItemDto({
    @JsonKey(name: 'payment_method_id') final String? paymentMethodId,
    @JsonKey(name: 'payment_method_name') final String? paymentMethodName,
    @JsonKey(name: 'payment_method_type') final String? paymentMethodType,
    @JsonKey(name: 'total_amount') final num? totalAmount,
    @JsonKey(name: 'order_count') final int? orderCount,
    @JsonKey(name: 'payment_count') final int? paymentCount,
    @JsonKey(name: 'percentage') final double? percentage,
  }) = _$PaymentMethodItemDtoImpl;
  const _PaymentMethodItemDto._() : super._();

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

  @override
  @JsonKey(name: 'payment_method_id')
  String? get paymentMethodId;
  @override
  @JsonKey(name: 'payment_method_name')
  String? get paymentMethodName;
  @override
  @JsonKey(name: 'payment_method_type')
  String? get paymentMethodType;
  @override
  @JsonKey(name: 'total_amount')
  num? get totalAmount;
  @override
  @JsonKey(name: 'order_count')
  int? get orderCount;
  @override
  @JsonKey(name: 'payment_count')
  int? get paymentCount;
  @override
  @JsonKey(name: 'percentage')
  double? get percentage;

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

PaymentMethodSummaryDto _$PaymentMethodSummaryDtoFromJson(
  Map<String, dynamic> json,
) {
  return _PaymentMethodSummaryDto.fromJson(json);
}

/// @nodoc
mixin _$PaymentMethodSummaryDto {
  @JsonKey(name: 'total_amount')
  num? get totalAmount => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_orders')
  int? get totalOrders => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_payments')
  int? get totalPayments => throw _privateConstructorUsedError;
  @JsonKey(name: 'average_order_value')
  double? get averageOrderValue => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $PaymentMethodSummaryDtoCopyWith<$Res> {
  factory $PaymentMethodSummaryDtoCopyWith(
    PaymentMethodSummaryDto value,
    $Res Function(PaymentMethodSummaryDto) then,
  ) = _$PaymentMethodSummaryDtoCopyWithImpl<$Res, PaymentMethodSummaryDto>;
  @useResult
  $Res call({
    @JsonKey(name: 'total_amount') num? totalAmount,
    @JsonKey(name: 'total_orders') int? totalOrders,
    @JsonKey(name: 'total_payments') int? totalPayments,
    @JsonKey(name: 'average_order_value') double? averageOrderValue,
  });
}

/// @nodoc
class _$PaymentMethodSummaryDtoCopyWithImpl<
  $Res,
  $Val extends PaymentMethodSummaryDto
>
    implements $PaymentMethodSummaryDtoCopyWith<$Res> {
  _$PaymentMethodSummaryDtoCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$PaymentMethodSummaryDtoImplCopyWith<$Res>
    implements $PaymentMethodSummaryDtoCopyWith<$Res> {
  factory _$$PaymentMethodSummaryDtoImplCopyWith(
    _$PaymentMethodSummaryDtoImpl value,
    $Res Function(_$PaymentMethodSummaryDtoImpl) then,
  ) = __$$PaymentMethodSummaryDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'total_amount') num? totalAmount,
    @JsonKey(name: 'total_orders') int? totalOrders,
    @JsonKey(name: 'total_payments') int? totalPayments,
    @JsonKey(name: 'average_order_value') double? averageOrderValue,
  });
}

/// @nodoc
class __$$PaymentMethodSummaryDtoImplCopyWithImpl<$Res>
    extends
        _$PaymentMethodSummaryDtoCopyWithImpl<
          $Res,
          _$PaymentMethodSummaryDtoImpl
        >
    implements _$$PaymentMethodSummaryDtoImplCopyWith<$Res> {
  __$$PaymentMethodSummaryDtoImplCopyWithImpl(
    _$PaymentMethodSummaryDtoImpl _value,
    $Res Function(_$PaymentMethodSummaryDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of PaymentMethodSummaryDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? totalAmount = freezed,
    Object? totalOrders = freezed,
    Object? totalPayments = freezed,
    Object? averageOrderValue = freezed,
  }) {
    return _then(
      _$PaymentMethodSummaryDtoImpl(
        totalAmount: freezed == totalAmount
            ? _value.totalAmount
            : totalAmount // ignore: cast_nullable_to_non_nullable
                  as num?,
        totalOrders: freezed == totalOrders
            ? _value.totalOrders
            : totalOrders // ignore: cast_nullable_to_non_nullable
                  as int?,
        totalPayments: freezed == totalPayments
            ? _value.totalPayments
            : totalPayments // ignore: cast_nullable_to_non_nullable
                  as int?,
        averageOrderValue: freezed == averageOrderValue
            ? _value.averageOrderValue
            : averageOrderValue // ignore: cast_nullable_to_non_nullable
                  as double?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$PaymentMethodSummaryDtoImpl extends _PaymentMethodSummaryDto {
  const _$PaymentMethodSummaryDtoImpl({
    @JsonKey(name: 'total_amount') this.totalAmount,
    @JsonKey(name: 'total_orders') this.totalOrders,
    @JsonKey(name: 'total_payments') this.totalPayments,
    @JsonKey(name: 'average_order_value') this.averageOrderValue,
  }) : super._();

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

  @override
  @JsonKey(name: 'total_amount')
  final num? totalAmount;
  @override
  @JsonKey(name: 'total_orders')
  final int? totalOrders;
  @override
  @JsonKey(name: 'total_payments')
  final int? totalPayments;
  @override
  @JsonKey(name: 'average_order_value')
  final double? averageOrderValue;

  @override
  String toString() {
    return 'PaymentMethodSummaryDto(totalAmount: $totalAmount, totalOrders: $totalOrders, totalPayments: $totalPayments, averageOrderValue: $averageOrderValue)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$PaymentMethodSummaryDtoImpl &&
            (identical(other.totalAmount, totalAmount) ||
                other.totalAmount == totalAmount) &&
            (identical(other.totalOrders, totalOrders) ||
                other.totalOrders == totalOrders) &&
            (identical(other.totalPayments, totalPayments) ||
                other.totalPayments == totalPayments) &&
            (identical(other.averageOrderValue, averageOrderValue) ||
                other.averageOrderValue == averageOrderValue));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    totalAmount,
    totalOrders,
    totalPayments,
    averageOrderValue,
  );

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

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

abstract class _PaymentMethodSummaryDto extends PaymentMethodSummaryDto {
  const factory _PaymentMethodSummaryDto({
    @JsonKey(name: 'total_amount') final num? totalAmount,
    @JsonKey(name: 'total_orders') final int? totalOrders,
    @JsonKey(name: 'total_payments') final int? totalPayments,
    @JsonKey(name: 'average_order_value') final double? averageOrderValue,
  }) = _$PaymentMethodSummaryDtoImpl;
  const _PaymentMethodSummaryDto._() : super._();

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

  @override
  @JsonKey(name: 'total_amount')
  num? get totalAmount;
  @override
  @JsonKey(name: 'total_orders')
  int? get totalOrders;
  @override
  @JsonKey(name: 'total_payments')
  int? get totalPayments;
  @override
  @JsonKey(name: 'average_order_value')
  double? get averageOrderValue;

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

PurchasingAnalyticDto _$PurchasingAnalyticDtoFromJson(
  Map<String, dynamic> json,
) {
  return _PurchasingAnalyticDto.fromJson(json);
}

/// @nodoc
mixin _$PurchasingAnalyticDto {
  @JsonKey(name: 'organization_id')
  String? get organizationId => throw _privateConstructorUsedError;
  @JsonKey(name: 'outlet_id')
  String? get outletId => throw _privateConstructorUsedError;
  @JsonKey(name: 'outlet_name')
  String? get outletName => throw _privateConstructorUsedError;
  @JsonKey(name: 'date_from')
  DateTime? get dateFrom => throw _privateConstructorUsedError;
  @JsonKey(name: 'date_to')
  DateTime? get dateTo => throw _privateConstructorUsedError;
  @JsonKey(name: 'group_by')
  String? get groupBy => throw _privateConstructorUsedError;
  @JsonKey(name: 'summary')
  PurchasingAnalyticSummaryDto? get summary =>
      throw _privateConstructorUsedError;
  @JsonKey(name: 'data')
  List<PurchasingAnalyticDataDto>? get data =>
      throw _privateConstructorUsedError;
  @JsonKey(name: 'ingredient_data')
  List<PurchasingIngredientDataDto>? get ingredientData =>
      throw _privateConstructorUsedError;
  @JsonKey(name: 'vendor_data')
  List<PurchasingVendorDataDto>? get vendorData =>
      throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $PurchasingAnalyticDtoCopyWith<$Res> {
  factory $PurchasingAnalyticDtoCopyWith(
    PurchasingAnalyticDto value,
    $Res Function(PurchasingAnalyticDto) then,
  ) = _$PurchasingAnalyticDtoCopyWithImpl<$Res, PurchasingAnalyticDto>;
  @useResult
  $Res call({
    @JsonKey(name: 'organization_id') String? organizationId,
    @JsonKey(name: 'outlet_id') String? outletId,
    @JsonKey(name: 'outlet_name') String? outletName,
    @JsonKey(name: 'date_from') DateTime? dateFrom,
    @JsonKey(name: 'date_to') DateTime? dateTo,
    @JsonKey(name: 'group_by') String? groupBy,
    @JsonKey(name: 'summary') PurchasingAnalyticSummaryDto? summary,
    @JsonKey(name: 'data') List<PurchasingAnalyticDataDto>? data,
    @JsonKey(name: 'ingredient_data')
    List<PurchasingIngredientDataDto>? ingredientData,
    @JsonKey(name: 'vendor_data') List<PurchasingVendorDataDto>? vendorData,
  });

  $PurchasingAnalyticSummaryDtoCopyWith<$Res>? get summary;
}

/// @nodoc
class _$PurchasingAnalyticDtoCopyWithImpl<
  $Res,
  $Val extends PurchasingAnalyticDto
>
    implements $PurchasingAnalyticDtoCopyWith<$Res> {
  _$PurchasingAnalyticDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of PurchasingAnalyticDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? organizationId = freezed,
    Object? outletId = freezed,
    Object? outletName = freezed,
    Object? dateFrom = freezed,
    Object? dateTo = freezed,
    Object? groupBy = freezed,
    Object? summary = freezed,
    Object? data = freezed,
    Object? ingredientData = freezed,
    Object? vendorData = freezed,
  }) {
    return _then(
      _value.copyWith(
            organizationId: freezed == organizationId
                ? _value.organizationId
                : organizationId // ignore: cast_nullable_to_non_nullable
                      as String?,
            outletId: freezed == outletId
                ? _value.outletId
                : outletId // ignore: cast_nullable_to_non_nullable
                      as String?,
            outletName: freezed == outletName
                ? _value.outletName
                : outletName // ignore: cast_nullable_to_non_nullable
                      as String?,
            dateFrom: freezed == dateFrom
                ? _value.dateFrom
                : dateFrom // ignore: cast_nullable_to_non_nullable
                      as DateTime?,
            dateTo: freezed == dateTo
                ? _value.dateTo
                : dateTo // ignore: cast_nullable_to_non_nullable
                      as DateTime?,
            groupBy: freezed == groupBy
                ? _value.groupBy
                : groupBy // ignore: cast_nullable_to_non_nullable
                      as String?,
            summary: freezed == summary
                ? _value.summary
                : summary // ignore: cast_nullable_to_non_nullable
                      as PurchasingAnalyticSummaryDto?,
            data: freezed == data
                ? _value.data
                : data // ignore: cast_nullable_to_non_nullable
                      as List<PurchasingAnalyticDataDto>?,
            ingredientData: freezed == ingredientData
                ? _value.ingredientData
                : ingredientData // ignore: cast_nullable_to_non_nullable
                      as List<PurchasingIngredientDataDto>?,
            vendorData: freezed == vendorData
                ? _value.vendorData
                : vendorData // ignore: cast_nullable_to_non_nullable
                      as List<PurchasingVendorDataDto>?,
          )
          as $Val,
    );
  }

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

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

/// @nodoc
abstract class _$$PurchasingAnalyticDtoImplCopyWith<$Res>
    implements $PurchasingAnalyticDtoCopyWith<$Res> {
  factory _$$PurchasingAnalyticDtoImplCopyWith(
    _$PurchasingAnalyticDtoImpl value,
    $Res Function(_$PurchasingAnalyticDtoImpl) then,
  ) = __$$PurchasingAnalyticDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'organization_id') String? organizationId,
    @JsonKey(name: 'outlet_id') String? outletId,
    @JsonKey(name: 'outlet_name') String? outletName,
    @JsonKey(name: 'date_from') DateTime? dateFrom,
    @JsonKey(name: 'date_to') DateTime? dateTo,
    @JsonKey(name: 'group_by') String? groupBy,
    @JsonKey(name: 'summary') PurchasingAnalyticSummaryDto? summary,
    @JsonKey(name: 'data') List<PurchasingAnalyticDataDto>? data,
    @JsonKey(name: 'ingredient_data')
    List<PurchasingIngredientDataDto>? ingredientData,
    @JsonKey(name: 'vendor_data') List<PurchasingVendorDataDto>? vendorData,
  });

  @override
  $PurchasingAnalyticSummaryDtoCopyWith<$Res>? get summary;
}

/// @nodoc
class __$$PurchasingAnalyticDtoImplCopyWithImpl<$Res>
    extends
        _$PurchasingAnalyticDtoCopyWithImpl<$Res, _$PurchasingAnalyticDtoImpl>
    implements _$$PurchasingAnalyticDtoImplCopyWith<$Res> {
  __$$PurchasingAnalyticDtoImplCopyWithImpl(
    _$PurchasingAnalyticDtoImpl _value,
    $Res Function(_$PurchasingAnalyticDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of PurchasingAnalyticDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? organizationId = freezed,
    Object? outletId = freezed,
    Object? outletName = freezed,
    Object? dateFrom = freezed,
    Object? dateTo = freezed,
    Object? groupBy = freezed,
    Object? summary = freezed,
    Object? data = freezed,
    Object? ingredientData = freezed,
    Object? vendorData = freezed,
  }) {
    return _then(
      _$PurchasingAnalyticDtoImpl(
        organizationId: freezed == organizationId
            ? _value.organizationId
            : organizationId // ignore: cast_nullable_to_non_nullable
                  as String?,
        outletId: freezed == outletId
            ? _value.outletId
            : outletId // ignore: cast_nullable_to_non_nullable
                  as String?,
        outletName: freezed == outletName
            ? _value.outletName
            : outletName // ignore: cast_nullable_to_non_nullable
                  as String?,
        dateFrom: freezed == dateFrom
            ? _value.dateFrom
            : dateFrom // ignore: cast_nullable_to_non_nullable
                  as DateTime?,
        dateTo: freezed == dateTo
            ? _value.dateTo
            : dateTo // ignore: cast_nullable_to_non_nullable
                  as DateTime?,
        groupBy: freezed == groupBy
            ? _value.groupBy
            : groupBy // ignore: cast_nullable_to_non_nullable
                  as String?,
        summary: freezed == summary
            ? _value.summary
            : summary // ignore: cast_nullable_to_non_nullable
                  as PurchasingAnalyticSummaryDto?,
        data: freezed == data
            ? _value._data
            : data // ignore: cast_nullable_to_non_nullable
                  as List<PurchasingAnalyticDataDto>?,
        ingredientData: freezed == ingredientData
            ? _value._ingredientData
            : ingredientData // ignore: cast_nullable_to_non_nullable
                  as List<PurchasingIngredientDataDto>?,
        vendorData: freezed == vendorData
            ? _value._vendorData
            : vendorData // ignore: cast_nullable_to_non_nullable
                  as List<PurchasingVendorDataDto>?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$PurchasingAnalyticDtoImpl extends _PurchasingAnalyticDto {
  const _$PurchasingAnalyticDtoImpl({
    @JsonKey(name: 'organization_id') this.organizationId,
    @JsonKey(name: 'outlet_id') this.outletId,
    @JsonKey(name: 'outlet_name') this.outletName,
    @JsonKey(name: 'date_from') this.dateFrom,
    @JsonKey(name: 'date_to') this.dateTo,
    @JsonKey(name: 'group_by') this.groupBy,
    @JsonKey(name: 'summary') this.summary,
    @JsonKey(name: 'data') final List<PurchasingAnalyticDataDto>? data,
    @JsonKey(name: 'ingredient_data')
    final List<PurchasingIngredientDataDto>? ingredientData,
    @JsonKey(name: 'vendor_data')
    final List<PurchasingVendorDataDto>? vendorData,
  }) : _data = data,
       _ingredientData = ingredientData,
       _vendorData = vendorData,
       super._();

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

  @override
  @JsonKey(name: 'organization_id')
  final String? organizationId;
  @override
  @JsonKey(name: 'outlet_id')
  final String? outletId;
  @override
  @JsonKey(name: 'outlet_name')
  final String? outletName;
  @override
  @JsonKey(name: 'date_from')
  final DateTime? dateFrom;
  @override
  @JsonKey(name: 'date_to')
  final DateTime? dateTo;
  @override
  @JsonKey(name: 'group_by')
  final String? groupBy;
  @override
  @JsonKey(name: 'summary')
  final PurchasingAnalyticSummaryDto? summary;
  final List<PurchasingAnalyticDataDto>? _data;
  @override
  @JsonKey(name: 'data')
  List<PurchasingAnalyticDataDto>? get data {
    final value = _data;
    if (value == null) return null;
    if (_data is EqualUnmodifiableListView) return _data;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

  final List<PurchasingIngredientDataDto>? _ingredientData;
  @override
  @JsonKey(name: 'ingredient_data')
  List<PurchasingIngredientDataDto>? get ingredientData {
    final value = _ingredientData;
    if (value == null) return null;
    if (_ingredientData is EqualUnmodifiableListView) return _ingredientData;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

  final List<PurchasingVendorDataDto>? _vendorData;
  @override
  @JsonKey(name: 'vendor_data')
  List<PurchasingVendorDataDto>? get vendorData {
    final value = _vendorData;
    if (value == null) return null;
    if (_vendorData is EqualUnmodifiableListView) return _vendorData;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

  @override
  String toString() {
    return 'PurchasingAnalyticDto(organizationId: $organizationId, outletId: $outletId, outletName: $outletName, dateFrom: $dateFrom, dateTo: $dateTo, groupBy: $groupBy, summary: $summary, data: $data, ingredientData: $ingredientData, vendorData: $vendorData)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$PurchasingAnalyticDtoImpl &&
            (identical(other.organizationId, organizationId) ||
                other.organizationId == organizationId) &&
            (identical(other.outletId, outletId) ||
                other.outletId == outletId) &&
            (identical(other.outletName, outletName) ||
                other.outletName == outletName) &&
            (identical(other.dateFrom, dateFrom) ||
                other.dateFrom == dateFrom) &&
            (identical(other.dateTo, dateTo) || other.dateTo == dateTo) &&
            (identical(other.groupBy, groupBy) || other.groupBy == groupBy) &&
            (identical(other.summary, summary) || other.summary == summary) &&
            const DeepCollectionEquality().equals(other._data, _data) &&
            const DeepCollectionEquality().equals(
              other._ingredientData,
              _ingredientData,
            ) &&
            const DeepCollectionEquality().equals(
              other._vendorData,
              _vendorData,
            ));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    organizationId,
    outletId,
    outletName,
    dateFrom,
    dateTo,
    groupBy,
    summary,
    const DeepCollectionEquality().hash(_data),
    const DeepCollectionEquality().hash(_ingredientData),
    const DeepCollectionEquality().hash(_vendorData),
  );

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

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

abstract class _PurchasingAnalyticDto extends PurchasingAnalyticDto {
  const factory _PurchasingAnalyticDto({
    @JsonKey(name: 'organization_id') final String? organizationId,
    @JsonKey(name: 'outlet_id') final String? outletId,
    @JsonKey(name: 'outlet_name') final String? outletName,
    @JsonKey(name: 'date_from') final DateTime? dateFrom,
    @JsonKey(name: 'date_to') final DateTime? dateTo,
    @JsonKey(name: 'group_by') final String? groupBy,
    @JsonKey(name: 'summary') final PurchasingAnalyticSummaryDto? summary,
    @JsonKey(name: 'data') final List<PurchasingAnalyticDataDto>? data,
    @JsonKey(name: 'ingredient_data')
    final List<PurchasingIngredientDataDto>? ingredientData,
    @JsonKey(name: 'vendor_data')
    final List<PurchasingVendorDataDto>? vendorData,
  }) = _$PurchasingAnalyticDtoImpl;
  const _PurchasingAnalyticDto._() : super._();

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

  @override
  @JsonKey(name: 'organization_id')
  String? get organizationId;
  @override
  @JsonKey(name: 'outlet_id')
  String? get outletId;
  @override
  @JsonKey(name: 'outlet_name')
  String? get outletName;
  @override
  @JsonKey(name: 'date_from')
  DateTime? get dateFrom;
  @override
  @JsonKey(name: 'date_to')
  DateTime? get dateTo;
  @override
  @JsonKey(name: 'group_by')
  String? get groupBy;
  @override
  @JsonKey(name: 'summary')
  PurchasingAnalyticSummaryDto? get summary;
  @override
  @JsonKey(name: 'data')
  List<PurchasingAnalyticDataDto>? get data;
  @override
  @JsonKey(name: 'ingredient_data')
  List<PurchasingIngredientDataDto>? get ingredientData;
  @override
  @JsonKey(name: 'vendor_data')
  List<PurchasingVendorDataDto>? get vendorData;

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

PurchasingAnalyticSummaryDto _$PurchasingAnalyticSummaryDtoFromJson(
  Map<String, dynamic> json,
) {
  return _PurchasingAnalyticSummaryDto.fromJson(json);
}

/// @nodoc
mixin _$PurchasingAnalyticSummaryDto {
  @JsonKey(name: 'total_purchases')
  num? get totalPurchases => throw _privateConstructorUsedError;
  @JsonKey(name: 'raw_material_purchases')
  num? get rawMaterialPurchases => throw _privateConstructorUsedError;
  @JsonKey(name: 'expense_purchases')
  num? get expensePurchases => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_purchase_orders')
  num? get totalPurchaseOrders => throw _privateConstructorUsedError;
  @JsonKey(name: 'raw_material_purchase_orders')
  num? get rawMaterialPurchaseOrders => throw _privateConstructorUsedError;
  @JsonKey(name: 'expense_count')
  num? get expenseCount => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_quantity')
  num? get totalQuantity => throw _privateConstructorUsedError;
  @JsonKey(name: 'average_purchase_order_value')
  num? get averagePurchaseOrderValue => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_ingredients')
  num? get totalIngredients => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_vendors')
  num? get totalVendors => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $PurchasingAnalyticSummaryDtoCopyWith<$Res> {
  factory $PurchasingAnalyticSummaryDtoCopyWith(
    PurchasingAnalyticSummaryDto value,
    $Res Function(PurchasingAnalyticSummaryDto) then,
  ) =
      _$PurchasingAnalyticSummaryDtoCopyWithImpl<
        $Res,
        PurchasingAnalyticSummaryDto
      >;
  @useResult
  $Res call({
    @JsonKey(name: 'total_purchases') num? totalPurchases,
    @JsonKey(name: 'raw_material_purchases') num? rawMaterialPurchases,
    @JsonKey(name: 'expense_purchases') num? expensePurchases,
    @JsonKey(name: 'total_purchase_orders') num? totalPurchaseOrders,
    @JsonKey(name: 'raw_material_purchase_orders')
    num? rawMaterialPurchaseOrders,
    @JsonKey(name: 'expense_count') num? expenseCount,
    @JsonKey(name: 'total_quantity') num? totalQuantity,
    @JsonKey(name: 'average_purchase_order_value')
    num? averagePurchaseOrderValue,
    @JsonKey(name: 'total_ingredients') num? totalIngredients,
    @JsonKey(name: 'total_vendors') num? totalVendors,
  });
}

/// @nodoc
class _$PurchasingAnalyticSummaryDtoCopyWithImpl<
  $Res,
  $Val extends PurchasingAnalyticSummaryDto
>
    implements $PurchasingAnalyticSummaryDtoCopyWith<$Res> {
  _$PurchasingAnalyticSummaryDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of PurchasingAnalyticSummaryDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? totalPurchases = freezed,
    Object? rawMaterialPurchases = freezed,
    Object? expensePurchases = freezed,
    Object? totalPurchaseOrders = freezed,
    Object? rawMaterialPurchaseOrders = freezed,
    Object? expenseCount = freezed,
    Object? totalQuantity = freezed,
    Object? averagePurchaseOrderValue = freezed,
    Object? totalIngredients = freezed,
    Object? totalVendors = freezed,
  }) {
    return _then(
      _value.copyWith(
            totalPurchases: freezed == totalPurchases
                ? _value.totalPurchases
                : totalPurchases // ignore: cast_nullable_to_non_nullable
                      as num?,
            rawMaterialPurchases: freezed == rawMaterialPurchases
                ? _value.rawMaterialPurchases
                : rawMaterialPurchases // ignore: cast_nullable_to_non_nullable
                      as num?,
            expensePurchases: freezed == expensePurchases
                ? _value.expensePurchases
                : expensePurchases // ignore: cast_nullable_to_non_nullable
                      as num?,
            totalPurchaseOrders: freezed == totalPurchaseOrders
                ? _value.totalPurchaseOrders
                : totalPurchaseOrders // ignore: cast_nullable_to_non_nullable
                      as num?,
            rawMaterialPurchaseOrders: freezed == rawMaterialPurchaseOrders
                ? _value.rawMaterialPurchaseOrders
                : rawMaterialPurchaseOrders // ignore: cast_nullable_to_non_nullable
                      as num?,
            expenseCount: freezed == expenseCount
                ? _value.expenseCount
                : expenseCount // ignore: cast_nullable_to_non_nullable
                      as num?,
            totalQuantity: freezed == totalQuantity
                ? _value.totalQuantity
                : totalQuantity // ignore: cast_nullable_to_non_nullable
                      as num?,
            averagePurchaseOrderValue: freezed == averagePurchaseOrderValue
                ? _value.averagePurchaseOrderValue
                : averagePurchaseOrderValue // ignore: cast_nullable_to_non_nullable
                      as num?,
            totalIngredients: freezed == totalIngredients
                ? _value.totalIngredients
                : totalIngredients // ignore: cast_nullable_to_non_nullable
                      as num?,
            totalVendors: freezed == totalVendors
                ? _value.totalVendors
                : totalVendors // ignore: cast_nullable_to_non_nullable
                      as num?,
          )
          as $Val,
    );
  }
}

/// @nodoc
abstract class _$$PurchasingAnalyticSummaryDtoImplCopyWith<$Res>
    implements $PurchasingAnalyticSummaryDtoCopyWith<$Res> {
  factory _$$PurchasingAnalyticSummaryDtoImplCopyWith(
    _$PurchasingAnalyticSummaryDtoImpl value,
    $Res Function(_$PurchasingAnalyticSummaryDtoImpl) then,
  ) = __$$PurchasingAnalyticSummaryDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'total_purchases') num? totalPurchases,
    @JsonKey(name: 'raw_material_purchases') num? rawMaterialPurchases,
    @JsonKey(name: 'expense_purchases') num? expensePurchases,
    @JsonKey(name: 'total_purchase_orders') num? totalPurchaseOrders,
    @JsonKey(name: 'raw_material_purchase_orders')
    num? rawMaterialPurchaseOrders,
    @JsonKey(name: 'expense_count') num? expenseCount,
    @JsonKey(name: 'total_quantity') num? totalQuantity,
    @JsonKey(name: 'average_purchase_order_value')
    num? averagePurchaseOrderValue,
    @JsonKey(name: 'total_ingredients') num? totalIngredients,
    @JsonKey(name: 'total_vendors') num? totalVendors,
  });
}

/// @nodoc
class __$$PurchasingAnalyticSummaryDtoImplCopyWithImpl<$Res>
    extends
        _$PurchasingAnalyticSummaryDtoCopyWithImpl<
          $Res,
          _$PurchasingAnalyticSummaryDtoImpl
        >
    implements _$$PurchasingAnalyticSummaryDtoImplCopyWith<$Res> {
  __$$PurchasingAnalyticSummaryDtoImplCopyWithImpl(
    _$PurchasingAnalyticSummaryDtoImpl _value,
    $Res Function(_$PurchasingAnalyticSummaryDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of PurchasingAnalyticSummaryDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? totalPurchases = freezed,
    Object? rawMaterialPurchases = freezed,
    Object? expensePurchases = freezed,
    Object? totalPurchaseOrders = freezed,
    Object? rawMaterialPurchaseOrders = freezed,
    Object? expenseCount = freezed,
    Object? totalQuantity = freezed,
    Object? averagePurchaseOrderValue = freezed,
    Object? totalIngredients = freezed,
    Object? totalVendors = freezed,
  }) {
    return _then(
      _$PurchasingAnalyticSummaryDtoImpl(
        totalPurchases: freezed == totalPurchases
            ? _value.totalPurchases
            : totalPurchases // ignore: cast_nullable_to_non_nullable
                  as num?,
        rawMaterialPurchases: freezed == rawMaterialPurchases
            ? _value.rawMaterialPurchases
            : rawMaterialPurchases // ignore: cast_nullable_to_non_nullable
                  as num?,
        expensePurchases: freezed == expensePurchases
            ? _value.expensePurchases
            : expensePurchases // ignore: cast_nullable_to_non_nullable
                  as num?,
        totalPurchaseOrders: freezed == totalPurchaseOrders
            ? _value.totalPurchaseOrders
            : totalPurchaseOrders // ignore: cast_nullable_to_non_nullable
                  as num?,
        rawMaterialPurchaseOrders: freezed == rawMaterialPurchaseOrders
            ? _value.rawMaterialPurchaseOrders
            : rawMaterialPurchaseOrders // ignore: cast_nullable_to_non_nullable
                  as num?,
        expenseCount: freezed == expenseCount
            ? _value.expenseCount
            : expenseCount // ignore: cast_nullable_to_non_nullable
                  as num?,
        totalQuantity: freezed == totalQuantity
            ? _value.totalQuantity
            : totalQuantity // ignore: cast_nullable_to_non_nullable
                  as num?,
        averagePurchaseOrderValue: freezed == averagePurchaseOrderValue
            ? _value.averagePurchaseOrderValue
            : averagePurchaseOrderValue // ignore: cast_nullable_to_non_nullable
                  as num?,
        totalIngredients: freezed == totalIngredients
            ? _value.totalIngredients
            : totalIngredients // ignore: cast_nullable_to_non_nullable
                  as num?,
        totalVendors: freezed == totalVendors
            ? _value.totalVendors
            : totalVendors // ignore: cast_nullable_to_non_nullable
                  as num?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$PurchasingAnalyticSummaryDtoImpl extends _PurchasingAnalyticSummaryDto {
  const _$PurchasingAnalyticSummaryDtoImpl({
    @JsonKey(name: 'total_purchases') this.totalPurchases,
    @JsonKey(name: 'raw_material_purchases') this.rawMaterialPurchases,
    @JsonKey(name: 'expense_purchases') this.expensePurchases,
    @JsonKey(name: 'total_purchase_orders') this.totalPurchaseOrders,
    @JsonKey(name: 'raw_material_purchase_orders')
    this.rawMaterialPurchaseOrders,
    @JsonKey(name: 'expense_count') this.expenseCount,
    @JsonKey(name: 'total_quantity') this.totalQuantity,
    @JsonKey(name: 'average_purchase_order_value')
    this.averagePurchaseOrderValue,
    @JsonKey(name: 'total_ingredients') this.totalIngredients,
    @JsonKey(name: 'total_vendors') this.totalVendors,
  }) : super._();

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

  @override
  @JsonKey(name: 'total_purchases')
  final num? totalPurchases;
  @override
  @JsonKey(name: 'raw_material_purchases')
  final num? rawMaterialPurchases;
  @override
  @JsonKey(name: 'expense_purchases')
  final num? expensePurchases;
  @override
  @JsonKey(name: 'total_purchase_orders')
  final num? totalPurchaseOrders;
  @override
  @JsonKey(name: 'raw_material_purchase_orders')
  final num? rawMaterialPurchaseOrders;
  @override
  @JsonKey(name: 'expense_count')
  final num? expenseCount;
  @override
  @JsonKey(name: 'total_quantity')
  final num? totalQuantity;
  @override
  @JsonKey(name: 'average_purchase_order_value')
  final num? averagePurchaseOrderValue;
  @override
  @JsonKey(name: 'total_ingredients')
  final num? totalIngredients;
  @override
  @JsonKey(name: 'total_vendors')
  final num? totalVendors;

  @override
  String toString() {
    return 'PurchasingAnalyticSummaryDto(totalPurchases: $totalPurchases, rawMaterialPurchases: $rawMaterialPurchases, expensePurchases: $expensePurchases, totalPurchaseOrders: $totalPurchaseOrders, rawMaterialPurchaseOrders: $rawMaterialPurchaseOrders, expenseCount: $expenseCount, totalQuantity: $totalQuantity, averagePurchaseOrderValue: $averagePurchaseOrderValue, totalIngredients: $totalIngredients, totalVendors: $totalVendors)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$PurchasingAnalyticSummaryDtoImpl &&
            (identical(other.totalPurchases, totalPurchases) ||
                other.totalPurchases == totalPurchases) &&
            (identical(other.rawMaterialPurchases, rawMaterialPurchases) ||
                other.rawMaterialPurchases == rawMaterialPurchases) &&
            (identical(other.expensePurchases, expensePurchases) ||
                other.expensePurchases == expensePurchases) &&
            (identical(other.totalPurchaseOrders, totalPurchaseOrders) ||
                other.totalPurchaseOrders == totalPurchaseOrders) &&
            (identical(
                  other.rawMaterialPurchaseOrders,
                  rawMaterialPurchaseOrders,
                ) ||
                other.rawMaterialPurchaseOrders == rawMaterialPurchaseOrders) &&
            (identical(other.expenseCount, expenseCount) ||
                other.expenseCount == expenseCount) &&
            (identical(other.totalQuantity, totalQuantity) ||
                other.totalQuantity == totalQuantity) &&
            (identical(
                  other.averagePurchaseOrderValue,
                  averagePurchaseOrderValue,
                ) ||
                other.averagePurchaseOrderValue == averagePurchaseOrderValue) &&
            (identical(other.totalIngredients, totalIngredients) ||
                other.totalIngredients == totalIngredients) &&
            (identical(other.totalVendors, totalVendors) ||
                other.totalVendors == totalVendors));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    totalPurchases,
    rawMaterialPurchases,
    expensePurchases,
    totalPurchaseOrders,
    rawMaterialPurchaseOrders,
    expenseCount,
    totalQuantity,
    averagePurchaseOrderValue,
    totalIngredients,
    totalVendors,
  );

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

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

abstract class _PurchasingAnalyticSummaryDto
    extends PurchasingAnalyticSummaryDto {
  const factory _PurchasingAnalyticSummaryDto({
    @JsonKey(name: 'total_purchases') final num? totalPurchases,
    @JsonKey(name: 'raw_material_purchases') final num? rawMaterialPurchases,
    @JsonKey(name: 'expense_purchases') final num? expensePurchases,
    @JsonKey(name: 'total_purchase_orders') final num? totalPurchaseOrders,
    @JsonKey(name: 'raw_material_purchase_orders')
    final num? rawMaterialPurchaseOrders,
    @JsonKey(name: 'expense_count') final num? expenseCount,
    @JsonKey(name: 'total_quantity') final num? totalQuantity,
    @JsonKey(name: 'average_purchase_order_value')
    final num? averagePurchaseOrderValue,
    @JsonKey(name: 'total_ingredients') final num? totalIngredients,
    @JsonKey(name: 'total_vendors') final num? totalVendors,
  }) = _$PurchasingAnalyticSummaryDtoImpl;
  const _PurchasingAnalyticSummaryDto._() : super._();

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

  @override
  @JsonKey(name: 'total_purchases')
  num? get totalPurchases;
  @override
  @JsonKey(name: 'raw_material_purchases')
  num? get rawMaterialPurchases;
  @override
  @JsonKey(name: 'expense_purchases')
  num? get expensePurchases;
  @override
  @JsonKey(name: 'total_purchase_orders')
  num? get totalPurchaseOrders;
  @override
  @JsonKey(name: 'raw_material_purchase_orders')
  num? get rawMaterialPurchaseOrders;
  @override
  @JsonKey(name: 'expense_count')
  num? get expenseCount;
  @override
  @JsonKey(name: 'total_quantity')
  num? get totalQuantity;
  @override
  @JsonKey(name: 'average_purchase_order_value')
  num? get averagePurchaseOrderValue;
  @override
  @JsonKey(name: 'total_ingredients')
  num? get totalIngredients;
  @override
  @JsonKey(name: 'total_vendors')
  num? get totalVendors;

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

PurchasingAnalyticDataDto _$PurchasingAnalyticDataDtoFromJson(
  Map<String, dynamic> json,
) {
  return _PurchasingAnalyticDataDto.fromJson(json);
}

/// @nodoc
mixin _$PurchasingAnalyticDataDto {
  @JsonKey(name: 'date')
  DateTime? get date => throw _privateConstructorUsedError;
  @JsonKey(name: 'purchases')
  num? get purchases => throw _privateConstructorUsedError;
  @JsonKey(name: 'raw_material_purchases')
  num? get rawMaterialPurchases => throw _privateConstructorUsedError;
  @JsonKey(name: 'expense_purchases')
  num? get expensePurchases => throw _privateConstructorUsedError;
  @JsonKey(name: 'purchase_orders')
  num? get purchaseOrders => throw _privateConstructorUsedError;
  @JsonKey(name: 'raw_material_purchase_orders')
  num? get rawMaterialPurchaseOrders => throw _privateConstructorUsedError;
  @JsonKey(name: 'expense_count')
  num? get expenseCount => throw _privateConstructorUsedError;
  @JsonKey(name: 'quantity')
  num? get quantity => throw _privateConstructorUsedError;
  @JsonKey(name: 'ingredients')
  num? get ingredients => throw _privateConstructorUsedError;
  @JsonKey(name: 'vendors')
  num? get vendors => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $PurchasingAnalyticDataDtoCopyWith<$Res> {
  factory $PurchasingAnalyticDataDtoCopyWith(
    PurchasingAnalyticDataDto value,
    $Res Function(PurchasingAnalyticDataDto) then,
  ) = _$PurchasingAnalyticDataDtoCopyWithImpl<$Res, PurchasingAnalyticDataDto>;
  @useResult
  $Res call({
    @JsonKey(name: 'date') DateTime? date,
    @JsonKey(name: 'purchases') num? purchases,
    @JsonKey(name: 'raw_material_purchases') num? rawMaterialPurchases,
    @JsonKey(name: 'expense_purchases') num? expensePurchases,
    @JsonKey(name: 'purchase_orders') num? purchaseOrders,
    @JsonKey(name: 'raw_material_purchase_orders')
    num? rawMaterialPurchaseOrders,
    @JsonKey(name: 'expense_count') num? expenseCount,
    @JsonKey(name: 'quantity') num? quantity,
    @JsonKey(name: 'ingredients') num? ingredients,
    @JsonKey(name: 'vendors') num? vendors,
  });
}

/// @nodoc
class _$PurchasingAnalyticDataDtoCopyWithImpl<
  $Res,
  $Val extends PurchasingAnalyticDataDto
>
    implements $PurchasingAnalyticDataDtoCopyWith<$Res> {
  _$PurchasingAnalyticDataDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of PurchasingAnalyticDataDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? date = freezed,
    Object? purchases = freezed,
    Object? rawMaterialPurchases = freezed,
    Object? expensePurchases = freezed,
    Object? purchaseOrders = freezed,
    Object? rawMaterialPurchaseOrders = freezed,
    Object? expenseCount = freezed,
    Object? quantity = freezed,
    Object? ingredients = freezed,
    Object? vendors = freezed,
  }) {
    return _then(
      _value.copyWith(
            date: freezed == date
                ? _value.date
                : date // ignore: cast_nullable_to_non_nullable
                      as DateTime?,
            purchases: freezed == purchases
                ? _value.purchases
                : purchases // ignore: cast_nullable_to_non_nullable
                      as num?,
            rawMaterialPurchases: freezed == rawMaterialPurchases
                ? _value.rawMaterialPurchases
                : rawMaterialPurchases // ignore: cast_nullable_to_non_nullable
                      as num?,
            expensePurchases: freezed == expensePurchases
                ? _value.expensePurchases
                : expensePurchases // ignore: cast_nullable_to_non_nullable
                      as num?,
            purchaseOrders: freezed == purchaseOrders
                ? _value.purchaseOrders
                : purchaseOrders // ignore: cast_nullable_to_non_nullable
                      as num?,
            rawMaterialPurchaseOrders: freezed == rawMaterialPurchaseOrders
                ? _value.rawMaterialPurchaseOrders
                : rawMaterialPurchaseOrders // ignore: cast_nullable_to_non_nullable
                      as num?,
            expenseCount: freezed == expenseCount
                ? _value.expenseCount
                : expenseCount // ignore: cast_nullable_to_non_nullable
                      as num?,
            quantity: freezed == quantity
                ? _value.quantity
                : quantity // ignore: cast_nullable_to_non_nullable
                      as num?,
            ingredients: freezed == ingredients
                ? _value.ingredients
                : ingredients // ignore: cast_nullable_to_non_nullable
                      as num?,
            vendors: freezed == vendors
                ? _value.vendors
                : vendors // ignore: cast_nullable_to_non_nullable
                      as num?,
          )
          as $Val,
    );
  }
}

/// @nodoc
abstract class _$$PurchasingAnalyticDataDtoImplCopyWith<$Res>
    implements $PurchasingAnalyticDataDtoCopyWith<$Res> {
  factory _$$PurchasingAnalyticDataDtoImplCopyWith(
    _$PurchasingAnalyticDataDtoImpl value,
    $Res Function(_$PurchasingAnalyticDataDtoImpl) then,
  ) = __$$PurchasingAnalyticDataDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'date') DateTime? date,
    @JsonKey(name: 'purchases') num? purchases,
    @JsonKey(name: 'raw_material_purchases') num? rawMaterialPurchases,
    @JsonKey(name: 'expense_purchases') num? expensePurchases,
    @JsonKey(name: 'purchase_orders') num? purchaseOrders,
    @JsonKey(name: 'raw_material_purchase_orders')
    num? rawMaterialPurchaseOrders,
    @JsonKey(name: 'expense_count') num? expenseCount,
    @JsonKey(name: 'quantity') num? quantity,
    @JsonKey(name: 'ingredients') num? ingredients,
    @JsonKey(name: 'vendors') num? vendors,
  });
}

/// @nodoc
class __$$PurchasingAnalyticDataDtoImplCopyWithImpl<$Res>
    extends
        _$PurchasingAnalyticDataDtoCopyWithImpl<
          $Res,
          _$PurchasingAnalyticDataDtoImpl
        >
    implements _$$PurchasingAnalyticDataDtoImplCopyWith<$Res> {
  __$$PurchasingAnalyticDataDtoImplCopyWithImpl(
    _$PurchasingAnalyticDataDtoImpl _value,
    $Res Function(_$PurchasingAnalyticDataDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of PurchasingAnalyticDataDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? date = freezed,
    Object? purchases = freezed,
    Object? rawMaterialPurchases = freezed,
    Object? expensePurchases = freezed,
    Object? purchaseOrders = freezed,
    Object? rawMaterialPurchaseOrders = freezed,
    Object? expenseCount = freezed,
    Object? quantity = freezed,
    Object? ingredients = freezed,
    Object? vendors = freezed,
  }) {
    return _then(
      _$PurchasingAnalyticDataDtoImpl(
        date: freezed == date
            ? _value.date
            : date // ignore: cast_nullable_to_non_nullable
                  as DateTime?,
        purchases: freezed == purchases
            ? _value.purchases
            : purchases // ignore: cast_nullable_to_non_nullable
                  as num?,
        rawMaterialPurchases: freezed == rawMaterialPurchases
            ? _value.rawMaterialPurchases
            : rawMaterialPurchases // ignore: cast_nullable_to_non_nullable
                  as num?,
        expensePurchases: freezed == expensePurchases
            ? _value.expensePurchases
            : expensePurchases // ignore: cast_nullable_to_non_nullable
                  as num?,
        purchaseOrders: freezed == purchaseOrders
            ? _value.purchaseOrders
            : purchaseOrders // ignore: cast_nullable_to_non_nullable
                  as num?,
        rawMaterialPurchaseOrders: freezed == rawMaterialPurchaseOrders
            ? _value.rawMaterialPurchaseOrders
            : rawMaterialPurchaseOrders // ignore: cast_nullable_to_non_nullable
                  as num?,
        expenseCount: freezed == expenseCount
            ? _value.expenseCount
            : expenseCount // ignore: cast_nullable_to_non_nullable
                  as num?,
        quantity: freezed == quantity
            ? _value.quantity
            : quantity // ignore: cast_nullable_to_non_nullable
                  as num?,
        ingredients: freezed == ingredients
            ? _value.ingredients
            : ingredients // ignore: cast_nullable_to_non_nullable
                  as num?,
        vendors: freezed == vendors
            ? _value.vendors
            : vendors // ignore: cast_nullable_to_non_nullable
                  as num?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$PurchasingAnalyticDataDtoImpl extends _PurchasingAnalyticDataDto {
  const _$PurchasingAnalyticDataDtoImpl({
    @JsonKey(name: 'date') this.date,
    @JsonKey(name: 'purchases') this.purchases,
    @JsonKey(name: 'raw_material_purchases') this.rawMaterialPurchases,
    @JsonKey(name: 'expense_purchases') this.expensePurchases,
    @JsonKey(name: 'purchase_orders') this.purchaseOrders,
    @JsonKey(name: 'raw_material_purchase_orders')
    this.rawMaterialPurchaseOrders,
    @JsonKey(name: 'expense_count') this.expenseCount,
    @JsonKey(name: 'quantity') this.quantity,
    @JsonKey(name: 'ingredients') this.ingredients,
    @JsonKey(name: 'vendors') this.vendors,
  }) : super._();

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

  @override
  @JsonKey(name: 'date')
  final DateTime? date;
  @override
  @JsonKey(name: 'purchases')
  final num? purchases;
  @override
  @JsonKey(name: 'raw_material_purchases')
  final num? rawMaterialPurchases;
  @override
  @JsonKey(name: 'expense_purchases')
  final num? expensePurchases;
  @override
  @JsonKey(name: 'purchase_orders')
  final num? purchaseOrders;
  @override
  @JsonKey(name: 'raw_material_purchase_orders')
  final num? rawMaterialPurchaseOrders;
  @override
  @JsonKey(name: 'expense_count')
  final num? expenseCount;
  @override
  @JsonKey(name: 'quantity')
  final num? quantity;
  @override
  @JsonKey(name: 'ingredients')
  final num? ingredients;
  @override
  @JsonKey(name: 'vendors')
  final num? vendors;

  @override
  String toString() {
    return 'PurchasingAnalyticDataDto(date: $date, purchases: $purchases, rawMaterialPurchases: $rawMaterialPurchases, expensePurchases: $expensePurchases, purchaseOrders: $purchaseOrders, rawMaterialPurchaseOrders: $rawMaterialPurchaseOrders, expenseCount: $expenseCount, quantity: $quantity, ingredients: $ingredients, vendors: $vendors)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$PurchasingAnalyticDataDtoImpl &&
            (identical(other.date, date) || other.date == date) &&
            (identical(other.purchases, purchases) ||
                other.purchases == purchases) &&
            (identical(other.rawMaterialPurchases, rawMaterialPurchases) ||
                other.rawMaterialPurchases == rawMaterialPurchases) &&
            (identical(other.expensePurchases, expensePurchases) ||
                other.expensePurchases == expensePurchases) &&
            (identical(other.purchaseOrders, purchaseOrders) ||
                other.purchaseOrders == purchaseOrders) &&
            (identical(
                  other.rawMaterialPurchaseOrders,
                  rawMaterialPurchaseOrders,
                ) ||
                other.rawMaterialPurchaseOrders == rawMaterialPurchaseOrders) &&
            (identical(other.expenseCount, expenseCount) ||
                other.expenseCount == expenseCount) &&
            (identical(other.quantity, quantity) ||
                other.quantity == quantity) &&
            (identical(other.ingredients, ingredients) ||
                other.ingredients == ingredients) &&
            (identical(other.vendors, vendors) || other.vendors == vendors));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    date,
    purchases,
    rawMaterialPurchases,
    expensePurchases,
    purchaseOrders,
    rawMaterialPurchaseOrders,
    expenseCount,
    quantity,
    ingredients,
    vendors,
  );

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

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

abstract class _PurchasingAnalyticDataDto extends PurchasingAnalyticDataDto {
  const factory _PurchasingAnalyticDataDto({
    @JsonKey(name: 'date') final DateTime? date,
    @JsonKey(name: 'purchases') final num? purchases,
    @JsonKey(name: 'raw_material_purchases') final num? rawMaterialPurchases,
    @JsonKey(name: 'expense_purchases') final num? expensePurchases,
    @JsonKey(name: 'purchase_orders') final num? purchaseOrders,
    @JsonKey(name: 'raw_material_purchase_orders')
    final num? rawMaterialPurchaseOrders,
    @JsonKey(name: 'expense_count') final num? expenseCount,
    @JsonKey(name: 'quantity') final num? quantity,
    @JsonKey(name: 'ingredients') final num? ingredients,
    @JsonKey(name: 'vendors') final num? vendors,
  }) = _$PurchasingAnalyticDataDtoImpl;
  const _PurchasingAnalyticDataDto._() : super._();

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

  @override
  @JsonKey(name: 'date')
  DateTime? get date;
  @override
  @JsonKey(name: 'purchases')
  num? get purchases;
  @override
  @JsonKey(name: 'raw_material_purchases')
  num? get rawMaterialPurchases;
  @override
  @JsonKey(name: 'expense_purchases')
  num? get expensePurchases;
  @override
  @JsonKey(name: 'purchase_orders')
  num? get purchaseOrders;
  @override
  @JsonKey(name: 'raw_material_purchase_orders')
  num? get rawMaterialPurchaseOrders;
  @override
  @JsonKey(name: 'expense_count')
  num? get expenseCount;
  @override
  @JsonKey(name: 'quantity')
  num? get quantity;
  @override
  @JsonKey(name: 'ingredients')
  num? get ingredients;
  @override
  @JsonKey(name: 'vendors')
  num? get vendors;

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

PurchasingIngredientDataDto _$PurchasingIngredientDataDtoFromJson(
  Map<String, dynamic> json,
) {
  return _PurchasingIngredientDataDto.fromJson(json);
}

/// @nodoc
mixin _$PurchasingIngredientDataDto {
  @JsonKey(name: 'ingredient_id')
  String? get ingredientId => throw _privateConstructorUsedError;
  @JsonKey(name: 'ingredient_name')
  String? get ingredientName => throw _privateConstructorUsedError;
  @JsonKey(name: 'quantity')
  num? get quantity => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_cost')
  num? get totalCost => throw _privateConstructorUsedError;
  @JsonKey(name: 'average_unit_cost')
  num? get averageUnitCost => throw _privateConstructorUsedError;
  @JsonKey(name: 'purchase_order_count')
  num? get purchaseOrderCount => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $PurchasingIngredientDataDtoCopyWith<$Res> {
  factory $PurchasingIngredientDataDtoCopyWith(
    PurchasingIngredientDataDto value,
    $Res Function(PurchasingIngredientDataDto) then,
  ) =
      _$PurchasingIngredientDataDtoCopyWithImpl<
        $Res,
        PurchasingIngredientDataDto
      >;
  @useResult
  $Res call({
    @JsonKey(name: 'ingredient_id') String? ingredientId,
    @JsonKey(name: 'ingredient_name') String? ingredientName,
    @JsonKey(name: 'quantity') num? quantity,
    @JsonKey(name: 'total_cost') num? totalCost,
    @JsonKey(name: 'average_unit_cost') num? averageUnitCost,
    @JsonKey(name: 'purchase_order_count') num? purchaseOrderCount,
  });
}

/// @nodoc
class _$PurchasingIngredientDataDtoCopyWithImpl<
  $Res,
  $Val extends PurchasingIngredientDataDto
>
    implements $PurchasingIngredientDataDtoCopyWith<$Res> {
  _$PurchasingIngredientDataDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of PurchasingIngredientDataDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? ingredientId = freezed,
    Object? ingredientName = freezed,
    Object? quantity = freezed,
    Object? totalCost = freezed,
    Object? averageUnitCost = freezed,
    Object? purchaseOrderCount = freezed,
  }) {
    return _then(
      _value.copyWith(
            ingredientId: freezed == ingredientId
                ? _value.ingredientId
                : ingredientId // ignore: cast_nullable_to_non_nullable
                      as String?,
            ingredientName: freezed == ingredientName
                ? _value.ingredientName
                : ingredientName // ignore: cast_nullable_to_non_nullable
                      as String?,
            quantity: freezed == quantity
                ? _value.quantity
                : quantity // ignore: cast_nullable_to_non_nullable
                      as num?,
            totalCost: freezed == totalCost
                ? _value.totalCost
                : totalCost // ignore: cast_nullable_to_non_nullable
                      as num?,
            averageUnitCost: freezed == averageUnitCost
                ? _value.averageUnitCost
                : averageUnitCost // ignore: cast_nullable_to_non_nullable
                      as num?,
            purchaseOrderCount: freezed == purchaseOrderCount
                ? _value.purchaseOrderCount
                : purchaseOrderCount // ignore: cast_nullable_to_non_nullable
                      as num?,
          )
          as $Val,
    );
  }
}

/// @nodoc
abstract class _$$PurchasingIngredientDataDtoImplCopyWith<$Res>
    implements $PurchasingIngredientDataDtoCopyWith<$Res> {
  factory _$$PurchasingIngredientDataDtoImplCopyWith(
    _$PurchasingIngredientDataDtoImpl value,
    $Res Function(_$PurchasingIngredientDataDtoImpl) then,
  ) = __$$PurchasingIngredientDataDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'ingredient_id') String? ingredientId,
    @JsonKey(name: 'ingredient_name') String? ingredientName,
    @JsonKey(name: 'quantity') num? quantity,
    @JsonKey(name: 'total_cost') num? totalCost,
    @JsonKey(name: 'average_unit_cost') num? averageUnitCost,
    @JsonKey(name: 'purchase_order_count') num? purchaseOrderCount,
  });
}

/// @nodoc
class __$$PurchasingIngredientDataDtoImplCopyWithImpl<$Res>
    extends
        _$PurchasingIngredientDataDtoCopyWithImpl<
          $Res,
          _$PurchasingIngredientDataDtoImpl
        >
    implements _$$PurchasingIngredientDataDtoImplCopyWith<$Res> {
  __$$PurchasingIngredientDataDtoImplCopyWithImpl(
    _$PurchasingIngredientDataDtoImpl _value,
    $Res Function(_$PurchasingIngredientDataDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of PurchasingIngredientDataDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? ingredientId = freezed,
    Object? ingredientName = freezed,
    Object? quantity = freezed,
    Object? totalCost = freezed,
    Object? averageUnitCost = freezed,
    Object? purchaseOrderCount = freezed,
  }) {
    return _then(
      _$PurchasingIngredientDataDtoImpl(
        ingredientId: freezed == ingredientId
            ? _value.ingredientId
            : ingredientId // ignore: cast_nullable_to_non_nullable
                  as String?,
        ingredientName: freezed == ingredientName
            ? _value.ingredientName
            : ingredientName // ignore: cast_nullable_to_non_nullable
                  as String?,
        quantity: freezed == quantity
            ? _value.quantity
            : quantity // ignore: cast_nullable_to_non_nullable
                  as num?,
        totalCost: freezed == totalCost
            ? _value.totalCost
            : totalCost // ignore: cast_nullable_to_non_nullable
                  as num?,
        averageUnitCost: freezed == averageUnitCost
            ? _value.averageUnitCost
            : averageUnitCost // ignore: cast_nullable_to_non_nullable
                  as num?,
        purchaseOrderCount: freezed == purchaseOrderCount
            ? _value.purchaseOrderCount
            : purchaseOrderCount // ignore: cast_nullable_to_non_nullable
                  as num?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$PurchasingIngredientDataDtoImpl extends _PurchasingIngredientDataDto {
  const _$PurchasingIngredientDataDtoImpl({
    @JsonKey(name: 'ingredient_id') this.ingredientId,
    @JsonKey(name: 'ingredient_name') this.ingredientName,
    @JsonKey(name: 'quantity') this.quantity,
    @JsonKey(name: 'total_cost') this.totalCost,
    @JsonKey(name: 'average_unit_cost') this.averageUnitCost,
    @JsonKey(name: 'purchase_order_count') this.purchaseOrderCount,
  }) : super._();

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

  @override
  @JsonKey(name: 'ingredient_id')
  final String? ingredientId;
  @override
  @JsonKey(name: 'ingredient_name')
  final String? ingredientName;
  @override
  @JsonKey(name: 'quantity')
  final num? quantity;
  @override
  @JsonKey(name: 'total_cost')
  final num? totalCost;
  @override
  @JsonKey(name: 'average_unit_cost')
  final num? averageUnitCost;
  @override
  @JsonKey(name: 'purchase_order_count')
  final num? purchaseOrderCount;

  @override
  String toString() {
    return 'PurchasingIngredientDataDto(ingredientId: $ingredientId, ingredientName: $ingredientName, quantity: $quantity, totalCost: $totalCost, averageUnitCost: $averageUnitCost, purchaseOrderCount: $purchaseOrderCount)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$PurchasingIngredientDataDtoImpl &&
            (identical(other.ingredientId, ingredientId) ||
                other.ingredientId == ingredientId) &&
            (identical(other.ingredientName, ingredientName) ||
                other.ingredientName == ingredientName) &&
            (identical(other.quantity, quantity) ||
                other.quantity == quantity) &&
            (identical(other.totalCost, totalCost) ||
                other.totalCost == totalCost) &&
            (identical(other.averageUnitCost, averageUnitCost) ||
                other.averageUnitCost == averageUnitCost) &&
            (identical(other.purchaseOrderCount, purchaseOrderCount) ||
                other.purchaseOrderCount == purchaseOrderCount));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    ingredientId,
    ingredientName,
    quantity,
    totalCost,
    averageUnitCost,
    purchaseOrderCount,
  );

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

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

abstract class _PurchasingIngredientDataDto
    extends PurchasingIngredientDataDto {
  const factory _PurchasingIngredientDataDto({
    @JsonKey(name: 'ingredient_id') final String? ingredientId,
    @JsonKey(name: 'ingredient_name') final String? ingredientName,
    @JsonKey(name: 'quantity') final num? quantity,
    @JsonKey(name: 'total_cost') final num? totalCost,
    @JsonKey(name: 'average_unit_cost') final num? averageUnitCost,
    @JsonKey(name: 'purchase_order_count') final num? purchaseOrderCount,
  }) = _$PurchasingIngredientDataDtoImpl;
  const _PurchasingIngredientDataDto._() : super._();

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

  @override
  @JsonKey(name: 'ingredient_id')
  String? get ingredientId;
  @override
  @JsonKey(name: 'ingredient_name')
  String? get ingredientName;
  @override
  @JsonKey(name: 'quantity')
  num? get quantity;
  @override
  @JsonKey(name: 'total_cost')
  num? get totalCost;
  @override
  @JsonKey(name: 'average_unit_cost')
  num? get averageUnitCost;
  @override
  @JsonKey(name: 'purchase_order_count')
  num? get purchaseOrderCount;

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

PurchasingVendorDataDto _$PurchasingVendorDataDtoFromJson(
  Map<String, dynamic> json,
) {
  return _PurchasingVendorDataDto.fromJson(json);
}

/// @nodoc
mixin _$PurchasingVendorDataDto {
  @JsonKey(name: 'vendor_id')
  String? get vendorId => throw _privateConstructorUsedError;
  @JsonKey(name: 'vendor_name')
  String? get vendorName => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_cost')
  num? get totalCost => throw _privateConstructorUsedError;
  @JsonKey(name: 'purchase_order_count')
  num? get purchaseOrderCount => throw _privateConstructorUsedError;
  @JsonKey(name: 'ingredient_count')
  num? get ingredientCount => throw _privateConstructorUsedError;
  @JsonKey(name: 'quantity')
  num? get quantity => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $PurchasingVendorDataDtoCopyWith<$Res> {
  factory $PurchasingVendorDataDtoCopyWith(
    PurchasingVendorDataDto value,
    $Res Function(PurchasingVendorDataDto) then,
  ) = _$PurchasingVendorDataDtoCopyWithImpl<$Res, PurchasingVendorDataDto>;
  @useResult
  $Res call({
    @JsonKey(name: 'vendor_id') String? vendorId,
    @JsonKey(name: 'vendor_name') String? vendorName,
    @JsonKey(name: 'total_cost') num? totalCost,
    @JsonKey(name: 'purchase_order_count') num? purchaseOrderCount,
    @JsonKey(name: 'ingredient_count') num? ingredientCount,
    @JsonKey(name: 'quantity') num? quantity,
  });
}

/// @nodoc
class _$PurchasingVendorDataDtoCopyWithImpl<
  $Res,
  $Val extends PurchasingVendorDataDto
>
    implements $PurchasingVendorDataDtoCopyWith<$Res> {
  _$PurchasingVendorDataDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of PurchasingVendorDataDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? vendorId = freezed,
    Object? vendorName = freezed,
    Object? totalCost = freezed,
    Object? purchaseOrderCount = freezed,
    Object? ingredientCount = freezed,
    Object? quantity = freezed,
  }) {
    return _then(
      _value.copyWith(
            vendorId: freezed == vendorId
                ? _value.vendorId
                : vendorId // ignore: cast_nullable_to_non_nullable
                      as String?,
            vendorName: freezed == vendorName
                ? _value.vendorName
                : vendorName // ignore: cast_nullable_to_non_nullable
                      as String?,
            totalCost: freezed == totalCost
                ? _value.totalCost
                : totalCost // ignore: cast_nullable_to_non_nullable
                      as num?,
            purchaseOrderCount: freezed == purchaseOrderCount
                ? _value.purchaseOrderCount
                : purchaseOrderCount // ignore: cast_nullable_to_non_nullable
                      as num?,
            ingredientCount: freezed == ingredientCount
                ? _value.ingredientCount
                : ingredientCount // ignore: cast_nullable_to_non_nullable
                      as num?,
            quantity: freezed == quantity
                ? _value.quantity
                : quantity // ignore: cast_nullable_to_non_nullable
                      as num?,
          )
          as $Val,
    );
  }
}

/// @nodoc
abstract class _$$PurchasingVendorDataDtoImplCopyWith<$Res>
    implements $PurchasingVendorDataDtoCopyWith<$Res> {
  factory _$$PurchasingVendorDataDtoImplCopyWith(
    _$PurchasingVendorDataDtoImpl value,
    $Res Function(_$PurchasingVendorDataDtoImpl) then,
  ) = __$$PurchasingVendorDataDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'vendor_id') String? vendorId,
    @JsonKey(name: 'vendor_name') String? vendorName,
    @JsonKey(name: 'total_cost') num? totalCost,
    @JsonKey(name: 'purchase_order_count') num? purchaseOrderCount,
    @JsonKey(name: 'ingredient_count') num? ingredientCount,
    @JsonKey(name: 'quantity') num? quantity,
  });
}

/// @nodoc
class __$$PurchasingVendorDataDtoImplCopyWithImpl<$Res>
    extends
        _$PurchasingVendorDataDtoCopyWithImpl<
          $Res,
          _$PurchasingVendorDataDtoImpl
        >
    implements _$$PurchasingVendorDataDtoImplCopyWith<$Res> {
  __$$PurchasingVendorDataDtoImplCopyWithImpl(
    _$PurchasingVendorDataDtoImpl _value,
    $Res Function(_$PurchasingVendorDataDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of PurchasingVendorDataDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? vendorId = freezed,
    Object? vendorName = freezed,
    Object? totalCost = freezed,
    Object? purchaseOrderCount = freezed,
    Object? ingredientCount = freezed,
    Object? quantity = freezed,
  }) {
    return _then(
      _$PurchasingVendorDataDtoImpl(
        vendorId: freezed == vendorId
            ? _value.vendorId
            : vendorId // ignore: cast_nullable_to_non_nullable
                  as String?,
        vendorName: freezed == vendorName
            ? _value.vendorName
            : vendorName // ignore: cast_nullable_to_non_nullable
                  as String?,
        totalCost: freezed == totalCost
            ? _value.totalCost
            : totalCost // ignore: cast_nullable_to_non_nullable
                  as num?,
        purchaseOrderCount: freezed == purchaseOrderCount
            ? _value.purchaseOrderCount
            : purchaseOrderCount // ignore: cast_nullable_to_non_nullable
                  as num?,
        ingredientCount: freezed == ingredientCount
            ? _value.ingredientCount
            : ingredientCount // ignore: cast_nullable_to_non_nullable
                  as num?,
        quantity: freezed == quantity
            ? _value.quantity
            : quantity // ignore: cast_nullable_to_non_nullable
                  as num?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$PurchasingVendorDataDtoImpl extends _PurchasingVendorDataDto {
  const _$PurchasingVendorDataDtoImpl({
    @JsonKey(name: 'vendor_id') this.vendorId,
    @JsonKey(name: 'vendor_name') this.vendorName,
    @JsonKey(name: 'total_cost') this.totalCost,
    @JsonKey(name: 'purchase_order_count') this.purchaseOrderCount,
    @JsonKey(name: 'ingredient_count') this.ingredientCount,
    @JsonKey(name: 'quantity') this.quantity,
  }) : super._();

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

  @override
  @JsonKey(name: 'vendor_id')
  final String? vendorId;
  @override
  @JsonKey(name: 'vendor_name')
  final String? vendorName;
  @override
  @JsonKey(name: 'total_cost')
  final num? totalCost;
  @override
  @JsonKey(name: 'purchase_order_count')
  final num? purchaseOrderCount;
  @override
  @JsonKey(name: 'ingredient_count')
  final num? ingredientCount;
  @override
  @JsonKey(name: 'quantity')
  final num? quantity;

  @override
  String toString() {
    return 'PurchasingVendorDataDto(vendorId: $vendorId, vendorName: $vendorName, totalCost: $totalCost, purchaseOrderCount: $purchaseOrderCount, ingredientCount: $ingredientCount, quantity: $quantity)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$PurchasingVendorDataDtoImpl &&
            (identical(other.vendorId, vendorId) ||
                other.vendorId == vendorId) &&
            (identical(other.vendorName, vendorName) ||
                other.vendorName == vendorName) &&
            (identical(other.totalCost, totalCost) ||
                other.totalCost == totalCost) &&
            (identical(other.purchaseOrderCount, purchaseOrderCount) ||
                other.purchaseOrderCount == purchaseOrderCount) &&
            (identical(other.ingredientCount, ingredientCount) ||
                other.ingredientCount == ingredientCount) &&
            (identical(other.quantity, quantity) ||
                other.quantity == quantity));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    vendorId,
    vendorName,
    totalCost,
    purchaseOrderCount,
    ingredientCount,
    quantity,
  );

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

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

abstract class _PurchasingVendorDataDto extends PurchasingVendorDataDto {
  const factory _PurchasingVendorDataDto({
    @JsonKey(name: 'vendor_id') final String? vendorId,
    @JsonKey(name: 'vendor_name') final String? vendorName,
    @JsonKey(name: 'total_cost') final num? totalCost,
    @JsonKey(name: 'purchase_order_count') final num? purchaseOrderCount,
    @JsonKey(name: 'ingredient_count') final num? ingredientCount,
    @JsonKey(name: 'quantity') final num? quantity,
  }) = _$PurchasingVendorDataDtoImpl;
  const _PurchasingVendorDataDto._() : super._();

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

  @override
  @JsonKey(name: 'vendor_id')
  String? get vendorId;
  @override
  @JsonKey(name: 'vendor_name')
  String? get vendorName;
  @override
  @JsonKey(name: 'total_cost')
  num? get totalCost;
  @override
  @JsonKey(name: 'purchase_order_count')
  num? get purchaseOrderCount;
  @override
  @JsonKey(name: 'ingredient_count')
  num? get ingredientCount;
  @override
  @JsonKey(name: 'quantity')
  num? get quantity;

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

ExclusiveSummaryDto _$ExclusiveSummaryDtoFromJson(Map<String, dynamic> json) {
  return _ExclusiveSummaryDto.fromJson(json);
}

/// @nodoc
mixin _$ExclusiveSummaryDto {
  @JsonKey(name: 'organization_id')
  String? get organizationId => throw _privateConstructorUsedError;
  @JsonKey(name: 'outlet_id')
  String? get outletId => throw _privateConstructorUsedError;
  @JsonKey(name: 'outlet_name')
  String? get outletName => throw _privateConstructorUsedError;
  @JsonKey(name: 'period')
  ExclusiveSummaryPeriodDto? get period => throw _privateConstructorUsedError;
  @JsonKey(name: 'summary')
  ExclusiveSummarySummaryDto? get summary => throw _privateConstructorUsedError;
  @JsonKey(name: 'reimburse')
  ExclusiveSummaryReimburseDto? get reimburse =>
      throw _privateConstructorUsedError;
  @JsonKey(name: 'hpp_breakdown')
  List<ExclusiveSummaryBreakdownDto>? get hppBreakdown =>
      throw _privateConstructorUsedError;
  @JsonKey(name: 'operational_expense_breakdown')
  List<ExclusiveSummaryBreakdownDto>? get operationalExpenseBreakdown =>
      throw _privateConstructorUsedError;
  @JsonKey(name: 'daily_summary')
  List<ExclusiveSummaryDailyDto>? get dailySummary =>
      throw _privateConstructorUsedError;
  @JsonKey(name: 'daily_transactions')
  List<ExclusiveSummaryTransactionDto>? get dailyTransactions =>
      throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $ExclusiveSummaryDtoCopyWith<$Res> {
  factory $ExclusiveSummaryDtoCopyWith(
    ExclusiveSummaryDto value,
    $Res Function(ExclusiveSummaryDto) then,
  ) = _$ExclusiveSummaryDtoCopyWithImpl<$Res, ExclusiveSummaryDto>;
  @useResult
  $Res call({
    @JsonKey(name: 'organization_id') String? organizationId,
    @JsonKey(name: 'outlet_id') String? outletId,
    @JsonKey(name: 'outlet_name') String? outletName,
    @JsonKey(name: 'period') ExclusiveSummaryPeriodDto? period,
    @JsonKey(name: 'summary') ExclusiveSummarySummaryDto? summary,
    @JsonKey(name: 'reimburse') ExclusiveSummaryReimburseDto? reimburse,
    @JsonKey(name: 'hpp_breakdown')
    List<ExclusiveSummaryBreakdownDto>? hppBreakdown,
    @JsonKey(name: 'operational_expense_breakdown')
    List<ExclusiveSummaryBreakdownDto>? operationalExpenseBreakdown,
    @JsonKey(name: 'daily_summary')
    List<ExclusiveSummaryDailyDto>? dailySummary,
    @JsonKey(name: 'daily_transactions')
    List<ExclusiveSummaryTransactionDto>? dailyTransactions,
  });

  $ExclusiveSummaryPeriodDtoCopyWith<$Res>? get period;
  $ExclusiveSummarySummaryDtoCopyWith<$Res>? get summary;
  $ExclusiveSummaryReimburseDtoCopyWith<$Res>? get reimburse;
}

/// @nodoc
class _$ExclusiveSummaryDtoCopyWithImpl<$Res, $Val extends ExclusiveSummaryDto>
    implements $ExclusiveSummaryDtoCopyWith<$Res> {
  _$ExclusiveSummaryDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of ExclusiveSummaryDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? organizationId = freezed,
    Object? outletId = freezed,
    Object? outletName = freezed,
    Object? period = freezed,
    Object? summary = freezed,
    Object? reimburse = freezed,
    Object? hppBreakdown = freezed,
    Object? operationalExpenseBreakdown = freezed,
    Object? dailySummary = freezed,
    Object? dailyTransactions = freezed,
  }) {
    return _then(
      _value.copyWith(
            organizationId: freezed == organizationId
                ? _value.organizationId
                : organizationId // ignore: cast_nullable_to_non_nullable
                      as String?,
            outletId: freezed == outletId
                ? _value.outletId
                : outletId // ignore: cast_nullable_to_non_nullable
                      as String?,
            outletName: freezed == outletName
                ? _value.outletName
                : outletName // ignore: cast_nullable_to_non_nullable
                      as String?,
            period: freezed == period
                ? _value.period
                : period // ignore: cast_nullable_to_non_nullable
                      as ExclusiveSummaryPeriodDto?,
            summary: freezed == summary
                ? _value.summary
                : summary // ignore: cast_nullable_to_non_nullable
                      as ExclusiveSummarySummaryDto?,
            reimburse: freezed == reimburse
                ? _value.reimburse
                : reimburse // ignore: cast_nullable_to_non_nullable
                      as ExclusiveSummaryReimburseDto?,
            hppBreakdown: freezed == hppBreakdown
                ? _value.hppBreakdown
                : hppBreakdown // ignore: cast_nullable_to_non_nullable
                      as List<ExclusiveSummaryBreakdownDto>?,
            operationalExpenseBreakdown: freezed == operationalExpenseBreakdown
                ? _value.operationalExpenseBreakdown
                : operationalExpenseBreakdown // ignore: cast_nullable_to_non_nullable
                      as List<ExclusiveSummaryBreakdownDto>?,
            dailySummary: freezed == dailySummary
                ? _value.dailySummary
                : dailySummary // ignore: cast_nullable_to_non_nullable
                      as List<ExclusiveSummaryDailyDto>?,
            dailyTransactions: freezed == dailyTransactions
                ? _value.dailyTransactions
                : dailyTransactions // ignore: cast_nullable_to_non_nullable
                      as List<ExclusiveSummaryTransactionDto>?,
          )
          as $Val,
    );
  }

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

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

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

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

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

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

/// @nodoc
abstract class _$$ExclusiveSummaryDtoImplCopyWith<$Res>
    implements $ExclusiveSummaryDtoCopyWith<$Res> {
  factory _$$ExclusiveSummaryDtoImplCopyWith(
    _$ExclusiveSummaryDtoImpl value,
    $Res Function(_$ExclusiveSummaryDtoImpl) then,
  ) = __$$ExclusiveSummaryDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'organization_id') String? organizationId,
    @JsonKey(name: 'outlet_id') String? outletId,
    @JsonKey(name: 'outlet_name') String? outletName,
    @JsonKey(name: 'period') ExclusiveSummaryPeriodDto? period,
    @JsonKey(name: 'summary') ExclusiveSummarySummaryDto? summary,
    @JsonKey(name: 'reimburse') ExclusiveSummaryReimburseDto? reimburse,
    @JsonKey(name: 'hpp_breakdown')
    List<ExclusiveSummaryBreakdownDto>? hppBreakdown,
    @JsonKey(name: 'operational_expense_breakdown')
    List<ExclusiveSummaryBreakdownDto>? operationalExpenseBreakdown,
    @JsonKey(name: 'daily_summary')
    List<ExclusiveSummaryDailyDto>? dailySummary,
    @JsonKey(name: 'daily_transactions')
    List<ExclusiveSummaryTransactionDto>? dailyTransactions,
  });

  @override
  $ExclusiveSummaryPeriodDtoCopyWith<$Res>? get period;
  @override
  $ExclusiveSummarySummaryDtoCopyWith<$Res>? get summary;
  @override
  $ExclusiveSummaryReimburseDtoCopyWith<$Res>? get reimburse;
}

/// @nodoc
class __$$ExclusiveSummaryDtoImplCopyWithImpl<$Res>
    extends _$ExclusiveSummaryDtoCopyWithImpl<$Res, _$ExclusiveSummaryDtoImpl>
    implements _$$ExclusiveSummaryDtoImplCopyWith<$Res> {
  __$$ExclusiveSummaryDtoImplCopyWithImpl(
    _$ExclusiveSummaryDtoImpl _value,
    $Res Function(_$ExclusiveSummaryDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of ExclusiveSummaryDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? organizationId = freezed,
    Object? outletId = freezed,
    Object? outletName = freezed,
    Object? period = freezed,
    Object? summary = freezed,
    Object? reimburse = freezed,
    Object? hppBreakdown = freezed,
    Object? operationalExpenseBreakdown = freezed,
    Object? dailySummary = freezed,
    Object? dailyTransactions = freezed,
  }) {
    return _then(
      _$ExclusiveSummaryDtoImpl(
        organizationId: freezed == organizationId
            ? _value.organizationId
            : organizationId // ignore: cast_nullable_to_non_nullable
                  as String?,
        outletId: freezed == outletId
            ? _value.outletId
            : outletId // ignore: cast_nullable_to_non_nullable
                  as String?,
        outletName: freezed == outletName
            ? _value.outletName
            : outletName // ignore: cast_nullable_to_non_nullable
                  as String?,
        period: freezed == period
            ? _value.period
            : period // ignore: cast_nullable_to_non_nullable
                  as ExclusiveSummaryPeriodDto?,
        summary: freezed == summary
            ? _value.summary
            : summary // ignore: cast_nullable_to_non_nullable
                  as ExclusiveSummarySummaryDto?,
        reimburse: freezed == reimburse
            ? _value.reimburse
            : reimburse // ignore: cast_nullable_to_non_nullable
                  as ExclusiveSummaryReimburseDto?,
        hppBreakdown: freezed == hppBreakdown
            ? _value._hppBreakdown
            : hppBreakdown // ignore: cast_nullable_to_non_nullable
                  as List<ExclusiveSummaryBreakdownDto>?,
        operationalExpenseBreakdown: freezed == operationalExpenseBreakdown
            ? _value._operationalExpenseBreakdown
            : operationalExpenseBreakdown // ignore: cast_nullable_to_non_nullable
                  as List<ExclusiveSummaryBreakdownDto>?,
        dailySummary: freezed == dailySummary
            ? _value._dailySummary
            : dailySummary // ignore: cast_nullable_to_non_nullable
                  as List<ExclusiveSummaryDailyDto>?,
        dailyTransactions: freezed == dailyTransactions
            ? _value._dailyTransactions
            : dailyTransactions // ignore: cast_nullable_to_non_nullable
                  as List<ExclusiveSummaryTransactionDto>?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$ExclusiveSummaryDtoImpl extends _ExclusiveSummaryDto {
  const _$ExclusiveSummaryDtoImpl({
    @JsonKey(name: 'organization_id') this.organizationId,
    @JsonKey(name: 'outlet_id') this.outletId,
    @JsonKey(name: 'outlet_name') this.outletName,
    @JsonKey(name: 'period') this.period,
    @JsonKey(name: 'summary') this.summary,
    @JsonKey(name: 'reimburse') this.reimburse,
    @JsonKey(name: 'hpp_breakdown')
    final List<ExclusiveSummaryBreakdownDto>? hppBreakdown,
    @JsonKey(name: 'operational_expense_breakdown')
    final List<ExclusiveSummaryBreakdownDto>? operationalExpenseBreakdown,
    @JsonKey(name: 'daily_summary')
    final List<ExclusiveSummaryDailyDto>? dailySummary,
    @JsonKey(name: 'daily_transactions')
    final List<ExclusiveSummaryTransactionDto>? dailyTransactions,
  }) : _hppBreakdown = hppBreakdown,
       _operationalExpenseBreakdown = operationalExpenseBreakdown,
       _dailySummary = dailySummary,
       _dailyTransactions = dailyTransactions,
       super._();

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

  @override
  @JsonKey(name: 'organization_id')
  final String? organizationId;
  @override
  @JsonKey(name: 'outlet_id')
  final String? outletId;
  @override
  @JsonKey(name: 'outlet_name')
  final String? outletName;
  @override
  @JsonKey(name: 'period')
  final ExclusiveSummaryPeriodDto? period;
  @override
  @JsonKey(name: 'summary')
  final ExclusiveSummarySummaryDto? summary;
  @override
  @JsonKey(name: 'reimburse')
  final ExclusiveSummaryReimburseDto? reimburse;
  final List<ExclusiveSummaryBreakdownDto>? _hppBreakdown;
  @override
  @JsonKey(name: 'hpp_breakdown')
  List<ExclusiveSummaryBreakdownDto>? get hppBreakdown {
    final value = _hppBreakdown;
    if (value == null) return null;
    if (_hppBreakdown is EqualUnmodifiableListView) return _hppBreakdown;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

  final List<ExclusiveSummaryBreakdownDto>? _operationalExpenseBreakdown;
  @override
  @JsonKey(name: 'operational_expense_breakdown')
  List<ExclusiveSummaryBreakdownDto>? get operationalExpenseBreakdown {
    final value = _operationalExpenseBreakdown;
    if (value == null) return null;
    if (_operationalExpenseBreakdown is EqualUnmodifiableListView)
      return _operationalExpenseBreakdown;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

  final List<ExclusiveSummaryDailyDto>? _dailySummary;
  @override
  @JsonKey(name: 'daily_summary')
  List<ExclusiveSummaryDailyDto>? get dailySummary {
    final value = _dailySummary;
    if (value == null) return null;
    if (_dailySummary is EqualUnmodifiableListView) return _dailySummary;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

  final List<ExclusiveSummaryTransactionDto>? _dailyTransactions;
  @override
  @JsonKey(name: 'daily_transactions')
  List<ExclusiveSummaryTransactionDto>? get dailyTransactions {
    final value = _dailyTransactions;
    if (value == null) return null;
    if (_dailyTransactions is EqualUnmodifiableListView)
      return _dailyTransactions;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

  @override
  String toString() {
    return 'ExclusiveSummaryDto(organizationId: $organizationId, outletId: $outletId, outletName: $outletName, period: $period, summary: $summary, reimburse: $reimburse, hppBreakdown: $hppBreakdown, operationalExpenseBreakdown: $operationalExpenseBreakdown, dailySummary: $dailySummary, dailyTransactions: $dailyTransactions)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ExclusiveSummaryDtoImpl &&
            (identical(other.organizationId, organizationId) ||
                other.organizationId == organizationId) &&
            (identical(other.outletId, outletId) ||
                other.outletId == outletId) &&
            (identical(other.outletName, outletName) ||
                other.outletName == outletName) &&
            (identical(other.period, period) || other.period == period) &&
            (identical(other.summary, summary) || other.summary == summary) &&
            (identical(other.reimburse, reimburse) ||
                other.reimburse == reimburse) &&
            const DeepCollectionEquality().equals(
              other._hppBreakdown,
              _hppBreakdown,
            ) &&
            const DeepCollectionEquality().equals(
              other._operationalExpenseBreakdown,
              _operationalExpenseBreakdown,
            ) &&
            const DeepCollectionEquality().equals(
              other._dailySummary,
              _dailySummary,
            ) &&
            const DeepCollectionEquality().equals(
              other._dailyTransactions,
              _dailyTransactions,
            ));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    organizationId,
    outletId,
    outletName,
    period,
    summary,
    reimburse,
    const DeepCollectionEquality().hash(_hppBreakdown),
    const DeepCollectionEquality().hash(_operationalExpenseBreakdown),
    const DeepCollectionEquality().hash(_dailySummary),
    const DeepCollectionEquality().hash(_dailyTransactions),
  );

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

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

abstract class _ExclusiveSummaryDto extends ExclusiveSummaryDto {
  const factory _ExclusiveSummaryDto({
    @JsonKey(name: 'organization_id') final String? organizationId,
    @JsonKey(name: 'outlet_id') final String? outletId,
    @JsonKey(name: 'outlet_name') final String? outletName,
    @JsonKey(name: 'period') final ExclusiveSummaryPeriodDto? period,
    @JsonKey(name: 'summary') final ExclusiveSummarySummaryDto? summary,
    @JsonKey(name: 'reimburse') final ExclusiveSummaryReimburseDto? reimburse,
    @JsonKey(name: 'hpp_breakdown')
    final List<ExclusiveSummaryBreakdownDto>? hppBreakdown,
    @JsonKey(name: 'operational_expense_breakdown')
    final List<ExclusiveSummaryBreakdownDto>? operationalExpenseBreakdown,
    @JsonKey(name: 'daily_summary')
    final List<ExclusiveSummaryDailyDto>? dailySummary,
    @JsonKey(name: 'daily_transactions')
    final List<ExclusiveSummaryTransactionDto>? dailyTransactions,
  }) = _$ExclusiveSummaryDtoImpl;
  const _ExclusiveSummaryDto._() : super._();

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

  @override
  @JsonKey(name: 'organization_id')
  String? get organizationId;
  @override
  @JsonKey(name: 'outlet_id')
  String? get outletId;
  @override
  @JsonKey(name: 'outlet_name')
  String? get outletName;
  @override
  @JsonKey(name: 'period')
  ExclusiveSummaryPeriodDto? get period;
  @override
  @JsonKey(name: 'summary')
  ExclusiveSummarySummaryDto? get summary;
  @override
  @JsonKey(name: 'reimburse')
  ExclusiveSummaryReimburseDto? get reimburse;
  @override
  @JsonKey(name: 'hpp_breakdown')
  List<ExclusiveSummaryBreakdownDto>? get hppBreakdown;
  @override
  @JsonKey(name: 'operational_expense_breakdown')
  List<ExclusiveSummaryBreakdownDto>? get operationalExpenseBreakdown;
  @override
  @JsonKey(name: 'daily_summary')
  List<ExclusiveSummaryDailyDto>? get dailySummary;
  @override
  @JsonKey(name: 'daily_transactions')
  List<ExclusiveSummaryTransactionDto>? get dailyTransactions;

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

ExclusiveSummaryPeriodDto _$ExclusiveSummaryPeriodDtoFromJson(
  Map<String, dynamic> json,
) {
  return _ExclusiveSummaryPeriodDto.fromJson(json);
}

/// @nodoc
mixin _$ExclusiveSummaryPeriodDto {
  @JsonKey(name: 'date_from')
  DateTime? get dateFrom => throw _privateConstructorUsedError;
  @JsonKey(name: 'date_to')
  DateTime? get dateTo => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $ExclusiveSummaryPeriodDtoCopyWith<$Res> {
  factory $ExclusiveSummaryPeriodDtoCopyWith(
    ExclusiveSummaryPeriodDto value,
    $Res Function(ExclusiveSummaryPeriodDto) then,
  ) = _$ExclusiveSummaryPeriodDtoCopyWithImpl<$Res, ExclusiveSummaryPeriodDto>;
  @useResult
  $Res call({
    @JsonKey(name: 'date_from') DateTime? dateFrom,
    @JsonKey(name: 'date_to') DateTime? dateTo,
  });
}

/// @nodoc
class _$ExclusiveSummaryPeriodDtoCopyWithImpl<
  $Res,
  $Val extends ExclusiveSummaryPeriodDto
>
    implements $ExclusiveSummaryPeriodDtoCopyWith<$Res> {
  _$ExclusiveSummaryPeriodDtoCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$ExclusiveSummaryPeriodDtoImplCopyWith<$Res>
    implements $ExclusiveSummaryPeriodDtoCopyWith<$Res> {
  factory _$$ExclusiveSummaryPeriodDtoImplCopyWith(
    _$ExclusiveSummaryPeriodDtoImpl value,
    $Res Function(_$ExclusiveSummaryPeriodDtoImpl) then,
  ) = __$$ExclusiveSummaryPeriodDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'date_from') DateTime? dateFrom,
    @JsonKey(name: 'date_to') DateTime? dateTo,
  });
}

/// @nodoc
class __$$ExclusiveSummaryPeriodDtoImplCopyWithImpl<$Res>
    extends
        _$ExclusiveSummaryPeriodDtoCopyWithImpl<
          $Res,
          _$ExclusiveSummaryPeriodDtoImpl
        >
    implements _$$ExclusiveSummaryPeriodDtoImplCopyWith<$Res> {
  __$$ExclusiveSummaryPeriodDtoImplCopyWithImpl(
    _$ExclusiveSummaryPeriodDtoImpl _value,
    $Res Function(_$ExclusiveSummaryPeriodDtoImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc
@JsonSerializable()
class _$ExclusiveSummaryPeriodDtoImpl extends _ExclusiveSummaryPeriodDto {
  const _$ExclusiveSummaryPeriodDtoImpl({
    @JsonKey(name: 'date_from') this.dateFrom,
    @JsonKey(name: 'date_to') this.dateTo,
  }) : super._();

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

  @override
  @JsonKey(name: 'date_from')
  final DateTime? dateFrom;
  @override
  @JsonKey(name: 'date_to')
  final DateTime? dateTo;

  @override
  String toString() {
    return 'ExclusiveSummaryPeriodDto(dateFrom: $dateFrom, dateTo: $dateTo)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ExclusiveSummaryPeriodDtoImpl &&
            (identical(other.dateFrom, dateFrom) ||
                other.dateFrom == dateFrom) &&
            (identical(other.dateTo, dateTo) || other.dateTo == dateTo));
  }

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

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

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

abstract class _ExclusiveSummaryPeriodDto extends ExclusiveSummaryPeriodDto {
  const factory _ExclusiveSummaryPeriodDto({
    @JsonKey(name: 'date_from') final DateTime? dateFrom,
    @JsonKey(name: 'date_to') final DateTime? dateTo,
  }) = _$ExclusiveSummaryPeriodDtoImpl;
  const _ExclusiveSummaryPeriodDto._() : super._();

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

  @override
  @JsonKey(name: 'date_from')
  DateTime? get dateFrom;
  @override
  @JsonKey(name: 'date_to')
  DateTime? get dateTo;

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

ExclusiveSummarySummaryDto _$ExclusiveSummarySummaryDtoFromJson(
  Map<String, dynamic> json,
) {
  return _ExclusiveSummarySummaryDto.fromJson(json);
}

/// @nodoc
mixin _$ExclusiveSummarySummaryDto {
  @JsonKey(name: 'sales')
  num? get sales => throw _privateConstructorUsedError;
  @JsonKey(name: 'hpp')
  num? get hpp => throw _privateConstructorUsedError;
  @JsonKey(name: 'gross_profit')
  num? get grossProfit => throw _privateConstructorUsedError;
  @JsonKey(name: 'salary_total')
  num? get salaryTotal => throw _privateConstructorUsedError;
  @JsonKey(name: 'salary_dw')
  num? get salaryDw => throw _privateConstructorUsedError;
  @JsonKey(name: 'salary_staff')
  num? get salaryStaff => throw _privateConstructorUsedError;
  @JsonKey(name: 'salary_other')
  num? get salaryOther => throw _privateConstructorUsedError;
  @JsonKey(name: 'other_operational_expenses')
  num? get otherOperationalExpenses => throw _privateConstructorUsedError;
  @JsonKey(name: 'operational_expenses_total')
  num? get operationalExpensesTotal => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_cost')
  num? get totalCost => throw _privateConstructorUsedError;
  @JsonKey(name: 'net_profit')
  num? get netProfit => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $ExclusiveSummarySummaryDtoCopyWith<$Res> {
  factory $ExclusiveSummarySummaryDtoCopyWith(
    ExclusiveSummarySummaryDto value,
    $Res Function(ExclusiveSummarySummaryDto) then,
  ) =
      _$ExclusiveSummarySummaryDtoCopyWithImpl<
        $Res,
        ExclusiveSummarySummaryDto
      >;
  @useResult
  $Res call({
    @JsonKey(name: 'sales') num? sales,
    @JsonKey(name: 'hpp') num? hpp,
    @JsonKey(name: 'gross_profit') num? grossProfit,
    @JsonKey(name: 'salary_total') num? salaryTotal,
    @JsonKey(name: 'salary_dw') num? salaryDw,
    @JsonKey(name: 'salary_staff') num? salaryStaff,
    @JsonKey(name: 'salary_other') num? salaryOther,
    @JsonKey(name: 'other_operational_expenses') num? otherOperationalExpenses,
    @JsonKey(name: 'operational_expenses_total') num? operationalExpensesTotal,
    @JsonKey(name: 'total_cost') num? totalCost,
    @JsonKey(name: 'net_profit') num? netProfit,
  });
}

/// @nodoc
class _$ExclusiveSummarySummaryDtoCopyWithImpl<
  $Res,
  $Val extends ExclusiveSummarySummaryDto
>
    implements $ExclusiveSummarySummaryDtoCopyWith<$Res> {
  _$ExclusiveSummarySummaryDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of ExclusiveSummarySummaryDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? sales = freezed,
    Object? hpp = freezed,
    Object? grossProfit = freezed,
    Object? salaryTotal = freezed,
    Object? salaryDw = freezed,
    Object? salaryStaff = freezed,
    Object? salaryOther = freezed,
    Object? otherOperationalExpenses = freezed,
    Object? operationalExpensesTotal = freezed,
    Object? totalCost = freezed,
    Object? netProfit = freezed,
  }) {
    return _then(
      _value.copyWith(
            sales: freezed == sales
                ? _value.sales
                : sales // ignore: cast_nullable_to_non_nullable
                      as num?,
            hpp: freezed == hpp
                ? _value.hpp
                : hpp // ignore: cast_nullable_to_non_nullable
                      as num?,
            grossProfit: freezed == grossProfit
                ? _value.grossProfit
                : grossProfit // ignore: cast_nullable_to_non_nullable
                      as num?,
            salaryTotal: freezed == salaryTotal
                ? _value.salaryTotal
                : salaryTotal // ignore: cast_nullable_to_non_nullable
                      as num?,
            salaryDw: freezed == salaryDw
                ? _value.salaryDw
                : salaryDw // ignore: cast_nullable_to_non_nullable
                      as num?,
            salaryStaff: freezed == salaryStaff
                ? _value.salaryStaff
                : salaryStaff // ignore: cast_nullable_to_non_nullable
                      as num?,
            salaryOther: freezed == salaryOther
                ? _value.salaryOther
                : salaryOther // ignore: cast_nullable_to_non_nullable
                      as num?,
            otherOperationalExpenses: freezed == otherOperationalExpenses
                ? _value.otherOperationalExpenses
                : otherOperationalExpenses // ignore: cast_nullable_to_non_nullable
                      as num?,
            operationalExpensesTotal: freezed == operationalExpensesTotal
                ? _value.operationalExpensesTotal
                : operationalExpensesTotal // ignore: cast_nullable_to_non_nullable
                      as num?,
            totalCost: freezed == totalCost
                ? _value.totalCost
                : totalCost // ignore: cast_nullable_to_non_nullable
                      as num?,
            netProfit: freezed == netProfit
                ? _value.netProfit
                : netProfit // ignore: cast_nullable_to_non_nullable
                      as num?,
          )
          as $Val,
    );
  }
}

/// @nodoc
abstract class _$$ExclusiveSummarySummaryDtoImplCopyWith<$Res>
    implements $ExclusiveSummarySummaryDtoCopyWith<$Res> {
  factory _$$ExclusiveSummarySummaryDtoImplCopyWith(
    _$ExclusiveSummarySummaryDtoImpl value,
    $Res Function(_$ExclusiveSummarySummaryDtoImpl) then,
  ) = __$$ExclusiveSummarySummaryDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'sales') num? sales,
    @JsonKey(name: 'hpp') num? hpp,
    @JsonKey(name: 'gross_profit') num? grossProfit,
    @JsonKey(name: 'salary_total') num? salaryTotal,
    @JsonKey(name: 'salary_dw') num? salaryDw,
    @JsonKey(name: 'salary_staff') num? salaryStaff,
    @JsonKey(name: 'salary_other') num? salaryOther,
    @JsonKey(name: 'other_operational_expenses') num? otherOperationalExpenses,
    @JsonKey(name: 'operational_expenses_total') num? operationalExpensesTotal,
    @JsonKey(name: 'total_cost') num? totalCost,
    @JsonKey(name: 'net_profit') num? netProfit,
  });
}

/// @nodoc
class __$$ExclusiveSummarySummaryDtoImplCopyWithImpl<$Res>
    extends
        _$ExclusiveSummarySummaryDtoCopyWithImpl<
          $Res,
          _$ExclusiveSummarySummaryDtoImpl
        >
    implements _$$ExclusiveSummarySummaryDtoImplCopyWith<$Res> {
  __$$ExclusiveSummarySummaryDtoImplCopyWithImpl(
    _$ExclusiveSummarySummaryDtoImpl _value,
    $Res Function(_$ExclusiveSummarySummaryDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of ExclusiveSummarySummaryDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? sales = freezed,
    Object? hpp = freezed,
    Object? grossProfit = freezed,
    Object? salaryTotal = freezed,
    Object? salaryDw = freezed,
    Object? salaryStaff = freezed,
    Object? salaryOther = freezed,
    Object? otherOperationalExpenses = freezed,
    Object? operationalExpensesTotal = freezed,
    Object? totalCost = freezed,
    Object? netProfit = freezed,
  }) {
    return _then(
      _$ExclusiveSummarySummaryDtoImpl(
        sales: freezed == sales
            ? _value.sales
            : sales // ignore: cast_nullable_to_non_nullable
                  as num?,
        hpp: freezed == hpp
            ? _value.hpp
            : hpp // ignore: cast_nullable_to_non_nullable
                  as num?,
        grossProfit: freezed == grossProfit
            ? _value.grossProfit
            : grossProfit // ignore: cast_nullable_to_non_nullable
                  as num?,
        salaryTotal: freezed == salaryTotal
            ? _value.salaryTotal
            : salaryTotal // ignore: cast_nullable_to_non_nullable
                  as num?,
        salaryDw: freezed == salaryDw
            ? _value.salaryDw
            : salaryDw // ignore: cast_nullable_to_non_nullable
                  as num?,
        salaryStaff: freezed == salaryStaff
            ? _value.salaryStaff
            : salaryStaff // ignore: cast_nullable_to_non_nullable
                  as num?,
        salaryOther: freezed == salaryOther
            ? _value.salaryOther
            : salaryOther // ignore: cast_nullable_to_non_nullable
                  as num?,
        otherOperationalExpenses: freezed == otherOperationalExpenses
            ? _value.otherOperationalExpenses
            : otherOperationalExpenses // ignore: cast_nullable_to_non_nullable
                  as num?,
        operationalExpensesTotal: freezed == operationalExpensesTotal
            ? _value.operationalExpensesTotal
            : operationalExpensesTotal // ignore: cast_nullable_to_non_nullable
                  as num?,
        totalCost: freezed == totalCost
            ? _value.totalCost
            : totalCost // ignore: cast_nullable_to_non_nullable
                  as num?,
        netProfit: freezed == netProfit
            ? _value.netProfit
            : netProfit // ignore: cast_nullable_to_non_nullable
                  as num?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$ExclusiveSummarySummaryDtoImpl extends _ExclusiveSummarySummaryDto {
  const _$ExclusiveSummarySummaryDtoImpl({
    @JsonKey(name: 'sales') this.sales,
    @JsonKey(name: 'hpp') this.hpp,
    @JsonKey(name: 'gross_profit') this.grossProfit,
    @JsonKey(name: 'salary_total') this.salaryTotal,
    @JsonKey(name: 'salary_dw') this.salaryDw,
    @JsonKey(name: 'salary_staff') this.salaryStaff,
    @JsonKey(name: 'salary_other') this.salaryOther,
    @JsonKey(name: 'other_operational_expenses') this.otherOperationalExpenses,
    @JsonKey(name: 'operational_expenses_total') this.operationalExpensesTotal,
    @JsonKey(name: 'total_cost') this.totalCost,
    @JsonKey(name: 'net_profit') this.netProfit,
  }) : super._();

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

  @override
  @JsonKey(name: 'sales')
  final num? sales;
  @override
  @JsonKey(name: 'hpp')
  final num? hpp;
  @override
  @JsonKey(name: 'gross_profit')
  final num? grossProfit;
  @override
  @JsonKey(name: 'salary_total')
  final num? salaryTotal;
  @override
  @JsonKey(name: 'salary_dw')
  final num? salaryDw;
  @override
  @JsonKey(name: 'salary_staff')
  final num? salaryStaff;
  @override
  @JsonKey(name: 'salary_other')
  final num? salaryOther;
  @override
  @JsonKey(name: 'other_operational_expenses')
  final num? otherOperationalExpenses;
  @override
  @JsonKey(name: 'operational_expenses_total')
  final num? operationalExpensesTotal;
  @override
  @JsonKey(name: 'total_cost')
  final num? totalCost;
  @override
  @JsonKey(name: 'net_profit')
  final num? netProfit;

  @override
  String toString() {
    return 'ExclusiveSummarySummaryDto(sales: $sales, hpp: $hpp, grossProfit: $grossProfit, salaryTotal: $salaryTotal, salaryDw: $salaryDw, salaryStaff: $salaryStaff, salaryOther: $salaryOther, otherOperationalExpenses: $otherOperationalExpenses, operationalExpensesTotal: $operationalExpensesTotal, totalCost: $totalCost, netProfit: $netProfit)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ExclusiveSummarySummaryDtoImpl &&
            (identical(other.sales, sales) || other.sales == sales) &&
            (identical(other.hpp, hpp) || other.hpp == hpp) &&
            (identical(other.grossProfit, grossProfit) ||
                other.grossProfit == grossProfit) &&
            (identical(other.salaryTotal, salaryTotal) ||
                other.salaryTotal == salaryTotal) &&
            (identical(other.salaryDw, salaryDw) ||
                other.salaryDw == salaryDw) &&
            (identical(other.salaryStaff, salaryStaff) ||
                other.salaryStaff == salaryStaff) &&
            (identical(other.salaryOther, salaryOther) ||
                other.salaryOther == salaryOther) &&
            (identical(
                  other.otherOperationalExpenses,
                  otherOperationalExpenses,
                ) ||
                other.otherOperationalExpenses == otherOperationalExpenses) &&
            (identical(
                  other.operationalExpensesTotal,
                  operationalExpensesTotal,
                ) ||
                other.operationalExpensesTotal == operationalExpensesTotal) &&
            (identical(other.totalCost, totalCost) ||
                other.totalCost == totalCost) &&
            (identical(other.netProfit, netProfit) ||
                other.netProfit == netProfit));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    sales,
    hpp,
    grossProfit,
    salaryTotal,
    salaryDw,
    salaryStaff,
    salaryOther,
    otherOperationalExpenses,
    operationalExpensesTotal,
    totalCost,
    netProfit,
  );

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

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

abstract class _ExclusiveSummarySummaryDto extends ExclusiveSummarySummaryDto {
  const factory _ExclusiveSummarySummaryDto({
    @JsonKey(name: 'sales') final num? sales,
    @JsonKey(name: 'hpp') final num? hpp,
    @JsonKey(name: 'gross_profit') final num? grossProfit,
    @JsonKey(name: 'salary_total') final num? salaryTotal,
    @JsonKey(name: 'salary_dw') final num? salaryDw,
    @JsonKey(name: 'salary_staff') final num? salaryStaff,
    @JsonKey(name: 'salary_other') final num? salaryOther,
    @JsonKey(name: 'other_operational_expenses')
    final num? otherOperationalExpenses,
    @JsonKey(name: 'operational_expenses_total')
    final num? operationalExpensesTotal,
    @JsonKey(name: 'total_cost') final num? totalCost,
    @JsonKey(name: 'net_profit') final num? netProfit,
  }) = _$ExclusiveSummarySummaryDtoImpl;
  const _ExclusiveSummarySummaryDto._() : super._();

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

  @override
  @JsonKey(name: 'sales')
  num? get sales;
  @override
  @JsonKey(name: 'hpp')
  num? get hpp;
  @override
  @JsonKey(name: 'gross_profit')
  num? get grossProfit;
  @override
  @JsonKey(name: 'salary_total')
  num? get salaryTotal;
  @override
  @JsonKey(name: 'salary_dw')
  num? get salaryDw;
  @override
  @JsonKey(name: 'salary_staff')
  num? get salaryStaff;
  @override
  @JsonKey(name: 'salary_other')
  num? get salaryOther;
  @override
  @JsonKey(name: 'other_operational_expenses')
  num? get otherOperationalExpenses;
  @override
  @JsonKey(name: 'operational_expenses_total')
  num? get operationalExpensesTotal;
  @override
  @JsonKey(name: 'total_cost')
  num? get totalCost;
  @override
  @JsonKey(name: 'net_profit')
  num? get netProfit;

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

ExclusiveSummaryReimburseDto _$ExclusiveSummaryReimburseDtoFromJson(
  Map<String, dynamic> json,
) {
  return _ExclusiveSummaryReimburseDto.fromJson(json);
}

/// @nodoc
mixin _$ExclusiveSummaryReimburseDto {
  @JsonKey(name: 'total_cost')
  num? get totalCost => throw _privateConstructorUsedError;
  @JsonKey(name: 'excluded_salary_staff')
  num? get excludedSalaryStaff => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_reimburse')
  num? get totalReimburse => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $ExclusiveSummaryReimburseDtoCopyWith<$Res> {
  factory $ExclusiveSummaryReimburseDtoCopyWith(
    ExclusiveSummaryReimburseDto value,
    $Res Function(ExclusiveSummaryReimburseDto) then,
  ) =
      _$ExclusiveSummaryReimburseDtoCopyWithImpl<
        $Res,
        ExclusiveSummaryReimburseDto
      >;
  @useResult
  $Res call({
    @JsonKey(name: 'total_cost') num? totalCost,
    @JsonKey(name: 'excluded_salary_staff') num? excludedSalaryStaff,
    @JsonKey(name: 'total_reimburse') num? totalReimburse,
  });
}

/// @nodoc
class _$ExclusiveSummaryReimburseDtoCopyWithImpl<
  $Res,
  $Val extends ExclusiveSummaryReimburseDto
>
    implements $ExclusiveSummaryReimburseDtoCopyWith<$Res> {
  _$ExclusiveSummaryReimburseDtoCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$ExclusiveSummaryReimburseDtoImplCopyWith<$Res>
    implements $ExclusiveSummaryReimburseDtoCopyWith<$Res> {
  factory _$$ExclusiveSummaryReimburseDtoImplCopyWith(
    _$ExclusiveSummaryReimburseDtoImpl value,
    $Res Function(_$ExclusiveSummaryReimburseDtoImpl) then,
  ) = __$$ExclusiveSummaryReimburseDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'total_cost') num? totalCost,
    @JsonKey(name: 'excluded_salary_staff') num? excludedSalaryStaff,
    @JsonKey(name: 'total_reimburse') num? totalReimburse,
  });
}

/// @nodoc
class __$$ExclusiveSummaryReimburseDtoImplCopyWithImpl<$Res>
    extends
        _$ExclusiveSummaryReimburseDtoCopyWithImpl<
          $Res,
          _$ExclusiveSummaryReimburseDtoImpl
        >
    implements _$$ExclusiveSummaryReimburseDtoImplCopyWith<$Res> {
  __$$ExclusiveSummaryReimburseDtoImplCopyWithImpl(
    _$ExclusiveSummaryReimburseDtoImpl _value,
    $Res Function(_$ExclusiveSummaryReimburseDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of ExclusiveSummaryReimburseDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? totalCost = freezed,
    Object? excludedSalaryStaff = freezed,
    Object? totalReimburse = freezed,
  }) {
    return _then(
      _$ExclusiveSummaryReimburseDtoImpl(
        totalCost: freezed == totalCost
            ? _value.totalCost
            : totalCost // ignore: cast_nullable_to_non_nullable
                  as num?,
        excludedSalaryStaff: freezed == excludedSalaryStaff
            ? _value.excludedSalaryStaff
            : excludedSalaryStaff // ignore: cast_nullable_to_non_nullable
                  as num?,
        totalReimburse: freezed == totalReimburse
            ? _value.totalReimburse
            : totalReimburse // ignore: cast_nullable_to_non_nullable
                  as num?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$ExclusiveSummaryReimburseDtoImpl extends _ExclusiveSummaryReimburseDto {
  const _$ExclusiveSummaryReimburseDtoImpl({
    @JsonKey(name: 'total_cost') this.totalCost,
    @JsonKey(name: 'excluded_salary_staff') this.excludedSalaryStaff,
    @JsonKey(name: 'total_reimburse') this.totalReimburse,
  }) : super._();

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

  @override
  @JsonKey(name: 'total_cost')
  final num? totalCost;
  @override
  @JsonKey(name: 'excluded_salary_staff')
  final num? excludedSalaryStaff;
  @override
  @JsonKey(name: 'total_reimburse')
  final num? totalReimburse;

  @override
  String toString() {
    return 'ExclusiveSummaryReimburseDto(totalCost: $totalCost, excludedSalaryStaff: $excludedSalaryStaff, totalReimburse: $totalReimburse)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ExclusiveSummaryReimburseDtoImpl &&
            (identical(other.totalCost, totalCost) ||
                other.totalCost == totalCost) &&
            (identical(other.excludedSalaryStaff, excludedSalaryStaff) ||
                other.excludedSalaryStaff == excludedSalaryStaff) &&
            (identical(other.totalReimburse, totalReimburse) ||
                other.totalReimburse == totalReimburse));
  }

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

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

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

abstract class _ExclusiveSummaryReimburseDto
    extends ExclusiveSummaryReimburseDto {
  const factory _ExclusiveSummaryReimburseDto({
    @JsonKey(name: 'total_cost') final num? totalCost,
    @JsonKey(name: 'excluded_salary_staff') final num? excludedSalaryStaff,
    @JsonKey(name: 'total_reimburse') final num? totalReimburse,
  }) = _$ExclusiveSummaryReimburseDtoImpl;
  const _ExclusiveSummaryReimburseDto._() : super._();

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

  @override
  @JsonKey(name: 'total_cost')
  num? get totalCost;
  @override
  @JsonKey(name: 'excluded_salary_staff')
  num? get excludedSalaryStaff;
  @override
  @JsonKey(name: 'total_reimburse')
  num? get totalReimburse;

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

ExclusiveSummaryBreakdownDto _$ExclusiveSummaryBreakdownDtoFromJson(
  Map<String, dynamic> json,
) {
  return _ExclusiveSummaryBreakdownDto.fromJson(json);
}

/// @nodoc
mixin _$ExclusiveSummaryBreakdownDto {
  @JsonKey(name: 'category_code')
  String? get categoryCode => throw _privateConstructorUsedError;
  @JsonKey(name: 'category_name')
  String? get categoryName => throw _privateConstructorUsedError;
  @JsonKey(name: 'amount')
  num? get amount => throw _privateConstructorUsedError;
  @JsonKey(name: 'percentage')
  num? get percentage => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $ExclusiveSummaryBreakdownDtoCopyWith<$Res> {
  factory $ExclusiveSummaryBreakdownDtoCopyWith(
    ExclusiveSummaryBreakdownDto value,
    $Res Function(ExclusiveSummaryBreakdownDto) then,
  ) =
      _$ExclusiveSummaryBreakdownDtoCopyWithImpl<
        $Res,
        ExclusiveSummaryBreakdownDto
      >;
  @useResult
  $Res call({
    @JsonKey(name: 'category_code') String? categoryCode,
    @JsonKey(name: 'category_name') String? categoryName,
    @JsonKey(name: 'amount') num? amount,
    @JsonKey(name: 'percentage') num? percentage,
  });
}

/// @nodoc
class _$ExclusiveSummaryBreakdownDtoCopyWithImpl<
  $Res,
  $Val extends ExclusiveSummaryBreakdownDto
>
    implements $ExclusiveSummaryBreakdownDtoCopyWith<$Res> {
  _$ExclusiveSummaryBreakdownDtoCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$ExclusiveSummaryBreakdownDtoImplCopyWith<$Res>
    implements $ExclusiveSummaryBreakdownDtoCopyWith<$Res> {
  factory _$$ExclusiveSummaryBreakdownDtoImplCopyWith(
    _$ExclusiveSummaryBreakdownDtoImpl value,
    $Res Function(_$ExclusiveSummaryBreakdownDtoImpl) then,
  ) = __$$ExclusiveSummaryBreakdownDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'category_code') String? categoryCode,
    @JsonKey(name: 'category_name') String? categoryName,
    @JsonKey(name: 'amount') num? amount,
    @JsonKey(name: 'percentage') num? percentage,
  });
}

/// @nodoc
class __$$ExclusiveSummaryBreakdownDtoImplCopyWithImpl<$Res>
    extends
        _$ExclusiveSummaryBreakdownDtoCopyWithImpl<
          $Res,
          _$ExclusiveSummaryBreakdownDtoImpl
        >
    implements _$$ExclusiveSummaryBreakdownDtoImplCopyWith<$Res> {
  __$$ExclusiveSummaryBreakdownDtoImplCopyWithImpl(
    _$ExclusiveSummaryBreakdownDtoImpl _value,
    $Res Function(_$ExclusiveSummaryBreakdownDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of ExclusiveSummaryBreakdownDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? categoryCode = freezed,
    Object? categoryName = freezed,
    Object? amount = freezed,
    Object? percentage = freezed,
  }) {
    return _then(
      _$ExclusiveSummaryBreakdownDtoImpl(
        categoryCode: freezed == categoryCode
            ? _value.categoryCode
            : categoryCode // ignore: cast_nullable_to_non_nullable
                  as String?,
        categoryName: freezed == categoryName
            ? _value.categoryName
            : categoryName // ignore: cast_nullable_to_non_nullable
                  as String?,
        amount: freezed == amount
            ? _value.amount
            : amount // ignore: cast_nullable_to_non_nullable
                  as num?,
        percentage: freezed == percentage
            ? _value.percentage
            : percentage // ignore: cast_nullable_to_non_nullable
                  as num?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$ExclusiveSummaryBreakdownDtoImpl extends _ExclusiveSummaryBreakdownDto {
  const _$ExclusiveSummaryBreakdownDtoImpl({
    @JsonKey(name: 'category_code') this.categoryCode,
    @JsonKey(name: 'category_name') this.categoryName,
    @JsonKey(name: 'amount') this.amount,
    @JsonKey(name: 'percentage') this.percentage,
  }) : super._();

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

  @override
  @JsonKey(name: 'category_code')
  final String? categoryCode;
  @override
  @JsonKey(name: 'category_name')
  final String? categoryName;
  @override
  @JsonKey(name: 'amount')
  final num? amount;
  @override
  @JsonKey(name: 'percentage')
  final num? percentage;

  @override
  String toString() {
    return 'ExclusiveSummaryBreakdownDto(categoryCode: $categoryCode, categoryName: $categoryName, amount: $amount, percentage: $percentage)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ExclusiveSummaryBreakdownDtoImpl &&
            (identical(other.categoryCode, categoryCode) ||
                other.categoryCode == categoryCode) &&
            (identical(other.categoryName, categoryName) ||
                other.categoryName == categoryName) &&
            (identical(other.amount, amount) || other.amount == amount) &&
            (identical(other.percentage, percentage) ||
                other.percentage == percentage));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode =>
      Object.hash(runtimeType, categoryCode, categoryName, amount, percentage);

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

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

abstract class _ExclusiveSummaryBreakdownDto
    extends ExclusiveSummaryBreakdownDto {
  const factory _ExclusiveSummaryBreakdownDto({
    @JsonKey(name: 'category_code') final String? categoryCode,
    @JsonKey(name: 'category_name') final String? categoryName,
    @JsonKey(name: 'amount') final num? amount,
    @JsonKey(name: 'percentage') final num? percentage,
  }) = _$ExclusiveSummaryBreakdownDtoImpl;
  const _ExclusiveSummaryBreakdownDto._() : super._();

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

  @override
  @JsonKey(name: 'category_code')
  String? get categoryCode;
  @override
  @JsonKey(name: 'category_name')
  String? get categoryName;
  @override
  @JsonKey(name: 'amount')
  num? get amount;
  @override
  @JsonKey(name: 'percentage')
  num? get percentage;

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

ExclusiveSummaryDailyDto _$ExclusiveSummaryDailyDtoFromJson(
  Map<String, dynamic> json,
) {
  return _ExclusiveSummaryDailyDto.fromJson(json);
}

/// @nodoc
mixin _$ExclusiveSummaryDailyDto {
  @JsonKey(name: 'date')
  DateTime? get date => throw _privateConstructorUsedError;
  @JsonKey(name: 'transaction_count')
  num? get transactionCount => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_cost')
  num? get totalCost => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $ExclusiveSummaryDailyDtoCopyWith<$Res> {
  factory $ExclusiveSummaryDailyDtoCopyWith(
    ExclusiveSummaryDailyDto value,
    $Res Function(ExclusiveSummaryDailyDto) then,
  ) = _$ExclusiveSummaryDailyDtoCopyWithImpl<$Res, ExclusiveSummaryDailyDto>;
  @useResult
  $Res call({
    @JsonKey(name: 'date') DateTime? date,
    @JsonKey(name: 'transaction_count') num? transactionCount,
    @JsonKey(name: 'total_cost') num? totalCost,
  });
}

/// @nodoc
class _$ExclusiveSummaryDailyDtoCopyWithImpl<
  $Res,
  $Val extends ExclusiveSummaryDailyDto
>
    implements $ExclusiveSummaryDailyDtoCopyWith<$Res> {
  _$ExclusiveSummaryDailyDtoCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$ExclusiveSummaryDailyDtoImplCopyWith<$Res>
    implements $ExclusiveSummaryDailyDtoCopyWith<$Res> {
  factory _$$ExclusiveSummaryDailyDtoImplCopyWith(
    _$ExclusiveSummaryDailyDtoImpl value,
    $Res Function(_$ExclusiveSummaryDailyDtoImpl) then,
  ) = __$$ExclusiveSummaryDailyDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'date') DateTime? date,
    @JsonKey(name: 'transaction_count') num? transactionCount,
    @JsonKey(name: 'total_cost') num? totalCost,
  });
}

/// @nodoc
class __$$ExclusiveSummaryDailyDtoImplCopyWithImpl<$Res>
    extends
        _$ExclusiveSummaryDailyDtoCopyWithImpl<
          $Res,
          _$ExclusiveSummaryDailyDtoImpl
        >
    implements _$$ExclusiveSummaryDailyDtoImplCopyWith<$Res> {
  __$$ExclusiveSummaryDailyDtoImplCopyWithImpl(
    _$ExclusiveSummaryDailyDtoImpl _value,
    $Res Function(_$ExclusiveSummaryDailyDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of ExclusiveSummaryDailyDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? date = freezed,
    Object? transactionCount = freezed,
    Object? totalCost = freezed,
  }) {
    return _then(
      _$ExclusiveSummaryDailyDtoImpl(
        date: freezed == date
            ? _value.date
            : date // ignore: cast_nullable_to_non_nullable
                  as DateTime?,
        transactionCount: freezed == transactionCount
            ? _value.transactionCount
            : transactionCount // ignore: cast_nullable_to_non_nullable
                  as num?,
        totalCost: freezed == totalCost
            ? _value.totalCost
            : totalCost // ignore: cast_nullable_to_non_nullable
                  as num?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$ExclusiveSummaryDailyDtoImpl extends _ExclusiveSummaryDailyDto {
  const _$ExclusiveSummaryDailyDtoImpl({
    @JsonKey(name: 'date') this.date,
    @JsonKey(name: 'transaction_count') this.transactionCount,
    @JsonKey(name: 'total_cost') this.totalCost,
  }) : super._();

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

  @override
  @JsonKey(name: 'date')
  final DateTime? date;
  @override
  @JsonKey(name: 'transaction_count')
  final num? transactionCount;
  @override
  @JsonKey(name: 'total_cost')
  final num? totalCost;

  @override
  String toString() {
    return 'ExclusiveSummaryDailyDto(date: $date, transactionCount: $transactionCount, totalCost: $totalCost)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ExclusiveSummaryDailyDtoImpl &&
            (identical(other.date, date) || other.date == date) &&
            (identical(other.transactionCount, transactionCount) ||
                other.transactionCount == transactionCount) &&
            (identical(other.totalCost, totalCost) ||
                other.totalCost == totalCost));
  }

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

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

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

abstract class _ExclusiveSummaryDailyDto extends ExclusiveSummaryDailyDto {
  const factory _ExclusiveSummaryDailyDto({
    @JsonKey(name: 'date') final DateTime? date,
    @JsonKey(name: 'transaction_count') final num? transactionCount,
    @JsonKey(name: 'total_cost') final num? totalCost,
  }) = _$ExclusiveSummaryDailyDtoImpl;
  const _ExclusiveSummaryDailyDto._() : super._();

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

  @override
  @JsonKey(name: 'date')
  DateTime? get date;
  @override
  @JsonKey(name: 'transaction_count')
  num? get transactionCount;
  @override
  @JsonKey(name: 'total_cost')
  num? get totalCost;

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

ExclusiveSummaryTransactionDto _$ExclusiveSummaryTransactionDtoFromJson(
  Map<String, dynamic> json,
) {
  return _ExclusiveSummaryTransactionDto.fromJson(json);
}

/// @nodoc
mixin _$ExclusiveSummaryTransactionDto {
  @JsonKey(name: 'date')
  DateTime? get date => throw _privateConstructorUsedError;
  @JsonKey(name: 'category_code')
  String? get categoryCode => throw _privateConstructorUsedError;
  @JsonKey(name: 'category_name')
  String? get categoryName => throw _privateConstructorUsedError;
  @JsonKey(name: 'description')
  String? get description => throw _privateConstructorUsedError;
  @JsonKey(name: 'amount')
  num? get amount => throw _privateConstructorUsedError;
  @JsonKey(name: 'source')
  String? get source => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $ExclusiveSummaryTransactionDtoCopyWith<$Res> {
  factory $ExclusiveSummaryTransactionDtoCopyWith(
    ExclusiveSummaryTransactionDto value,
    $Res Function(ExclusiveSummaryTransactionDto) then,
  ) =
      _$ExclusiveSummaryTransactionDtoCopyWithImpl<
        $Res,
        ExclusiveSummaryTransactionDto
      >;
  @useResult
  $Res call({
    @JsonKey(name: 'date') DateTime? date,
    @JsonKey(name: 'category_code') String? categoryCode,
    @JsonKey(name: 'category_name') String? categoryName,
    @JsonKey(name: 'description') String? description,
    @JsonKey(name: 'amount') num? amount,
    @JsonKey(name: 'source') String? source,
  });
}

/// @nodoc
class _$ExclusiveSummaryTransactionDtoCopyWithImpl<
  $Res,
  $Val extends ExclusiveSummaryTransactionDto
>
    implements $ExclusiveSummaryTransactionDtoCopyWith<$Res> {
  _$ExclusiveSummaryTransactionDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of ExclusiveSummaryTransactionDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? date = freezed,
    Object? categoryCode = freezed,
    Object? categoryName = freezed,
    Object? description = freezed,
    Object? amount = freezed,
    Object? source = freezed,
  }) {
    return _then(
      _value.copyWith(
            date: freezed == date
                ? _value.date
                : date // ignore: cast_nullable_to_non_nullable
                      as DateTime?,
            categoryCode: freezed == categoryCode
                ? _value.categoryCode
                : categoryCode // ignore: cast_nullable_to_non_nullable
                      as String?,
            categoryName: freezed == categoryName
                ? _value.categoryName
                : categoryName // ignore: cast_nullable_to_non_nullable
                      as String?,
            description: freezed == description
                ? _value.description
                : description // ignore: cast_nullable_to_non_nullable
                      as String?,
            amount: freezed == amount
                ? _value.amount
                : amount // ignore: cast_nullable_to_non_nullable
                      as num?,
            source: freezed == source
                ? _value.source
                : source // ignore: cast_nullable_to_non_nullable
                      as String?,
          )
          as $Val,
    );
  }
}

/// @nodoc
abstract class _$$ExclusiveSummaryTransactionDtoImplCopyWith<$Res>
    implements $ExclusiveSummaryTransactionDtoCopyWith<$Res> {
  factory _$$ExclusiveSummaryTransactionDtoImplCopyWith(
    _$ExclusiveSummaryTransactionDtoImpl value,
    $Res Function(_$ExclusiveSummaryTransactionDtoImpl) then,
  ) = __$$ExclusiveSummaryTransactionDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'date') DateTime? date,
    @JsonKey(name: 'category_code') String? categoryCode,
    @JsonKey(name: 'category_name') String? categoryName,
    @JsonKey(name: 'description') String? description,
    @JsonKey(name: 'amount') num? amount,
    @JsonKey(name: 'source') String? source,
  });
}

/// @nodoc
class __$$ExclusiveSummaryTransactionDtoImplCopyWithImpl<$Res>
    extends
        _$ExclusiveSummaryTransactionDtoCopyWithImpl<
          $Res,
          _$ExclusiveSummaryTransactionDtoImpl
        >
    implements _$$ExclusiveSummaryTransactionDtoImplCopyWith<$Res> {
  __$$ExclusiveSummaryTransactionDtoImplCopyWithImpl(
    _$ExclusiveSummaryTransactionDtoImpl _value,
    $Res Function(_$ExclusiveSummaryTransactionDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of ExclusiveSummaryTransactionDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? date = freezed,
    Object? categoryCode = freezed,
    Object? categoryName = freezed,
    Object? description = freezed,
    Object? amount = freezed,
    Object? source = freezed,
  }) {
    return _then(
      _$ExclusiveSummaryTransactionDtoImpl(
        date: freezed == date
            ? _value.date
            : date // ignore: cast_nullable_to_non_nullable
                  as DateTime?,
        categoryCode: freezed == categoryCode
            ? _value.categoryCode
            : categoryCode // ignore: cast_nullable_to_non_nullable
                  as String?,
        categoryName: freezed == categoryName
            ? _value.categoryName
            : categoryName // ignore: cast_nullable_to_non_nullable
                  as String?,
        description: freezed == description
            ? _value.description
            : description // ignore: cast_nullable_to_non_nullable
                  as String?,
        amount: freezed == amount
            ? _value.amount
            : amount // ignore: cast_nullable_to_non_nullable
                  as num?,
        source: freezed == source
            ? _value.source
            : source // ignore: cast_nullable_to_non_nullable
                  as String?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$ExclusiveSummaryTransactionDtoImpl
    extends _ExclusiveSummaryTransactionDto {
  const _$ExclusiveSummaryTransactionDtoImpl({
    @JsonKey(name: 'date') this.date,
    @JsonKey(name: 'category_code') this.categoryCode,
    @JsonKey(name: 'category_name') this.categoryName,
    @JsonKey(name: 'description') this.description,
    @JsonKey(name: 'amount') this.amount,
    @JsonKey(name: 'source') this.source,
  }) : super._();

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

  @override
  @JsonKey(name: 'date')
  final DateTime? date;
  @override
  @JsonKey(name: 'category_code')
  final String? categoryCode;
  @override
  @JsonKey(name: 'category_name')
  final String? categoryName;
  @override
  @JsonKey(name: 'description')
  final String? description;
  @override
  @JsonKey(name: 'amount')
  final num? amount;
  @override
  @JsonKey(name: 'source')
  final String? source;

  @override
  String toString() {
    return 'ExclusiveSummaryTransactionDto(date: $date, categoryCode: $categoryCode, categoryName: $categoryName, description: $description, amount: $amount, source: $source)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ExclusiveSummaryTransactionDtoImpl &&
            (identical(other.date, date) || other.date == date) &&
            (identical(other.categoryCode, categoryCode) ||
                other.categoryCode == categoryCode) &&
            (identical(other.categoryName, categoryName) ||
                other.categoryName == categoryName) &&
            (identical(other.description, description) ||
                other.description == description) &&
            (identical(other.amount, amount) || other.amount == amount) &&
            (identical(other.source, source) || other.source == source));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    date,
    categoryCode,
    categoryName,
    description,
    amount,
    source,
  );

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

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

abstract class _ExclusiveSummaryTransactionDto
    extends ExclusiveSummaryTransactionDto {
  const factory _ExclusiveSummaryTransactionDto({
    @JsonKey(name: 'date') final DateTime? date,
    @JsonKey(name: 'category_code') final String? categoryCode,
    @JsonKey(name: 'category_name') final String? categoryName,
    @JsonKey(name: 'description') final String? description,
    @JsonKey(name: 'amount') final num? amount,
    @JsonKey(name: 'source') final String? source,
  }) = _$ExclusiveSummaryTransactionDtoImpl;
  const _ExclusiveSummaryTransactionDto._() : super._();

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

  @override
  @JsonKey(name: 'date')
  DateTime? get date;
  @override
  @JsonKey(name: 'category_code')
  String? get categoryCode;
  @override
  @JsonKey(name: 'category_name')
  String? get categoryName;
  @override
  @JsonKey(name: 'description')
  String? get description;
  @override
  @JsonKey(name: 'amount')
  num? get amount;
  @override
  @JsonKey(name: 'source')
  String? get source;

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

ProfitSharingDto _$ProfitSharingDtoFromJson(Map<String, dynamic> json) {
  return _ProfitSharingDto.fromJson(json);
}

/// @nodoc
mixin _$ProfitSharingDto {
  @JsonKey(name: 'organization_id')
  String? get organizationId => throw _privateConstructorUsedError;
  @JsonKey(name: 'outlet_id')
  String? get outletId => throw _privateConstructorUsedError;
  @JsonKey(name: 'outlet_name')
  String? get outletName => throw _privateConstructorUsedError;
  @JsonKey(name: 'date_from')
  DateTime? get dateFrom => throw _privateConstructorUsedError;
  @JsonKey(name: 'date_to')
  DateTime? get dateTo => throw _privateConstructorUsedError;
  @JsonKey(name: 'data')
  List<ProfitSharingCategoryDto>? get data =>
      throw _privateConstructorUsedError;
  @JsonKey(name: 'budget')
  ProfitSharingBudgetDto? get budget => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $ProfitSharingDtoCopyWith<$Res> {
  factory $ProfitSharingDtoCopyWith(
    ProfitSharingDto value,
    $Res Function(ProfitSharingDto) then,
  ) = _$ProfitSharingDtoCopyWithImpl<$Res, ProfitSharingDto>;
  @useResult
  $Res call({
    @JsonKey(name: 'organization_id') String? organizationId,
    @JsonKey(name: 'outlet_id') String? outletId,
    @JsonKey(name: 'outlet_name') String? outletName,
    @JsonKey(name: 'date_from') DateTime? dateFrom,
    @JsonKey(name: 'date_to') DateTime? dateTo,
    @JsonKey(name: 'data') List<ProfitSharingCategoryDto>? data,
    @JsonKey(name: 'budget') ProfitSharingBudgetDto? budget,
  });

  $ProfitSharingBudgetDtoCopyWith<$Res>? get budget;
}

/// @nodoc
class _$ProfitSharingDtoCopyWithImpl<$Res, $Val extends ProfitSharingDto>
    implements $ProfitSharingDtoCopyWith<$Res> {
  _$ProfitSharingDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of ProfitSharingDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? organizationId = freezed,
    Object? outletId = freezed,
    Object? outletName = freezed,
    Object? dateFrom = freezed,
    Object? dateTo = freezed,
    Object? data = freezed,
    Object? budget = freezed,
  }) {
    return _then(
      _value.copyWith(
            organizationId: freezed == organizationId
                ? _value.organizationId
                : organizationId // ignore: cast_nullable_to_non_nullable
                      as String?,
            outletId: freezed == outletId
                ? _value.outletId
                : outletId // ignore: cast_nullable_to_non_nullable
                      as String?,
            outletName: freezed == outletName
                ? _value.outletName
                : outletName // ignore: cast_nullable_to_non_nullable
                      as String?,
            dateFrom: freezed == dateFrom
                ? _value.dateFrom
                : dateFrom // ignore: cast_nullable_to_non_nullable
                      as DateTime?,
            dateTo: freezed == dateTo
                ? _value.dateTo
                : dateTo // ignore: cast_nullable_to_non_nullable
                      as DateTime?,
            data: freezed == data
                ? _value.data
                : data // ignore: cast_nullable_to_non_nullable
                      as List<ProfitSharingCategoryDto>?,
            budget: freezed == budget
                ? _value.budget
                : budget // ignore: cast_nullable_to_non_nullable
                      as ProfitSharingBudgetDto?,
          )
          as $Val,
    );
  }

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

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

/// @nodoc
abstract class _$$ProfitSharingDtoImplCopyWith<$Res>
    implements $ProfitSharingDtoCopyWith<$Res> {
  factory _$$ProfitSharingDtoImplCopyWith(
    _$ProfitSharingDtoImpl value,
    $Res Function(_$ProfitSharingDtoImpl) then,
  ) = __$$ProfitSharingDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'organization_id') String? organizationId,
    @JsonKey(name: 'outlet_id') String? outletId,
    @JsonKey(name: 'outlet_name') String? outletName,
    @JsonKey(name: 'date_from') DateTime? dateFrom,
    @JsonKey(name: 'date_to') DateTime? dateTo,
    @JsonKey(name: 'data') List<ProfitSharingCategoryDto>? data,
    @JsonKey(name: 'budget') ProfitSharingBudgetDto? budget,
  });

  @override
  $ProfitSharingBudgetDtoCopyWith<$Res>? get budget;
}

/// @nodoc
class __$$ProfitSharingDtoImplCopyWithImpl<$Res>
    extends _$ProfitSharingDtoCopyWithImpl<$Res, _$ProfitSharingDtoImpl>
    implements _$$ProfitSharingDtoImplCopyWith<$Res> {
  __$$ProfitSharingDtoImplCopyWithImpl(
    _$ProfitSharingDtoImpl _value,
    $Res Function(_$ProfitSharingDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of ProfitSharingDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? organizationId = freezed,
    Object? outletId = freezed,
    Object? outletName = freezed,
    Object? dateFrom = freezed,
    Object? dateTo = freezed,
    Object? data = freezed,
    Object? budget = freezed,
  }) {
    return _then(
      _$ProfitSharingDtoImpl(
        organizationId: freezed == organizationId
            ? _value.organizationId
            : organizationId // ignore: cast_nullable_to_non_nullable
                  as String?,
        outletId: freezed == outletId
            ? _value.outletId
            : outletId // ignore: cast_nullable_to_non_nullable
                  as String?,
        outletName: freezed == outletName
            ? _value.outletName
            : outletName // ignore: cast_nullable_to_non_nullable
                  as String?,
        dateFrom: freezed == dateFrom
            ? _value.dateFrom
            : dateFrom // ignore: cast_nullable_to_non_nullable
                  as DateTime?,
        dateTo: freezed == dateTo
            ? _value.dateTo
            : dateTo // ignore: cast_nullable_to_non_nullable
                  as DateTime?,
        data: freezed == data
            ? _value._data
            : data // ignore: cast_nullable_to_non_nullable
                  as List<ProfitSharingCategoryDto>?,
        budget: freezed == budget
            ? _value.budget
            : budget // ignore: cast_nullable_to_non_nullable
                  as ProfitSharingBudgetDto?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$ProfitSharingDtoImpl extends _ProfitSharingDto {
  const _$ProfitSharingDtoImpl({
    @JsonKey(name: 'organization_id') this.organizationId,
    @JsonKey(name: 'outlet_id') this.outletId,
    @JsonKey(name: 'outlet_name') this.outletName,
    @JsonKey(name: 'date_from') this.dateFrom,
    @JsonKey(name: 'date_to') this.dateTo,
    @JsonKey(name: 'data') final List<ProfitSharingCategoryDto>? data,
    @JsonKey(name: 'budget') this.budget,
  }) : _data = data,
       super._();

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

  @override
  @JsonKey(name: 'organization_id')
  final String? organizationId;
  @override
  @JsonKey(name: 'outlet_id')
  final String? outletId;
  @override
  @JsonKey(name: 'outlet_name')
  final String? outletName;
  @override
  @JsonKey(name: 'date_from')
  final DateTime? dateFrom;
  @override
  @JsonKey(name: 'date_to')
  final DateTime? dateTo;
  final List<ProfitSharingCategoryDto>? _data;
  @override
  @JsonKey(name: 'data')
  List<ProfitSharingCategoryDto>? get data {
    final value = _data;
    if (value == null) return null;
    if (_data is EqualUnmodifiableListView) return _data;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

  @override
  @JsonKey(name: 'budget')
  final ProfitSharingBudgetDto? budget;

  @override
  String toString() {
    return 'ProfitSharingDto(organizationId: $organizationId, outletId: $outletId, outletName: $outletName, dateFrom: $dateFrom, dateTo: $dateTo, data: $data, budget: $budget)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ProfitSharingDtoImpl &&
            (identical(other.organizationId, organizationId) ||
                other.organizationId == organizationId) &&
            (identical(other.outletId, outletId) ||
                other.outletId == outletId) &&
            (identical(other.outletName, outletName) ||
                other.outletName == outletName) &&
            (identical(other.dateFrom, dateFrom) ||
                other.dateFrom == dateFrom) &&
            (identical(other.dateTo, dateTo) || other.dateTo == dateTo) &&
            const DeepCollectionEquality().equals(other._data, _data) &&
            (identical(other.budget, budget) || other.budget == budget));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    organizationId,
    outletId,
    outletName,
    dateFrom,
    dateTo,
    const DeepCollectionEquality().hash(_data),
    budget,
  );

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

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

abstract class _ProfitSharingDto extends ProfitSharingDto {
  const factory _ProfitSharingDto({
    @JsonKey(name: 'organization_id') final String? organizationId,
    @JsonKey(name: 'outlet_id') final String? outletId,
    @JsonKey(name: 'outlet_name') final String? outletName,
    @JsonKey(name: 'date_from') final DateTime? dateFrom,
    @JsonKey(name: 'date_to') final DateTime? dateTo,
    @JsonKey(name: 'data') final List<ProfitSharingCategoryDto>? data,
    @JsonKey(name: 'budget') final ProfitSharingBudgetDto? budget,
  }) = _$ProfitSharingDtoImpl;
  const _ProfitSharingDto._() : super._();

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

  @override
  @JsonKey(name: 'organization_id')
  String? get organizationId;
  @override
  @JsonKey(name: 'outlet_id')
  String? get outletId;
  @override
  @JsonKey(name: 'outlet_name')
  String? get outletName;
  @override
  @JsonKey(name: 'date_from')
  DateTime? get dateFrom;
  @override
  @JsonKey(name: 'date_to')
  DateTime? get dateTo;
  @override
  @JsonKey(name: 'data')
  List<ProfitSharingCategoryDto>? get data;
  @override
  @JsonKey(name: 'budget')
  ProfitSharingBudgetDto? get budget;

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

ProfitSharingCategoryDto _$ProfitSharingCategoryDtoFromJson(
  Map<String, dynamic> json,
) {
  return _ProfitSharingCategoryDto.fromJson(json);
}

/// @nodoc
mixin _$ProfitSharingCategoryDto {
  @JsonKey(name: 'parent_category_id')
  String? get parentCategoryId => throw _privateConstructorUsedError;
  @JsonKey(name: 'parent_category_name')
  String? get parentCategoryName => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_revenue')
  num? get totalRevenue => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_quantity')
  num? get totalQuantity => throw _privateConstructorUsedError;
  @JsonKey(name: 'category_count')
  num? get categoryCount => throw _privateConstructorUsedError;
  @JsonKey(name: 'product_count')
  num? get productCount => throw _privateConstructorUsedError;
  @JsonKey(name: 'order_count')
  num? get orderCount => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_standard_hpp')
  num? get totalStandardHpp => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_fifo_hpp')
  num? get totalFifoHpp => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_moving_average_hpp')
  num? get totalMovingAverageHpp => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $ProfitSharingCategoryDtoCopyWith<$Res> {
  factory $ProfitSharingCategoryDtoCopyWith(
    ProfitSharingCategoryDto value,
    $Res Function(ProfitSharingCategoryDto) then,
  ) = _$ProfitSharingCategoryDtoCopyWithImpl<$Res, ProfitSharingCategoryDto>;
  @useResult
  $Res call({
    @JsonKey(name: 'parent_category_id') String? parentCategoryId,
    @JsonKey(name: 'parent_category_name') String? parentCategoryName,
    @JsonKey(name: 'total_revenue') num? totalRevenue,
    @JsonKey(name: 'total_quantity') num? totalQuantity,
    @JsonKey(name: 'category_count') num? categoryCount,
    @JsonKey(name: 'product_count') num? productCount,
    @JsonKey(name: 'order_count') num? orderCount,
    @JsonKey(name: 'total_standard_hpp') num? totalStandardHpp,
    @JsonKey(name: 'total_fifo_hpp') num? totalFifoHpp,
    @JsonKey(name: 'total_moving_average_hpp') num? totalMovingAverageHpp,
  });
}

/// @nodoc
class _$ProfitSharingCategoryDtoCopyWithImpl<
  $Res,
  $Val extends ProfitSharingCategoryDto
>
    implements $ProfitSharingCategoryDtoCopyWith<$Res> {
  _$ProfitSharingCategoryDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of ProfitSharingCategoryDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? parentCategoryId = freezed,
    Object? parentCategoryName = freezed,
    Object? totalRevenue = freezed,
    Object? totalQuantity = freezed,
    Object? categoryCount = freezed,
    Object? productCount = freezed,
    Object? orderCount = freezed,
    Object? totalStandardHpp = freezed,
    Object? totalFifoHpp = freezed,
    Object? totalMovingAverageHpp = freezed,
  }) {
    return _then(
      _value.copyWith(
            parentCategoryId: freezed == parentCategoryId
                ? _value.parentCategoryId
                : parentCategoryId // ignore: cast_nullable_to_non_nullable
                      as String?,
            parentCategoryName: freezed == parentCategoryName
                ? _value.parentCategoryName
                : parentCategoryName // ignore: cast_nullable_to_non_nullable
                      as String?,
            totalRevenue: freezed == totalRevenue
                ? _value.totalRevenue
                : totalRevenue // ignore: cast_nullable_to_non_nullable
                      as num?,
            totalQuantity: freezed == totalQuantity
                ? _value.totalQuantity
                : totalQuantity // ignore: cast_nullable_to_non_nullable
                      as num?,
            categoryCount: freezed == categoryCount
                ? _value.categoryCount
                : categoryCount // ignore: cast_nullable_to_non_nullable
                      as num?,
            productCount: freezed == productCount
                ? _value.productCount
                : productCount // ignore: cast_nullable_to_non_nullable
                      as num?,
            orderCount: freezed == orderCount
                ? _value.orderCount
                : orderCount // ignore: cast_nullable_to_non_nullable
                      as num?,
            totalStandardHpp: freezed == totalStandardHpp
                ? _value.totalStandardHpp
                : totalStandardHpp // ignore: cast_nullable_to_non_nullable
                      as num?,
            totalFifoHpp: freezed == totalFifoHpp
                ? _value.totalFifoHpp
                : totalFifoHpp // ignore: cast_nullable_to_non_nullable
                      as num?,
            totalMovingAverageHpp: freezed == totalMovingAverageHpp
                ? _value.totalMovingAverageHpp
                : totalMovingAverageHpp // ignore: cast_nullable_to_non_nullable
                      as num?,
          )
          as $Val,
    );
  }
}

/// @nodoc
abstract class _$$ProfitSharingCategoryDtoImplCopyWith<$Res>
    implements $ProfitSharingCategoryDtoCopyWith<$Res> {
  factory _$$ProfitSharingCategoryDtoImplCopyWith(
    _$ProfitSharingCategoryDtoImpl value,
    $Res Function(_$ProfitSharingCategoryDtoImpl) then,
  ) = __$$ProfitSharingCategoryDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'parent_category_id') String? parentCategoryId,
    @JsonKey(name: 'parent_category_name') String? parentCategoryName,
    @JsonKey(name: 'total_revenue') num? totalRevenue,
    @JsonKey(name: 'total_quantity') num? totalQuantity,
    @JsonKey(name: 'category_count') num? categoryCount,
    @JsonKey(name: 'product_count') num? productCount,
    @JsonKey(name: 'order_count') num? orderCount,
    @JsonKey(name: 'total_standard_hpp') num? totalStandardHpp,
    @JsonKey(name: 'total_fifo_hpp') num? totalFifoHpp,
    @JsonKey(name: 'total_moving_average_hpp') num? totalMovingAverageHpp,
  });
}

/// @nodoc
class __$$ProfitSharingCategoryDtoImplCopyWithImpl<$Res>
    extends
        _$ProfitSharingCategoryDtoCopyWithImpl<
          $Res,
          _$ProfitSharingCategoryDtoImpl
        >
    implements _$$ProfitSharingCategoryDtoImplCopyWith<$Res> {
  __$$ProfitSharingCategoryDtoImplCopyWithImpl(
    _$ProfitSharingCategoryDtoImpl _value,
    $Res Function(_$ProfitSharingCategoryDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of ProfitSharingCategoryDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? parentCategoryId = freezed,
    Object? parentCategoryName = freezed,
    Object? totalRevenue = freezed,
    Object? totalQuantity = freezed,
    Object? categoryCount = freezed,
    Object? productCount = freezed,
    Object? orderCount = freezed,
    Object? totalStandardHpp = freezed,
    Object? totalFifoHpp = freezed,
    Object? totalMovingAverageHpp = freezed,
  }) {
    return _then(
      _$ProfitSharingCategoryDtoImpl(
        parentCategoryId: freezed == parentCategoryId
            ? _value.parentCategoryId
            : parentCategoryId // ignore: cast_nullable_to_non_nullable
                  as String?,
        parentCategoryName: freezed == parentCategoryName
            ? _value.parentCategoryName
            : parentCategoryName // ignore: cast_nullable_to_non_nullable
                  as String?,
        totalRevenue: freezed == totalRevenue
            ? _value.totalRevenue
            : totalRevenue // ignore: cast_nullable_to_non_nullable
                  as num?,
        totalQuantity: freezed == totalQuantity
            ? _value.totalQuantity
            : totalQuantity // ignore: cast_nullable_to_non_nullable
                  as num?,
        categoryCount: freezed == categoryCount
            ? _value.categoryCount
            : categoryCount // ignore: cast_nullable_to_non_nullable
                  as num?,
        productCount: freezed == productCount
            ? _value.productCount
            : productCount // ignore: cast_nullable_to_non_nullable
                  as num?,
        orderCount: freezed == orderCount
            ? _value.orderCount
            : orderCount // ignore: cast_nullable_to_non_nullable
                  as num?,
        totalStandardHpp: freezed == totalStandardHpp
            ? _value.totalStandardHpp
            : totalStandardHpp // ignore: cast_nullable_to_non_nullable
                  as num?,
        totalFifoHpp: freezed == totalFifoHpp
            ? _value.totalFifoHpp
            : totalFifoHpp // ignore: cast_nullable_to_non_nullable
                  as num?,
        totalMovingAverageHpp: freezed == totalMovingAverageHpp
            ? _value.totalMovingAverageHpp
            : totalMovingAverageHpp // ignore: cast_nullable_to_non_nullable
                  as num?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$ProfitSharingCategoryDtoImpl extends _ProfitSharingCategoryDto {
  const _$ProfitSharingCategoryDtoImpl({
    @JsonKey(name: 'parent_category_id') this.parentCategoryId,
    @JsonKey(name: 'parent_category_name') this.parentCategoryName,
    @JsonKey(name: 'total_revenue') this.totalRevenue,
    @JsonKey(name: 'total_quantity') this.totalQuantity,
    @JsonKey(name: 'category_count') this.categoryCount,
    @JsonKey(name: 'product_count') this.productCount,
    @JsonKey(name: 'order_count') this.orderCount,
    @JsonKey(name: 'total_standard_hpp') this.totalStandardHpp,
    @JsonKey(name: 'total_fifo_hpp') this.totalFifoHpp,
    @JsonKey(name: 'total_moving_average_hpp') this.totalMovingAverageHpp,
  }) : super._();

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

  @override
  @JsonKey(name: 'parent_category_id')
  final String? parentCategoryId;
  @override
  @JsonKey(name: 'parent_category_name')
  final String? parentCategoryName;
  @override
  @JsonKey(name: 'total_revenue')
  final num? totalRevenue;
  @override
  @JsonKey(name: 'total_quantity')
  final num? totalQuantity;
  @override
  @JsonKey(name: 'category_count')
  final num? categoryCount;
  @override
  @JsonKey(name: 'product_count')
  final num? productCount;
  @override
  @JsonKey(name: 'order_count')
  final num? orderCount;
  @override
  @JsonKey(name: 'total_standard_hpp')
  final num? totalStandardHpp;
  @override
  @JsonKey(name: 'total_fifo_hpp')
  final num? totalFifoHpp;
  @override
  @JsonKey(name: 'total_moving_average_hpp')
  final num? totalMovingAverageHpp;

  @override
  String toString() {
    return 'ProfitSharingCategoryDto(parentCategoryId: $parentCategoryId, parentCategoryName: $parentCategoryName, totalRevenue: $totalRevenue, totalQuantity: $totalQuantity, categoryCount: $categoryCount, productCount: $productCount, orderCount: $orderCount, totalStandardHpp: $totalStandardHpp, totalFifoHpp: $totalFifoHpp, totalMovingAverageHpp: $totalMovingAverageHpp)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ProfitSharingCategoryDtoImpl &&
            (identical(other.parentCategoryId, parentCategoryId) ||
                other.parentCategoryId == parentCategoryId) &&
            (identical(other.parentCategoryName, parentCategoryName) ||
                other.parentCategoryName == parentCategoryName) &&
            (identical(other.totalRevenue, totalRevenue) ||
                other.totalRevenue == totalRevenue) &&
            (identical(other.totalQuantity, totalQuantity) ||
                other.totalQuantity == totalQuantity) &&
            (identical(other.categoryCount, categoryCount) ||
                other.categoryCount == categoryCount) &&
            (identical(other.productCount, productCount) ||
                other.productCount == productCount) &&
            (identical(other.orderCount, orderCount) ||
                other.orderCount == orderCount) &&
            (identical(other.totalStandardHpp, totalStandardHpp) ||
                other.totalStandardHpp == totalStandardHpp) &&
            (identical(other.totalFifoHpp, totalFifoHpp) ||
                other.totalFifoHpp == totalFifoHpp) &&
            (identical(other.totalMovingAverageHpp, totalMovingAverageHpp) ||
                other.totalMovingAverageHpp == totalMovingAverageHpp));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    parentCategoryId,
    parentCategoryName,
    totalRevenue,
    totalQuantity,
    categoryCount,
    productCount,
    orderCount,
    totalStandardHpp,
    totalFifoHpp,
    totalMovingAverageHpp,
  );

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

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

abstract class _ProfitSharingCategoryDto extends ProfitSharingCategoryDto {
  const factory _ProfitSharingCategoryDto({
    @JsonKey(name: 'parent_category_id') final String? parentCategoryId,
    @JsonKey(name: 'parent_category_name') final String? parentCategoryName,
    @JsonKey(name: 'total_revenue') final num? totalRevenue,
    @JsonKey(name: 'total_quantity') final num? totalQuantity,
    @JsonKey(name: 'category_count') final num? categoryCount,
    @JsonKey(name: 'product_count') final num? productCount,
    @JsonKey(name: 'order_count') final num? orderCount,
    @JsonKey(name: 'total_standard_hpp') final num? totalStandardHpp,
    @JsonKey(name: 'total_fifo_hpp') final num? totalFifoHpp,
    @JsonKey(name: 'total_moving_average_hpp') final num? totalMovingAverageHpp,
  }) = _$ProfitSharingCategoryDtoImpl;
  const _ProfitSharingCategoryDto._() : super._();

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

  @override
  @JsonKey(name: 'parent_category_id')
  String? get parentCategoryId;
  @override
  @JsonKey(name: 'parent_category_name')
  String? get parentCategoryName;
  @override
  @JsonKey(name: 'total_revenue')
  num? get totalRevenue;
  @override
  @JsonKey(name: 'total_quantity')
  num? get totalQuantity;
  @override
  @JsonKey(name: 'category_count')
  num? get categoryCount;
  @override
  @JsonKey(name: 'product_count')
  num? get productCount;
  @override
  @JsonKey(name: 'order_count')
  num? get orderCount;
  @override
  @JsonKey(name: 'total_standard_hpp')
  num? get totalStandardHpp;
  @override
  @JsonKey(name: 'total_fifo_hpp')
  num? get totalFifoHpp;
  @override
  @JsonKey(name: 'total_moving_average_hpp')
  num? get totalMovingAverageHpp;

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

ProfitSharingBudgetDto _$ProfitSharingBudgetDtoFromJson(
  Map<String, dynamic> json,
) {
  return _ProfitSharingBudgetDto.fromJson(json);
}

/// @nodoc
mixin _$ProfitSharingBudgetDto {
  @JsonKey(name: 'percentages')
  ProfitSharingPercentageDto? get percentages =>
      throw _privateConstructorUsedError;
  @JsonKey(name: 'cut_off_from')
  DateTime? get cutOffFrom => throw _privateConstructorUsedError;
  @JsonKey(name: 'cut_off_to')
  DateTime? get cutOffTo => throw _privateConstructorUsedError;
  @JsonKey(name: 'total')
  ProfitSharingPeriodDto? get total => throw _privateConstructorUsedError;
  @JsonKey(name: 'weekly')
  List<ProfitSharingPeriodDto>? get weekly =>
      throw _privateConstructorUsedError;
  @JsonKey(name: 'monthly')
  List<ProfitSharingPeriodDto>? get monthly =>
      throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $ProfitSharingBudgetDtoCopyWith<$Res> {
  factory $ProfitSharingBudgetDtoCopyWith(
    ProfitSharingBudgetDto value,
    $Res Function(ProfitSharingBudgetDto) then,
  ) = _$ProfitSharingBudgetDtoCopyWithImpl<$Res, ProfitSharingBudgetDto>;
  @useResult
  $Res call({
    @JsonKey(name: 'percentages') ProfitSharingPercentageDto? percentages,
    @JsonKey(name: 'cut_off_from') DateTime? cutOffFrom,
    @JsonKey(name: 'cut_off_to') DateTime? cutOffTo,
    @JsonKey(name: 'total') ProfitSharingPeriodDto? total,
    @JsonKey(name: 'weekly') List<ProfitSharingPeriodDto>? weekly,
    @JsonKey(name: 'monthly') List<ProfitSharingPeriodDto>? monthly,
  });

  $ProfitSharingPercentageDtoCopyWith<$Res>? get percentages;
  $ProfitSharingPeriodDtoCopyWith<$Res>? get total;
}

/// @nodoc
class _$ProfitSharingBudgetDtoCopyWithImpl<
  $Res,
  $Val extends ProfitSharingBudgetDto
>
    implements $ProfitSharingBudgetDtoCopyWith<$Res> {
  _$ProfitSharingBudgetDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of ProfitSharingBudgetDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? percentages = freezed,
    Object? cutOffFrom = freezed,
    Object? cutOffTo = freezed,
    Object? total = freezed,
    Object? weekly = freezed,
    Object? monthly = freezed,
  }) {
    return _then(
      _value.copyWith(
            percentages: freezed == percentages
                ? _value.percentages
                : percentages // ignore: cast_nullable_to_non_nullable
                      as ProfitSharingPercentageDto?,
            cutOffFrom: freezed == cutOffFrom
                ? _value.cutOffFrom
                : cutOffFrom // ignore: cast_nullable_to_non_nullable
                      as DateTime?,
            cutOffTo: freezed == cutOffTo
                ? _value.cutOffTo
                : cutOffTo // ignore: cast_nullable_to_non_nullable
                      as DateTime?,
            total: freezed == total
                ? _value.total
                : total // ignore: cast_nullable_to_non_nullable
                      as ProfitSharingPeriodDto?,
            weekly: freezed == weekly
                ? _value.weekly
                : weekly // ignore: cast_nullable_to_non_nullable
                      as List<ProfitSharingPeriodDto>?,
            monthly: freezed == monthly
                ? _value.monthly
                : monthly // ignore: cast_nullable_to_non_nullable
                      as List<ProfitSharingPeriodDto>?,
          )
          as $Val,
    );
  }

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

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

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

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

/// @nodoc
abstract class _$$ProfitSharingBudgetDtoImplCopyWith<$Res>
    implements $ProfitSharingBudgetDtoCopyWith<$Res> {
  factory _$$ProfitSharingBudgetDtoImplCopyWith(
    _$ProfitSharingBudgetDtoImpl value,
    $Res Function(_$ProfitSharingBudgetDtoImpl) then,
  ) = __$$ProfitSharingBudgetDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'percentages') ProfitSharingPercentageDto? percentages,
    @JsonKey(name: 'cut_off_from') DateTime? cutOffFrom,
    @JsonKey(name: 'cut_off_to') DateTime? cutOffTo,
    @JsonKey(name: 'total') ProfitSharingPeriodDto? total,
    @JsonKey(name: 'weekly') List<ProfitSharingPeriodDto>? weekly,
    @JsonKey(name: 'monthly') List<ProfitSharingPeriodDto>? monthly,
  });

  @override
  $ProfitSharingPercentageDtoCopyWith<$Res>? get percentages;
  @override
  $ProfitSharingPeriodDtoCopyWith<$Res>? get total;
}

/// @nodoc
class __$$ProfitSharingBudgetDtoImplCopyWithImpl<$Res>
    extends
        _$ProfitSharingBudgetDtoCopyWithImpl<$Res, _$ProfitSharingBudgetDtoImpl>
    implements _$$ProfitSharingBudgetDtoImplCopyWith<$Res> {
  __$$ProfitSharingBudgetDtoImplCopyWithImpl(
    _$ProfitSharingBudgetDtoImpl _value,
    $Res Function(_$ProfitSharingBudgetDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of ProfitSharingBudgetDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? percentages = freezed,
    Object? cutOffFrom = freezed,
    Object? cutOffTo = freezed,
    Object? total = freezed,
    Object? weekly = freezed,
    Object? monthly = freezed,
  }) {
    return _then(
      _$ProfitSharingBudgetDtoImpl(
        percentages: freezed == percentages
            ? _value.percentages
            : percentages // ignore: cast_nullable_to_non_nullable
                  as ProfitSharingPercentageDto?,
        cutOffFrom: freezed == cutOffFrom
            ? _value.cutOffFrom
            : cutOffFrom // ignore: cast_nullable_to_non_nullable
                  as DateTime?,
        cutOffTo: freezed == cutOffTo
            ? _value.cutOffTo
            : cutOffTo // ignore: cast_nullable_to_non_nullable
                  as DateTime?,
        total: freezed == total
            ? _value.total
            : total // ignore: cast_nullable_to_non_nullable
                  as ProfitSharingPeriodDto?,
        weekly: freezed == weekly
            ? _value._weekly
            : weekly // ignore: cast_nullable_to_non_nullable
                  as List<ProfitSharingPeriodDto>?,
        monthly: freezed == monthly
            ? _value._monthly
            : monthly // ignore: cast_nullable_to_non_nullable
                  as List<ProfitSharingPeriodDto>?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$ProfitSharingBudgetDtoImpl extends _ProfitSharingBudgetDto {
  const _$ProfitSharingBudgetDtoImpl({
    @JsonKey(name: 'percentages') this.percentages,
    @JsonKey(name: 'cut_off_from') this.cutOffFrom,
    @JsonKey(name: 'cut_off_to') this.cutOffTo,
    @JsonKey(name: 'total') this.total,
    @JsonKey(name: 'weekly') final List<ProfitSharingPeriodDto>? weekly,
    @JsonKey(name: 'monthly') final List<ProfitSharingPeriodDto>? monthly,
  }) : _weekly = weekly,
       _monthly = monthly,
       super._();

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

  @override
  @JsonKey(name: 'percentages')
  final ProfitSharingPercentageDto? percentages;
  @override
  @JsonKey(name: 'cut_off_from')
  final DateTime? cutOffFrom;
  @override
  @JsonKey(name: 'cut_off_to')
  final DateTime? cutOffTo;
  @override
  @JsonKey(name: 'total')
  final ProfitSharingPeriodDto? total;
  final List<ProfitSharingPeriodDto>? _weekly;
  @override
  @JsonKey(name: 'weekly')
  List<ProfitSharingPeriodDto>? get weekly {
    final value = _weekly;
    if (value == null) return null;
    if (_weekly is EqualUnmodifiableListView) return _weekly;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

  final List<ProfitSharingPeriodDto>? _monthly;
  @override
  @JsonKey(name: 'monthly')
  List<ProfitSharingPeriodDto>? get monthly {
    final value = _monthly;
    if (value == null) return null;
    if (_monthly is EqualUnmodifiableListView) return _monthly;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

  @override
  String toString() {
    return 'ProfitSharingBudgetDto(percentages: $percentages, cutOffFrom: $cutOffFrom, cutOffTo: $cutOffTo, total: $total, weekly: $weekly, monthly: $monthly)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ProfitSharingBudgetDtoImpl &&
            (identical(other.percentages, percentages) ||
                other.percentages == percentages) &&
            (identical(other.cutOffFrom, cutOffFrom) ||
                other.cutOffFrom == cutOffFrom) &&
            (identical(other.cutOffTo, cutOffTo) ||
                other.cutOffTo == cutOffTo) &&
            (identical(other.total, total) || other.total == total) &&
            const DeepCollectionEquality().equals(other._weekly, _weekly) &&
            const DeepCollectionEquality().equals(other._monthly, _monthly));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    percentages,
    cutOffFrom,
    cutOffTo,
    total,
    const DeepCollectionEquality().hash(_weekly),
    const DeepCollectionEquality().hash(_monthly),
  );

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

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

abstract class _ProfitSharingBudgetDto extends ProfitSharingBudgetDto {
  const factory _ProfitSharingBudgetDto({
    @JsonKey(name: 'percentages') final ProfitSharingPercentageDto? percentages,
    @JsonKey(name: 'cut_off_from') final DateTime? cutOffFrom,
    @JsonKey(name: 'cut_off_to') final DateTime? cutOffTo,
    @JsonKey(name: 'total') final ProfitSharingPeriodDto? total,
    @JsonKey(name: 'weekly') final List<ProfitSharingPeriodDto>? weekly,
    @JsonKey(name: 'monthly') final List<ProfitSharingPeriodDto>? monthly,
  }) = _$ProfitSharingBudgetDtoImpl;
  const _ProfitSharingBudgetDto._() : super._();

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

  @override
  @JsonKey(name: 'percentages')
  ProfitSharingPercentageDto? get percentages;
  @override
  @JsonKey(name: 'cut_off_from')
  DateTime? get cutOffFrom;
  @override
  @JsonKey(name: 'cut_off_to')
  DateTime? get cutOffTo;
  @override
  @JsonKey(name: 'total')
  ProfitSharingPeriodDto? get total;
  @override
  @JsonKey(name: 'weekly')
  List<ProfitSharingPeriodDto>? get weekly;
  @override
  @JsonKey(name: 'monthly')
  List<ProfitSharingPeriodDto>? get monthly;

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

ProfitSharingPercentageDto _$ProfitSharingPercentageDtoFromJson(
  Map<String, dynamic> json,
) {
  return _ProfitSharingPercentageDto.fromJson(json);
}

/// @nodoc
mixin _$ProfitSharingPercentageDto {
  @JsonKey(name: 'purchase')
  num? get purchase => throw _privateConstructorUsedError;
  @JsonKey(name: 'owner')
  num? get owner => throw _privateConstructorUsedError;
  @JsonKey(name: 'team')
  num? get team => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $ProfitSharingPercentageDtoCopyWith<$Res> {
  factory $ProfitSharingPercentageDtoCopyWith(
    ProfitSharingPercentageDto value,
    $Res Function(ProfitSharingPercentageDto) then,
  ) =
      _$ProfitSharingPercentageDtoCopyWithImpl<
        $Res,
        ProfitSharingPercentageDto
      >;
  @useResult
  $Res call({
    @JsonKey(name: 'purchase') num? purchase,
    @JsonKey(name: 'owner') num? owner,
    @JsonKey(name: 'team') num? team,
  });
}

/// @nodoc
class _$ProfitSharingPercentageDtoCopyWithImpl<
  $Res,
  $Val extends ProfitSharingPercentageDto
>
    implements $ProfitSharingPercentageDtoCopyWith<$Res> {
  _$ProfitSharingPercentageDtoCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$ProfitSharingPercentageDtoImplCopyWith<$Res>
    implements $ProfitSharingPercentageDtoCopyWith<$Res> {
  factory _$$ProfitSharingPercentageDtoImplCopyWith(
    _$ProfitSharingPercentageDtoImpl value,
    $Res Function(_$ProfitSharingPercentageDtoImpl) then,
  ) = __$$ProfitSharingPercentageDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'purchase') num? purchase,
    @JsonKey(name: 'owner') num? owner,
    @JsonKey(name: 'team') num? team,
  });
}

/// @nodoc
class __$$ProfitSharingPercentageDtoImplCopyWithImpl<$Res>
    extends
        _$ProfitSharingPercentageDtoCopyWithImpl<
          $Res,
          _$ProfitSharingPercentageDtoImpl
        >
    implements _$$ProfitSharingPercentageDtoImplCopyWith<$Res> {
  __$$ProfitSharingPercentageDtoImplCopyWithImpl(
    _$ProfitSharingPercentageDtoImpl _value,
    $Res Function(_$ProfitSharingPercentageDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of ProfitSharingPercentageDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? purchase = freezed,
    Object? owner = freezed,
    Object? team = freezed,
  }) {
    return _then(
      _$ProfitSharingPercentageDtoImpl(
        purchase: freezed == purchase
            ? _value.purchase
            : purchase // ignore: cast_nullable_to_non_nullable
                  as num?,
        owner: freezed == owner
            ? _value.owner
            : owner // ignore: cast_nullable_to_non_nullable
                  as num?,
        team: freezed == team
            ? _value.team
            : team // ignore: cast_nullable_to_non_nullable
                  as num?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$ProfitSharingPercentageDtoImpl extends _ProfitSharingPercentageDto {
  const _$ProfitSharingPercentageDtoImpl({
    @JsonKey(name: 'purchase') this.purchase,
    @JsonKey(name: 'owner') this.owner,
    @JsonKey(name: 'team') this.team,
  }) : super._();

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

  @override
  @JsonKey(name: 'purchase')
  final num? purchase;
  @override
  @JsonKey(name: 'owner')
  final num? owner;
  @override
  @JsonKey(name: 'team')
  final num? team;

  @override
  String toString() {
    return 'ProfitSharingPercentageDto(purchase: $purchase, owner: $owner, team: $team)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ProfitSharingPercentageDtoImpl &&
            (identical(other.purchase, purchase) ||
                other.purchase == purchase) &&
            (identical(other.owner, owner) || other.owner == owner) &&
            (identical(other.team, team) || other.team == team));
  }

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

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

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

abstract class _ProfitSharingPercentageDto extends ProfitSharingPercentageDto {
  const factory _ProfitSharingPercentageDto({
    @JsonKey(name: 'purchase') final num? purchase,
    @JsonKey(name: 'owner') final num? owner,
    @JsonKey(name: 'team') final num? team,
  }) = _$ProfitSharingPercentageDtoImpl;
  const _ProfitSharingPercentageDto._() : super._();

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

  @override
  @JsonKey(name: 'purchase')
  num? get purchase;
  @override
  @JsonKey(name: 'owner')
  num? get owner;
  @override
  @JsonKey(name: 'team')
  num? get team;

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

ProfitSharingPeriodDto _$ProfitSharingPeriodDtoFromJson(
  Map<String, dynamic> json,
) {
  return _ProfitSharingPeriodDto.fromJson(json);
}

/// @nodoc
mixin _$ProfitSharingPeriodDto {
  @JsonKey(name: 'period_start')
  DateTime? get periodStart => throw _privateConstructorUsedError;
  @JsonKey(name: 'period_end')
  DateTime? get periodEnd => throw _privateConstructorUsedError;
  @JsonKey(name: 'revenue')
  num? get revenue => throw _privateConstructorUsedError;
  @JsonKey(name: 'order_count')
  num? get orderCount => throw _privateConstructorUsedError;
  @JsonKey(name: 'limit_purchase')
  num? get limitPurchase => throw _privateConstructorUsedError;
  @JsonKey(name: 'limit_owner')
  num? get limitOwner => throw _privateConstructorUsedError;
  @JsonKey(name: 'limit_team')
  num? get limitTeam => throw _privateConstructorUsedError;
  @JsonKey(name: 'month')
  String? get month => throw _privateConstructorUsedError;
  @JsonKey(name: 'week_count')
  num? get weekCount => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $ProfitSharingPeriodDtoCopyWith<$Res> {
  factory $ProfitSharingPeriodDtoCopyWith(
    ProfitSharingPeriodDto value,
    $Res Function(ProfitSharingPeriodDto) then,
  ) = _$ProfitSharingPeriodDtoCopyWithImpl<$Res, ProfitSharingPeriodDto>;
  @useResult
  $Res call({
    @JsonKey(name: 'period_start') DateTime? periodStart,
    @JsonKey(name: 'period_end') DateTime? periodEnd,
    @JsonKey(name: 'revenue') num? revenue,
    @JsonKey(name: 'order_count') num? orderCount,
    @JsonKey(name: 'limit_purchase') num? limitPurchase,
    @JsonKey(name: 'limit_owner') num? limitOwner,
    @JsonKey(name: 'limit_team') num? limitTeam,
    @JsonKey(name: 'month') String? month,
    @JsonKey(name: 'week_count') num? weekCount,
  });
}

/// @nodoc
class _$ProfitSharingPeriodDtoCopyWithImpl<
  $Res,
  $Val extends ProfitSharingPeriodDto
>
    implements $ProfitSharingPeriodDtoCopyWith<$Res> {
  _$ProfitSharingPeriodDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of ProfitSharingPeriodDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? periodStart = freezed,
    Object? periodEnd = freezed,
    Object? revenue = freezed,
    Object? orderCount = freezed,
    Object? limitPurchase = freezed,
    Object? limitOwner = freezed,
    Object? limitTeam = freezed,
    Object? month = freezed,
    Object? weekCount = freezed,
  }) {
    return _then(
      _value.copyWith(
            periodStart: freezed == periodStart
                ? _value.periodStart
                : periodStart // ignore: cast_nullable_to_non_nullable
                      as DateTime?,
            periodEnd: freezed == periodEnd
                ? _value.periodEnd
                : periodEnd // ignore: cast_nullable_to_non_nullable
                      as DateTime?,
            revenue: freezed == revenue
                ? _value.revenue
                : revenue // ignore: cast_nullable_to_non_nullable
                      as num?,
            orderCount: freezed == orderCount
                ? _value.orderCount
                : orderCount // ignore: cast_nullable_to_non_nullable
                      as num?,
            limitPurchase: freezed == limitPurchase
                ? _value.limitPurchase
                : limitPurchase // ignore: cast_nullable_to_non_nullable
                      as num?,
            limitOwner: freezed == limitOwner
                ? _value.limitOwner
                : limitOwner // ignore: cast_nullable_to_non_nullable
                      as num?,
            limitTeam: freezed == limitTeam
                ? _value.limitTeam
                : limitTeam // ignore: cast_nullable_to_non_nullable
                      as num?,
            month: freezed == month
                ? _value.month
                : month // ignore: cast_nullable_to_non_nullable
                      as String?,
            weekCount: freezed == weekCount
                ? _value.weekCount
                : weekCount // ignore: cast_nullable_to_non_nullable
                      as num?,
          )
          as $Val,
    );
  }
}

/// @nodoc
abstract class _$$ProfitSharingPeriodDtoImplCopyWith<$Res>
    implements $ProfitSharingPeriodDtoCopyWith<$Res> {
  factory _$$ProfitSharingPeriodDtoImplCopyWith(
    _$ProfitSharingPeriodDtoImpl value,
    $Res Function(_$ProfitSharingPeriodDtoImpl) then,
  ) = __$$ProfitSharingPeriodDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'period_start') DateTime? periodStart,
    @JsonKey(name: 'period_end') DateTime? periodEnd,
    @JsonKey(name: 'revenue') num? revenue,
    @JsonKey(name: 'order_count') num? orderCount,
    @JsonKey(name: 'limit_purchase') num? limitPurchase,
    @JsonKey(name: 'limit_owner') num? limitOwner,
    @JsonKey(name: 'limit_team') num? limitTeam,
    @JsonKey(name: 'month') String? month,
    @JsonKey(name: 'week_count') num? weekCount,
  });
}

/// @nodoc
class __$$ProfitSharingPeriodDtoImplCopyWithImpl<$Res>
    extends
        _$ProfitSharingPeriodDtoCopyWithImpl<$Res, _$ProfitSharingPeriodDtoImpl>
    implements _$$ProfitSharingPeriodDtoImplCopyWith<$Res> {
  __$$ProfitSharingPeriodDtoImplCopyWithImpl(
    _$ProfitSharingPeriodDtoImpl _value,
    $Res Function(_$ProfitSharingPeriodDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of ProfitSharingPeriodDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? periodStart = freezed,
    Object? periodEnd = freezed,
    Object? revenue = freezed,
    Object? orderCount = freezed,
    Object? limitPurchase = freezed,
    Object? limitOwner = freezed,
    Object? limitTeam = freezed,
    Object? month = freezed,
    Object? weekCount = freezed,
  }) {
    return _then(
      _$ProfitSharingPeriodDtoImpl(
        periodStart: freezed == periodStart
            ? _value.periodStart
            : periodStart // ignore: cast_nullable_to_non_nullable
                  as DateTime?,
        periodEnd: freezed == periodEnd
            ? _value.periodEnd
            : periodEnd // ignore: cast_nullable_to_non_nullable
                  as DateTime?,
        revenue: freezed == revenue
            ? _value.revenue
            : revenue // ignore: cast_nullable_to_non_nullable
                  as num?,
        orderCount: freezed == orderCount
            ? _value.orderCount
            : orderCount // ignore: cast_nullable_to_non_nullable
                  as num?,
        limitPurchase: freezed == limitPurchase
            ? _value.limitPurchase
            : limitPurchase // ignore: cast_nullable_to_non_nullable
                  as num?,
        limitOwner: freezed == limitOwner
            ? _value.limitOwner
            : limitOwner // ignore: cast_nullable_to_non_nullable
                  as num?,
        limitTeam: freezed == limitTeam
            ? _value.limitTeam
            : limitTeam // ignore: cast_nullable_to_non_nullable
                  as num?,
        month: freezed == month
            ? _value.month
            : month // ignore: cast_nullable_to_non_nullable
                  as String?,
        weekCount: freezed == weekCount
            ? _value.weekCount
            : weekCount // ignore: cast_nullable_to_non_nullable
                  as num?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$ProfitSharingPeriodDtoImpl extends _ProfitSharingPeriodDto {
  const _$ProfitSharingPeriodDtoImpl({
    @JsonKey(name: 'period_start') this.periodStart,
    @JsonKey(name: 'period_end') this.periodEnd,
    @JsonKey(name: 'revenue') this.revenue,
    @JsonKey(name: 'order_count') this.orderCount,
    @JsonKey(name: 'limit_purchase') this.limitPurchase,
    @JsonKey(name: 'limit_owner') this.limitOwner,
    @JsonKey(name: 'limit_team') this.limitTeam,
    @JsonKey(name: 'month') this.month,
    @JsonKey(name: 'week_count') this.weekCount,
  }) : super._();

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

  @override
  @JsonKey(name: 'period_start')
  final DateTime? periodStart;
  @override
  @JsonKey(name: 'period_end')
  final DateTime? periodEnd;
  @override
  @JsonKey(name: 'revenue')
  final num? revenue;
  @override
  @JsonKey(name: 'order_count')
  final num? orderCount;
  @override
  @JsonKey(name: 'limit_purchase')
  final num? limitPurchase;
  @override
  @JsonKey(name: 'limit_owner')
  final num? limitOwner;
  @override
  @JsonKey(name: 'limit_team')
  final num? limitTeam;
  @override
  @JsonKey(name: 'month')
  final String? month;
  @override
  @JsonKey(name: 'week_count')
  final num? weekCount;

  @override
  String toString() {
    return 'ProfitSharingPeriodDto(periodStart: $periodStart, periodEnd: $periodEnd, revenue: $revenue, orderCount: $orderCount, limitPurchase: $limitPurchase, limitOwner: $limitOwner, limitTeam: $limitTeam, month: $month, weekCount: $weekCount)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ProfitSharingPeriodDtoImpl &&
            (identical(other.periodStart, periodStart) ||
                other.periodStart == periodStart) &&
            (identical(other.periodEnd, periodEnd) ||
                other.periodEnd == periodEnd) &&
            (identical(other.revenue, revenue) || other.revenue == revenue) &&
            (identical(other.orderCount, orderCount) ||
                other.orderCount == orderCount) &&
            (identical(other.limitPurchase, limitPurchase) ||
                other.limitPurchase == limitPurchase) &&
            (identical(other.limitOwner, limitOwner) ||
                other.limitOwner == limitOwner) &&
            (identical(other.limitTeam, limitTeam) ||
                other.limitTeam == limitTeam) &&
            (identical(other.month, month) || other.month == month) &&
            (identical(other.weekCount, weekCount) ||
                other.weekCount == weekCount));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    periodStart,
    periodEnd,
    revenue,
    orderCount,
    limitPurchase,
    limitOwner,
    limitTeam,
    month,
    weekCount,
  );

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

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

abstract class _ProfitSharingPeriodDto extends ProfitSharingPeriodDto {
  const factory _ProfitSharingPeriodDto({
    @JsonKey(name: 'period_start') final DateTime? periodStart,
    @JsonKey(name: 'period_end') final DateTime? periodEnd,
    @JsonKey(name: 'revenue') final num? revenue,
    @JsonKey(name: 'order_count') final num? orderCount,
    @JsonKey(name: 'limit_purchase') final num? limitPurchase,
    @JsonKey(name: 'limit_owner') final num? limitOwner,
    @JsonKey(name: 'limit_team') final num? limitTeam,
    @JsonKey(name: 'month') final String? month,
    @JsonKey(name: 'week_count') final num? weekCount,
  }) = _$ProfitSharingPeriodDtoImpl;
  const _ProfitSharingPeriodDto._() : super._();

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

  @override
  @JsonKey(name: 'period_start')
  DateTime? get periodStart;
  @override
  @JsonKey(name: 'period_end')
  DateTime? get periodEnd;
  @override
  @JsonKey(name: 'revenue')
  num? get revenue;
  @override
  @JsonKey(name: 'order_count')
  num? get orderCount;
  @override
  @JsonKey(name: 'limit_purchase')
  num? get limitPurchase;
  @override
  @JsonKey(name: 'limit_owner')
  num? get limitOwner;
  @override
  @JsonKey(name: 'limit_team')
  num? get limitTeam;
  @override
  @JsonKey(name: 'month')
  String? get month;
  @override
  @JsonKey(name: 'week_count')
  num? get weekCount;

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

ProfitSharingDetailDto _$ProfitSharingDetailDtoFromJson(
  Map<String, dynamic> json,
) {
  return _ProfitSharingDetailDto.fromJson(json);
}

/// @nodoc
mixin _$ProfitSharingDetailDto {
  @JsonKey(name: 'organization_id')
  String? get organizationId => throw _privateConstructorUsedError;
  @JsonKey(name: 'outlet_id')
  String? get outletId => throw _privateConstructorUsedError;
  @JsonKey(name: 'outlet_name')
  String? get outletName => throw _privateConstructorUsedError;
  @JsonKey(name: 'date_from')
  DateTime? get dateFrom => throw _privateConstructorUsedError;
  @JsonKey(name: 'date_to')
  DateTime? get dateTo => throw _privateConstructorUsedError;
  @JsonKey(name: 'parent_category_id')
  String? get parentCategoryId => throw _privateConstructorUsedError;
  @JsonKey(name: 'parent_category_name')
  String? get parentCategoryName => throw _privateConstructorUsedError;
  @JsonKey(name: 'summary')
  ProfitSharingSummaryDto? get summary => throw _privateConstructorUsedError;
  @JsonKey(name: 'categories')
  List<ProfitSharingSubCategoryDto>? get categories =>
      throw _privateConstructorUsedError;
  @JsonKey(name: 'budget')
  ProfitSharingBudgetDto? get budget => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $ProfitSharingDetailDtoCopyWith<$Res> {
  factory $ProfitSharingDetailDtoCopyWith(
    ProfitSharingDetailDto value,
    $Res Function(ProfitSharingDetailDto) then,
  ) = _$ProfitSharingDetailDtoCopyWithImpl<$Res, ProfitSharingDetailDto>;
  @useResult
  $Res call({
    @JsonKey(name: 'organization_id') String? organizationId,
    @JsonKey(name: 'outlet_id') String? outletId,
    @JsonKey(name: 'outlet_name') String? outletName,
    @JsonKey(name: 'date_from') DateTime? dateFrom,
    @JsonKey(name: 'date_to') DateTime? dateTo,
    @JsonKey(name: 'parent_category_id') String? parentCategoryId,
    @JsonKey(name: 'parent_category_name') String? parentCategoryName,
    @JsonKey(name: 'summary') ProfitSharingSummaryDto? summary,
    @JsonKey(name: 'categories') List<ProfitSharingSubCategoryDto>? categories,
    @JsonKey(name: 'budget') ProfitSharingBudgetDto? budget,
  });

  $ProfitSharingSummaryDtoCopyWith<$Res>? get summary;
  $ProfitSharingBudgetDtoCopyWith<$Res>? get budget;
}

/// @nodoc
class _$ProfitSharingDetailDtoCopyWithImpl<
  $Res,
  $Val extends ProfitSharingDetailDto
>
    implements $ProfitSharingDetailDtoCopyWith<$Res> {
  _$ProfitSharingDetailDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of ProfitSharingDetailDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? organizationId = freezed,
    Object? outletId = freezed,
    Object? outletName = freezed,
    Object? dateFrom = freezed,
    Object? dateTo = freezed,
    Object? parentCategoryId = freezed,
    Object? parentCategoryName = freezed,
    Object? summary = freezed,
    Object? categories = freezed,
    Object? budget = freezed,
  }) {
    return _then(
      _value.copyWith(
            organizationId: freezed == organizationId
                ? _value.organizationId
                : organizationId // ignore: cast_nullable_to_non_nullable
                      as String?,
            outletId: freezed == outletId
                ? _value.outletId
                : outletId // ignore: cast_nullable_to_non_nullable
                      as String?,
            outletName: freezed == outletName
                ? _value.outletName
                : outletName // ignore: cast_nullable_to_non_nullable
                      as String?,
            dateFrom: freezed == dateFrom
                ? _value.dateFrom
                : dateFrom // ignore: cast_nullable_to_non_nullable
                      as DateTime?,
            dateTo: freezed == dateTo
                ? _value.dateTo
                : dateTo // ignore: cast_nullable_to_non_nullable
                      as DateTime?,
            parentCategoryId: freezed == parentCategoryId
                ? _value.parentCategoryId
                : parentCategoryId // ignore: cast_nullable_to_non_nullable
                      as String?,
            parentCategoryName: freezed == parentCategoryName
                ? _value.parentCategoryName
                : parentCategoryName // ignore: cast_nullable_to_non_nullable
                      as String?,
            summary: freezed == summary
                ? _value.summary
                : summary // ignore: cast_nullable_to_non_nullable
                      as ProfitSharingSummaryDto?,
            categories: freezed == categories
                ? _value.categories
                : categories // ignore: cast_nullable_to_non_nullable
                      as List<ProfitSharingSubCategoryDto>?,
            budget: freezed == budget
                ? _value.budget
                : budget // ignore: cast_nullable_to_non_nullable
                      as ProfitSharingBudgetDto?,
          )
          as $Val,
    );
  }

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

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

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

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

/// @nodoc
abstract class _$$ProfitSharingDetailDtoImplCopyWith<$Res>
    implements $ProfitSharingDetailDtoCopyWith<$Res> {
  factory _$$ProfitSharingDetailDtoImplCopyWith(
    _$ProfitSharingDetailDtoImpl value,
    $Res Function(_$ProfitSharingDetailDtoImpl) then,
  ) = __$$ProfitSharingDetailDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'organization_id') String? organizationId,
    @JsonKey(name: 'outlet_id') String? outletId,
    @JsonKey(name: 'outlet_name') String? outletName,
    @JsonKey(name: 'date_from') DateTime? dateFrom,
    @JsonKey(name: 'date_to') DateTime? dateTo,
    @JsonKey(name: 'parent_category_id') String? parentCategoryId,
    @JsonKey(name: 'parent_category_name') String? parentCategoryName,
    @JsonKey(name: 'summary') ProfitSharingSummaryDto? summary,
    @JsonKey(name: 'categories') List<ProfitSharingSubCategoryDto>? categories,
    @JsonKey(name: 'budget') ProfitSharingBudgetDto? budget,
  });

  @override
  $ProfitSharingSummaryDtoCopyWith<$Res>? get summary;
  @override
  $ProfitSharingBudgetDtoCopyWith<$Res>? get budget;
}

/// @nodoc
class __$$ProfitSharingDetailDtoImplCopyWithImpl<$Res>
    extends
        _$ProfitSharingDetailDtoCopyWithImpl<$Res, _$ProfitSharingDetailDtoImpl>
    implements _$$ProfitSharingDetailDtoImplCopyWith<$Res> {
  __$$ProfitSharingDetailDtoImplCopyWithImpl(
    _$ProfitSharingDetailDtoImpl _value,
    $Res Function(_$ProfitSharingDetailDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of ProfitSharingDetailDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? organizationId = freezed,
    Object? outletId = freezed,
    Object? outletName = freezed,
    Object? dateFrom = freezed,
    Object? dateTo = freezed,
    Object? parentCategoryId = freezed,
    Object? parentCategoryName = freezed,
    Object? summary = freezed,
    Object? categories = freezed,
    Object? budget = freezed,
  }) {
    return _then(
      _$ProfitSharingDetailDtoImpl(
        organizationId: freezed == organizationId
            ? _value.organizationId
            : organizationId // ignore: cast_nullable_to_non_nullable
                  as String?,
        outletId: freezed == outletId
            ? _value.outletId
            : outletId // ignore: cast_nullable_to_non_nullable
                  as String?,
        outletName: freezed == outletName
            ? _value.outletName
            : outletName // ignore: cast_nullable_to_non_nullable
                  as String?,
        dateFrom: freezed == dateFrom
            ? _value.dateFrom
            : dateFrom // ignore: cast_nullable_to_non_nullable
                  as DateTime?,
        dateTo: freezed == dateTo
            ? _value.dateTo
            : dateTo // ignore: cast_nullable_to_non_nullable
                  as DateTime?,
        parentCategoryId: freezed == parentCategoryId
            ? _value.parentCategoryId
            : parentCategoryId // ignore: cast_nullable_to_non_nullable
                  as String?,
        parentCategoryName: freezed == parentCategoryName
            ? _value.parentCategoryName
            : parentCategoryName // ignore: cast_nullable_to_non_nullable
                  as String?,
        summary: freezed == summary
            ? _value.summary
            : summary // ignore: cast_nullable_to_non_nullable
                  as ProfitSharingSummaryDto?,
        categories: freezed == categories
            ? _value._categories
            : categories // ignore: cast_nullable_to_non_nullable
                  as List<ProfitSharingSubCategoryDto>?,
        budget: freezed == budget
            ? _value.budget
            : budget // ignore: cast_nullable_to_non_nullable
                  as ProfitSharingBudgetDto?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$ProfitSharingDetailDtoImpl extends _ProfitSharingDetailDto {
  const _$ProfitSharingDetailDtoImpl({
    @JsonKey(name: 'organization_id') this.organizationId,
    @JsonKey(name: 'outlet_id') this.outletId,
    @JsonKey(name: 'outlet_name') this.outletName,
    @JsonKey(name: 'date_from') this.dateFrom,
    @JsonKey(name: 'date_to') this.dateTo,
    @JsonKey(name: 'parent_category_id') this.parentCategoryId,
    @JsonKey(name: 'parent_category_name') this.parentCategoryName,
    @JsonKey(name: 'summary') this.summary,
    @JsonKey(name: 'categories')
    final List<ProfitSharingSubCategoryDto>? categories,
    @JsonKey(name: 'budget') this.budget,
  }) : _categories = categories,
       super._();

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

  @override
  @JsonKey(name: 'organization_id')
  final String? organizationId;
  @override
  @JsonKey(name: 'outlet_id')
  final String? outletId;
  @override
  @JsonKey(name: 'outlet_name')
  final String? outletName;
  @override
  @JsonKey(name: 'date_from')
  final DateTime? dateFrom;
  @override
  @JsonKey(name: 'date_to')
  final DateTime? dateTo;
  @override
  @JsonKey(name: 'parent_category_id')
  final String? parentCategoryId;
  @override
  @JsonKey(name: 'parent_category_name')
  final String? parentCategoryName;
  @override
  @JsonKey(name: 'summary')
  final ProfitSharingSummaryDto? summary;
  final List<ProfitSharingSubCategoryDto>? _categories;
  @override
  @JsonKey(name: 'categories')
  List<ProfitSharingSubCategoryDto>? get categories {
    final value = _categories;
    if (value == null) return null;
    if (_categories is EqualUnmodifiableListView) return _categories;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

  @override
  @JsonKey(name: 'budget')
  final ProfitSharingBudgetDto? budget;

  @override
  String toString() {
    return 'ProfitSharingDetailDto(organizationId: $organizationId, outletId: $outletId, outletName: $outletName, dateFrom: $dateFrom, dateTo: $dateTo, parentCategoryId: $parentCategoryId, parentCategoryName: $parentCategoryName, summary: $summary, categories: $categories, budget: $budget)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ProfitSharingDetailDtoImpl &&
            (identical(other.organizationId, organizationId) ||
                other.organizationId == organizationId) &&
            (identical(other.outletId, outletId) ||
                other.outletId == outletId) &&
            (identical(other.outletName, outletName) ||
                other.outletName == outletName) &&
            (identical(other.dateFrom, dateFrom) ||
                other.dateFrom == dateFrom) &&
            (identical(other.dateTo, dateTo) || other.dateTo == dateTo) &&
            (identical(other.parentCategoryId, parentCategoryId) ||
                other.parentCategoryId == parentCategoryId) &&
            (identical(other.parentCategoryName, parentCategoryName) ||
                other.parentCategoryName == parentCategoryName) &&
            (identical(other.summary, summary) || other.summary == summary) &&
            const DeepCollectionEquality().equals(
              other._categories,
              _categories,
            ) &&
            (identical(other.budget, budget) || other.budget == budget));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    organizationId,
    outletId,
    outletName,
    dateFrom,
    dateTo,
    parentCategoryId,
    parentCategoryName,
    summary,
    const DeepCollectionEquality().hash(_categories),
    budget,
  );

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

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

abstract class _ProfitSharingDetailDto extends ProfitSharingDetailDto {
  const factory _ProfitSharingDetailDto({
    @JsonKey(name: 'organization_id') final String? organizationId,
    @JsonKey(name: 'outlet_id') final String? outletId,
    @JsonKey(name: 'outlet_name') final String? outletName,
    @JsonKey(name: 'date_from') final DateTime? dateFrom,
    @JsonKey(name: 'date_to') final DateTime? dateTo,
    @JsonKey(name: 'parent_category_id') final String? parentCategoryId,
    @JsonKey(name: 'parent_category_name') final String? parentCategoryName,
    @JsonKey(name: 'summary') final ProfitSharingSummaryDto? summary,
    @JsonKey(name: 'categories')
    final List<ProfitSharingSubCategoryDto>? categories,
    @JsonKey(name: 'budget') final ProfitSharingBudgetDto? budget,
  }) = _$ProfitSharingDetailDtoImpl;
  const _ProfitSharingDetailDto._() : super._();

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

  @override
  @JsonKey(name: 'organization_id')
  String? get organizationId;
  @override
  @JsonKey(name: 'outlet_id')
  String? get outletId;
  @override
  @JsonKey(name: 'outlet_name')
  String? get outletName;
  @override
  @JsonKey(name: 'date_from')
  DateTime? get dateFrom;
  @override
  @JsonKey(name: 'date_to')
  DateTime? get dateTo;
  @override
  @JsonKey(name: 'parent_category_id')
  String? get parentCategoryId;
  @override
  @JsonKey(name: 'parent_category_name')
  String? get parentCategoryName;
  @override
  @JsonKey(name: 'summary')
  ProfitSharingSummaryDto? get summary;
  @override
  @JsonKey(name: 'categories')
  List<ProfitSharingSubCategoryDto>? get categories;
  @override
  @JsonKey(name: 'budget')
  ProfitSharingBudgetDto? get budget;

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

ProfitSharingSummaryDto _$ProfitSharingSummaryDtoFromJson(
  Map<String, dynamic> json,
) {
  return _ProfitSharingSummaryDto.fromJson(json);
}

/// @nodoc
mixin _$ProfitSharingSummaryDto {
  @JsonKey(name: 'total_revenue')
  num? get totalRevenue => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_quantity')
  num? get totalQuantity => throw _privateConstructorUsedError;
  @JsonKey(name: 'category_count')
  num? get categoryCount => throw _privateConstructorUsedError;
  @JsonKey(name: 'product_count')
  num? get productCount => throw _privateConstructorUsedError;
  @JsonKey(name: 'order_count')
  num? get orderCount => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_standard_hpp')
  num? get totalStandardHpp => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_fifo_hpp')
  num? get totalFifoHpp => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_moving_average_hpp')
  num? get totalMovingAverageHpp => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $ProfitSharingSummaryDtoCopyWith<$Res> {
  factory $ProfitSharingSummaryDtoCopyWith(
    ProfitSharingSummaryDto value,
    $Res Function(ProfitSharingSummaryDto) then,
  ) = _$ProfitSharingSummaryDtoCopyWithImpl<$Res, ProfitSharingSummaryDto>;
  @useResult
  $Res call({
    @JsonKey(name: 'total_revenue') num? totalRevenue,
    @JsonKey(name: 'total_quantity') num? totalQuantity,
    @JsonKey(name: 'category_count') num? categoryCount,
    @JsonKey(name: 'product_count') num? productCount,
    @JsonKey(name: 'order_count') num? orderCount,
    @JsonKey(name: 'total_standard_hpp') num? totalStandardHpp,
    @JsonKey(name: 'total_fifo_hpp') num? totalFifoHpp,
    @JsonKey(name: 'total_moving_average_hpp') num? totalMovingAverageHpp,
  });
}

/// @nodoc
class _$ProfitSharingSummaryDtoCopyWithImpl<
  $Res,
  $Val extends ProfitSharingSummaryDto
>
    implements $ProfitSharingSummaryDtoCopyWith<$Res> {
  _$ProfitSharingSummaryDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of ProfitSharingSummaryDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? totalRevenue = freezed,
    Object? totalQuantity = freezed,
    Object? categoryCount = freezed,
    Object? productCount = freezed,
    Object? orderCount = freezed,
    Object? totalStandardHpp = freezed,
    Object? totalFifoHpp = freezed,
    Object? totalMovingAverageHpp = freezed,
  }) {
    return _then(
      _value.copyWith(
            totalRevenue: freezed == totalRevenue
                ? _value.totalRevenue
                : totalRevenue // ignore: cast_nullable_to_non_nullable
                      as num?,
            totalQuantity: freezed == totalQuantity
                ? _value.totalQuantity
                : totalQuantity // ignore: cast_nullable_to_non_nullable
                      as num?,
            categoryCount: freezed == categoryCount
                ? _value.categoryCount
                : categoryCount // ignore: cast_nullable_to_non_nullable
                      as num?,
            productCount: freezed == productCount
                ? _value.productCount
                : productCount // ignore: cast_nullable_to_non_nullable
                      as num?,
            orderCount: freezed == orderCount
                ? _value.orderCount
                : orderCount // ignore: cast_nullable_to_non_nullable
                      as num?,
            totalStandardHpp: freezed == totalStandardHpp
                ? _value.totalStandardHpp
                : totalStandardHpp // ignore: cast_nullable_to_non_nullable
                      as num?,
            totalFifoHpp: freezed == totalFifoHpp
                ? _value.totalFifoHpp
                : totalFifoHpp // ignore: cast_nullable_to_non_nullable
                      as num?,
            totalMovingAverageHpp: freezed == totalMovingAverageHpp
                ? _value.totalMovingAverageHpp
                : totalMovingAverageHpp // ignore: cast_nullable_to_non_nullable
                      as num?,
          )
          as $Val,
    );
  }
}

/// @nodoc
abstract class _$$ProfitSharingSummaryDtoImplCopyWith<$Res>
    implements $ProfitSharingSummaryDtoCopyWith<$Res> {
  factory _$$ProfitSharingSummaryDtoImplCopyWith(
    _$ProfitSharingSummaryDtoImpl value,
    $Res Function(_$ProfitSharingSummaryDtoImpl) then,
  ) = __$$ProfitSharingSummaryDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'total_revenue') num? totalRevenue,
    @JsonKey(name: 'total_quantity') num? totalQuantity,
    @JsonKey(name: 'category_count') num? categoryCount,
    @JsonKey(name: 'product_count') num? productCount,
    @JsonKey(name: 'order_count') num? orderCount,
    @JsonKey(name: 'total_standard_hpp') num? totalStandardHpp,
    @JsonKey(name: 'total_fifo_hpp') num? totalFifoHpp,
    @JsonKey(name: 'total_moving_average_hpp') num? totalMovingAverageHpp,
  });
}

/// @nodoc
class __$$ProfitSharingSummaryDtoImplCopyWithImpl<$Res>
    extends
        _$ProfitSharingSummaryDtoCopyWithImpl<
          $Res,
          _$ProfitSharingSummaryDtoImpl
        >
    implements _$$ProfitSharingSummaryDtoImplCopyWith<$Res> {
  __$$ProfitSharingSummaryDtoImplCopyWithImpl(
    _$ProfitSharingSummaryDtoImpl _value,
    $Res Function(_$ProfitSharingSummaryDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of ProfitSharingSummaryDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? totalRevenue = freezed,
    Object? totalQuantity = freezed,
    Object? categoryCount = freezed,
    Object? productCount = freezed,
    Object? orderCount = freezed,
    Object? totalStandardHpp = freezed,
    Object? totalFifoHpp = freezed,
    Object? totalMovingAverageHpp = freezed,
  }) {
    return _then(
      _$ProfitSharingSummaryDtoImpl(
        totalRevenue: freezed == totalRevenue
            ? _value.totalRevenue
            : totalRevenue // ignore: cast_nullable_to_non_nullable
                  as num?,
        totalQuantity: freezed == totalQuantity
            ? _value.totalQuantity
            : totalQuantity // ignore: cast_nullable_to_non_nullable
                  as num?,
        categoryCount: freezed == categoryCount
            ? _value.categoryCount
            : categoryCount // ignore: cast_nullable_to_non_nullable
                  as num?,
        productCount: freezed == productCount
            ? _value.productCount
            : productCount // ignore: cast_nullable_to_non_nullable
                  as num?,
        orderCount: freezed == orderCount
            ? _value.orderCount
            : orderCount // ignore: cast_nullable_to_non_nullable
                  as num?,
        totalStandardHpp: freezed == totalStandardHpp
            ? _value.totalStandardHpp
            : totalStandardHpp // ignore: cast_nullable_to_non_nullable
                  as num?,
        totalFifoHpp: freezed == totalFifoHpp
            ? _value.totalFifoHpp
            : totalFifoHpp // ignore: cast_nullable_to_non_nullable
                  as num?,
        totalMovingAverageHpp: freezed == totalMovingAverageHpp
            ? _value.totalMovingAverageHpp
            : totalMovingAverageHpp // ignore: cast_nullable_to_non_nullable
                  as num?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$ProfitSharingSummaryDtoImpl extends _ProfitSharingSummaryDto {
  const _$ProfitSharingSummaryDtoImpl({
    @JsonKey(name: 'total_revenue') this.totalRevenue,
    @JsonKey(name: 'total_quantity') this.totalQuantity,
    @JsonKey(name: 'category_count') this.categoryCount,
    @JsonKey(name: 'product_count') this.productCount,
    @JsonKey(name: 'order_count') this.orderCount,
    @JsonKey(name: 'total_standard_hpp') this.totalStandardHpp,
    @JsonKey(name: 'total_fifo_hpp') this.totalFifoHpp,
    @JsonKey(name: 'total_moving_average_hpp') this.totalMovingAverageHpp,
  }) : super._();

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

  @override
  @JsonKey(name: 'total_revenue')
  final num? totalRevenue;
  @override
  @JsonKey(name: 'total_quantity')
  final num? totalQuantity;
  @override
  @JsonKey(name: 'category_count')
  final num? categoryCount;
  @override
  @JsonKey(name: 'product_count')
  final num? productCount;
  @override
  @JsonKey(name: 'order_count')
  final num? orderCount;
  @override
  @JsonKey(name: 'total_standard_hpp')
  final num? totalStandardHpp;
  @override
  @JsonKey(name: 'total_fifo_hpp')
  final num? totalFifoHpp;
  @override
  @JsonKey(name: 'total_moving_average_hpp')
  final num? totalMovingAverageHpp;

  @override
  String toString() {
    return 'ProfitSharingSummaryDto(totalRevenue: $totalRevenue, totalQuantity: $totalQuantity, categoryCount: $categoryCount, productCount: $productCount, orderCount: $orderCount, totalStandardHpp: $totalStandardHpp, totalFifoHpp: $totalFifoHpp, totalMovingAverageHpp: $totalMovingAverageHpp)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ProfitSharingSummaryDtoImpl &&
            (identical(other.totalRevenue, totalRevenue) ||
                other.totalRevenue == totalRevenue) &&
            (identical(other.totalQuantity, totalQuantity) ||
                other.totalQuantity == totalQuantity) &&
            (identical(other.categoryCount, categoryCount) ||
                other.categoryCount == categoryCount) &&
            (identical(other.productCount, productCount) ||
                other.productCount == productCount) &&
            (identical(other.orderCount, orderCount) ||
                other.orderCount == orderCount) &&
            (identical(other.totalStandardHpp, totalStandardHpp) ||
                other.totalStandardHpp == totalStandardHpp) &&
            (identical(other.totalFifoHpp, totalFifoHpp) ||
                other.totalFifoHpp == totalFifoHpp) &&
            (identical(other.totalMovingAverageHpp, totalMovingAverageHpp) ||
                other.totalMovingAverageHpp == totalMovingAverageHpp));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    totalRevenue,
    totalQuantity,
    categoryCount,
    productCount,
    orderCount,
    totalStandardHpp,
    totalFifoHpp,
    totalMovingAverageHpp,
  );

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

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

abstract class _ProfitSharingSummaryDto extends ProfitSharingSummaryDto {
  const factory _ProfitSharingSummaryDto({
    @JsonKey(name: 'total_revenue') final num? totalRevenue,
    @JsonKey(name: 'total_quantity') final num? totalQuantity,
    @JsonKey(name: 'category_count') final num? categoryCount,
    @JsonKey(name: 'product_count') final num? productCount,
    @JsonKey(name: 'order_count') final num? orderCount,
    @JsonKey(name: 'total_standard_hpp') final num? totalStandardHpp,
    @JsonKey(name: 'total_fifo_hpp') final num? totalFifoHpp,
    @JsonKey(name: 'total_moving_average_hpp') final num? totalMovingAverageHpp,
  }) = _$ProfitSharingSummaryDtoImpl;
  const _ProfitSharingSummaryDto._() : super._();

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

  @override
  @JsonKey(name: 'total_revenue')
  num? get totalRevenue;
  @override
  @JsonKey(name: 'total_quantity')
  num? get totalQuantity;
  @override
  @JsonKey(name: 'category_count')
  num? get categoryCount;
  @override
  @JsonKey(name: 'product_count')
  num? get productCount;
  @override
  @JsonKey(name: 'order_count')
  num? get orderCount;
  @override
  @JsonKey(name: 'total_standard_hpp')
  num? get totalStandardHpp;
  @override
  @JsonKey(name: 'total_fifo_hpp')
  num? get totalFifoHpp;
  @override
  @JsonKey(name: 'total_moving_average_hpp')
  num? get totalMovingAverageHpp;

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

ProfitSharingSubCategoryDto _$ProfitSharingSubCategoryDtoFromJson(
  Map<String, dynamic> json,
) {
  return _ProfitSharingSubCategoryDto.fromJson(json);
}

/// @nodoc
mixin _$ProfitSharingSubCategoryDto {
  @JsonKey(name: 'category_id')
  String? get categoryId => throw _privateConstructorUsedError;
  @JsonKey(name: 'category_name')
  String? get categoryName => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_revenue')
  num? get totalRevenue => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_quantity')
  num? get totalQuantity => throw _privateConstructorUsedError;
  @JsonKey(name: 'product_count')
  num? get productCount => throw _privateConstructorUsedError;
  @JsonKey(name: 'order_count')
  num? get orderCount => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_standard_hpp')
  num? get totalStandardHpp => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_fifo_hpp')
  num? get totalFifoHpp => throw _privateConstructorUsedError;
  @JsonKey(name: 'total_moving_average_hpp')
  num? get totalMovingAverageHpp => throw _privateConstructorUsedError;
  @JsonKey(name: 'products')
  List<ProfitSharingProductDto>? get products =>
      throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $ProfitSharingSubCategoryDtoCopyWith<$Res> {
  factory $ProfitSharingSubCategoryDtoCopyWith(
    ProfitSharingSubCategoryDto value,
    $Res Function(ProfitSharingSubCategoryDto) then,
  ) =
      _$ProfitSharingSubCategoryDtoCopyWithImpl<
        $Res,
        ProfitSharingSubCategoryDto
      >;
  @useResult
  $Res call({
    @JsonKey(name: 'category_id') String? categoryId,
    @JsonKey(name: 'category_name') String? categoryName,
    @JsonKey(name: 'total_revenue') num? totalRevenue,
    @JsonKey(name: 'total_quantity') num? totalQuantity,
    @JsonKey(name: 'product_count') num? productCount,
    @JsonKey(name: 'order_count') num? orderCount,
    @JsonKey(name: 'total_standard_hpp') num? totalStandardHpp,
    @JsonKey(name: 'total_fifo_hpp') num? totalFifoHpp,
    @JsonKey(name: 'total_moving_average_hpp') num? totalMovingAverageHpp,
    @JsonKey(name: 'products') List<ProfitSharingProductDto>? products,
  });
}

/// @nodoc
class _$ProfitSharingSubCategoryDtoCopyWithImpl<
  $Res,
  $Val extends ProfitSharingSubCategoryDto
>
    implements $ProfitSharingSubCategoryDtoCopyWith<$Res> {
  _$ProfitSharingSubCategoryDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of ProfitSharingSubCategoryDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? categoryId = freezed,
    Object? categoryName = freezed,
    Object? totalRevenue = freezed,
    Object? totalQuantity = freezed,
    Object? productCount = freezed,
    Object? orderCount = freezed,
    Object? totalStandardHpp = freezed,
    Object? totalFifoHpp = freezed,
    Object? totalMovingAverageHpp = freezed,
    Object? products = freezed,
  }) {
    return _then(
      _value.copyWith(
            categoryId: freezed == categoryId
                ? _value.categoryId
                : categoryId // ignore: cast_nullable_to_non_nullable
                      as String?,
            categoryName: freezed == categoryName
                ? _value.categoryName
                : categoryName // ignore: cast_nullable_to_non_nullable
                      as String?,
            totalRevenue: freezed == totalRevenue
                ? _value.totalRevenue
                : totalRevenue // ignore: cast_nullable_to_non_nullable
                      as num?,
            totalQuantity: freezed == totalQuantity
                ? _value.totalQuantity
                : totalQuantity // ignore: cast_nullable_to_non_nullable
                      as num?,
            productCount: freezed == productCount
                ? _value.productCount
                : productCount // ignore: cast_nullable_to_non_nullable
                      as num?,
            orderCount: freezed == orderCount
                ? _value.orderCount
                : orderCount // ignore: cast_nullable_to_non_nullable
                      as num?,
            totalStandardHpp: freezed == totalStandardHpp
                ? _value.totalStandardHpp
                : totalStandardHpp // ignore: cast_nullable_to_non_nullable
                      as num?,
            totalFifoHpp: freezed == totalFifoHpp
                ? _value.totalFifoHpp
                : totalFifoHpp // ignore: cast_nullable_to_non_nullable
                      as num?,
            totalMovingAverageHpp: freezed == totalMovingAverageHpp
                ? _value.totalMovingAverageHpp
                : totalMovingAverageHpp // ignore: cast_nullable_to_non_nullable
                      as num?,
            products: freezed == products
                ? _value.products
                : products // ignore: cast_nullable_to_non_nullable
                      as List<ProfitSharingProductDto>?,
          )
          as $Val,
    );
  }
}

/// @nodoc
abstract class _$$ProfitSharingSubCategoryDtoImplCopyWith<$Res>
    implements $ProfitSharingSubCategoryDtoCopyWith<$Res> {
  factory _$$ProfitSharingSubCategoryDtoImplCopyWith(
    _$ProfitSharingSubCategoryDtoImpl value,
    $Res Function(_$ProfitSharingSubCategoryDtoImpl) then,
  ) = __$$ProfitSharingSubCategoryDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'category_id') String? categoryId,
    @JsonKey(name: 'category_name') String? categoryName,
    @JsonKey(name: 'total_revenue') num? totalRevenue,
    @JsonKey(name: 'total_quantity') num? totalQuantity,
    @JsonKey(name: 'product_count') num? productCount,
    @JsonKey(name: 'order_count') num? orderCount,
    @JsonKey(name: 'total_standard_hpp') num? totalStandardHpp,
    @JsonKey(name: 'total_fifo_hpp') num? totalFifoHpp,
    @JsonKey(name: 'total_moving_average_hpp') num? totalMovingAverageHpp,
    @JsonKey(name: 'products') List<ProfitSharingProductDto>? products,
  });
}

/// @nodoc
class __$$ProfitSharingSubCategoryDtoImplCopyWithImpl<$Res>
    extends
        _$ProfitSharingSubCategoryDtoCopyWithImpl<
          $Res,
          _$ProfitSharingSubCategoryDtoImpl
        >
    implements _$$ProfitSharingSubCategoryDtoImplCopyWith<$Res> {
  __$$ProfitSharingSubCategoryDtoImplCopyWithImpl(
    _$ProfitSharingSubCategoryDtoImpl _value,
    $Res Function(_$ProfitSharingSubCategoryDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of ProfitSharingSubCategoryDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? categoryId = freezed,
    Object? categoryName = freezed,
    Object? totalRevenue = freezed,
    Object? totalQuantity = freezed,
    Object? productCount = freezed,
    Object? orderCount = freezed,
    Object? totalStandardHpp = freezed,
    Object? totalFifoHpp = freezed,
    Object? totalMovingAverageHpp = freezed,
    Object? products = freezed,
  }) {
    return _then(
      _$ProfitSharingSubCategoryDtoImpl(
        categoryId: freezed == categoryId
            ? _value.categoryId
            : categoryId // ignore: cast_nullable_to_non_nullable
                  as String?,
        categoryName: freezed == categoryName
            ? _value.categoryName
            : categoryName // ignore: cast_nullable_to_non_nullable
                  as String?,
        totalRevenue: freezed == totalRevenue
            ? _value.totalRevenue
            : totalRevenue // ignore: cast_nullable_to_non_nullable
                  as num?,
        totalQuantity: freezed == totalQuantity
            ? _value.totalQuantity
            : totalQuantity // ignore: cast_nullable_to_non_nullable
                  as num?,
        productCount: freezed == productCount
            ? _value.productCount
            : productCount // ignore: cast_nullable_to_non_nullable
                  as num?,
        orderCount: freezed == orderCount
            ? _value.orderCount
            : orderCount // ignore: cast_nullable_to_non_nullable
                  as num?,
        totalStandardHpp: freezed == totalStandardHpp
            ? _value.totalStandardHpp
            : totalStandardHpp // ignore: cast_nullable_to_non_nullable
                  as num?,
        totalFifoHpp: freezed == totalFifoHpp
            ? _value.totalFifoHpp
            : totalFifoHpp // ignore: cast_nullable_to_non_nullable
                  as num?,
        totalMovingAverageHpp: freezed == totalMovingAverageHpp
            ? _value.totalMovingAverageHpp
            : totalMovingAverageHpp // ignore: cast_nullable_to_non_nullable
                  as num?,
        products: freezed == products
            ? _value._products
            : products // ignore: cast_nullable_to_non_nullable
                  as List<ProfitSharingProductDto>?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$ProfitSharingSubCategoryDtoImpl extends _ProfitSharingSubCategoryDto {
  const _$ProfitSharingSubCategoryDtoImpl({
    @JsonKey(name: 'category_id') this.categoryId,
    @JsonKey(name: 'category_name') this.categoryName,
    @JsonKey(name: 'total_revenue') this.totalRevenue,
    @JsonKey(name: 'total_quantity') this.totalQuantity,
    @JsonKey(name: 'product_count') this.productCount,
    @JsonKey(name: 'order_count') this.orderCount,
    @JsonKey(name: 'total_standard_hpp') this.totalStandardHpp,
    @JsonKey(name: 'total_fifo_hpp') this.totalFifoHpp,
    @JsonKey(name: 'total_moving_average_hpp') this.totalMovingAverageHpp,
    @JsonKey(name: 'products') final List<ProfitSharingProductDto>? products,
  }) : _products = products,
       super._();

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

  @override
  @JsonKey(name: 'category_id')
  final String? categoryId;
  @override
  @JsonKey(name: 'category_name')
  final String? categoryName;
  @override
  @JsonKey(name: 'total_revenue')
  final num? totalRevenue;
  @override
  @JsonKey(name: 'total_quantity')
  final num? totalQuantity;
  @override
  @JsonKey(name: 'product_count')
  final num? productCount;
  @override
  @JsonKey(name: 'order_count')
  final num? orderCount;
  @override
  @JsonKey(name: 'total_standard_hpp')
  final num? totalStandardHpp;
  @override
  @JsonKey(name: 'total_fifo_hpp')
  final num? totalFifoHpp;
  @override
  @JsonKey(name: 'total_moving_average_hpp')
  final num? totalMovingAverageHpp;
  final List<ProfitSharingProductDto>? _products;
  @override
  @JsonKey(name: 'products')
  List<ProfitSharingProductDto>? get products {
    final value = _products;
    if (value == null) return null;
    if (_products is EqualUnmodifiableListView) return _products;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(value);
  }

  @override
  String toString() {
    return 'ProfitSharingSubCategoryDto(categoryId: $categoryId, categoryName: $categoryName, totalRevenue: $totalRevenue, totalQuantity: $totalQuantity, productCount: $productCount, orderCount: $orderCount, totalStandardHpp: $totalStandardHpp, totalFifoHpp: $totalFifoHpp, totalMovingAverageHpp: $totalMovingAverageHpp, products: $products)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ProfitSharingSubCategoryDtoImpl &&
            (identical(other.categoryId, categoryId) ||
                other.categoryId == categoryId) &&
            (identical(other.categoryName, categoryName) ||
                other.categoryName == categoryName) &&
            (identical(other.totalRevenue, totalRevenue) ||
                other.totalRevenue == totalRevenue) &&
            (identical(other.totalQuantity, totalQuantity) ||
                other.totalQuantity == totalQuantity) &&
            (identical(other.productCount, productCount) ||
                other.productCount == productCount) &&
            (identical(other.orderCount, orderCount) ||
                other.orderCount == orderCount) &&
            (identical(other.totalStandardHpp, totalStandardHpp) ||
                other.totalStandardHpp == totalStandardHpp) &&
            (identical(other.totalFifoHpp, totalFifoHpp) ||
                other.totalFifoHpp == totalFifoHpp) &&
            (identical(other.totalMovingAverageHpp, totalMovingAverageHpp) ||
                other.totalMovingAverageHpp == totalMovingAverageHpp) &&
            const DeepCollectionEquality().equals(other._products, _products));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    categoryId,
    categoryName,
    totalRevenue,
    totalQuantity,
    productCount,
    orderCount,
    totalStandardHpp,
    totalFifoHpp,
    totalMovingAverageHpp,
    const DeepCollectionEquality().hash(_products),
  );

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

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

abstract class _ProfitSharingSubCategoryDto
    extends ProfitSharingSubCategoryDto {
  const factory _ProfitSharingSubCategoryDto({
    @JsonKey(name: 'category_id') final String? categoryId,
    @JsonKey(name: 'category_name') final String? categoryName,
    @JsonKey(name: 'total_revenue') final num? totalRevenue,
    @JsonKey(name: 'total_quantity') final num? totalQuantity,
    @JsonKey(name: 'product_count') final num? productCount,
    @JsonKey(name: 'order_count') final num? orderCount,
    @JsonKey(name: 'total_standard_hpp') final num? totalStandardHpp,
    @JsonKey(name: 'total_fifo_hpp') final num? totalFifoHpp,
    @JsonKey(name: 'total_moving_average_hpp') final num? totalMovingAverageHpp,
    @JsonKey(name: 'products') final List<ProfitSharingProductDto>? products,
  }) = _$ProfitSharingSubCategoryDtoImpl;
  const _ProfitSharingSubCategoryDto._() : super._();

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

  @override
  @JsonKey(name: 'category_id')
  String? get categoryId;
  @override
  @JsonKey(name: 'category_name')
  String? get categoryName;
  @override
  @JsonKey(name: 'total_revenue')
  num? get totalRevenue;
  @override
  @JsonKey(name: 'total_quantity')
  num? get totalQuantity;
  @override
  @JsonKey(name: 'product_count')
  num? get productCount;
  @override
  @JsonKey(name: 'order_count')
  num? get orderCount;
  @override
  @JsonKey(name: 'total_standard_hpp')
  num? get totalStandardHpp;
  @override
  @JsonKey(name: 'total_fifo_hpp')
  num? get totalFifoHpp;
  @override
  @JsonKey(name: 'total_moving_average_hpp')
  num? get totalMovingAverageHpp;
  @override
  @JsonKey(name: 'products')
  List<ProfitSharingProductDto>? get products;

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

ProfitSharingProductDto _$ProfitSharingProductDtoFromJson(
  Map<String, dynamic> json,
) {
  return _ProfitSharingProductDto.fromJson(json);
}

/// @nodoc
mixin _$ProfitSharingProductDto {
  @JsonKey(name: 'product_id')
  String? get productId => throw _privateConstructorUsedError;
  @JsonKey(name: 'product_name')
  String? get productName => throw _privateConstructorUsedError;
  @JsonKey(name: 'product_sku')
  String? get productSku => throw _privateConstructorUsedError;
  @JsonKey(name: 'product_price')
  num? get productPrice => throw _privateConstructorUsedError;
  @JsonKey(name: 'quantity_sold')
  num? get quantitySold => throw _privateConstructorUsedError;
  @JsonKey(name: 'revenue')
  num? get revenue => throw _privateConstructorUsedError;
  @JsonKey(name: 'average_price')
  num? get averagePrice => throw _privateConstructorUsedError;
  @JsonKey(name: 'order_count')
  num? get orderCount => throw _privateConstructorUsedError;
  @JsonKey(name: 'standard_hpp_per_unit')
  num? get standardHppPerUnit => throw _privateConstructorUsedError;
  @JsonKey(name: 'standard_hpp_total')
  num? get standardHppTotal => throw _privateConstructorUsedError;
  @JsonKey(name: 'fifo_hpp_per_unit')
  num? get fifoHppPerUnit => throw _privateConstructorUsedError;
  @JsonKey(name: 'fifo_hpp_total')
  num? get fifoHppTotal => throw _privateConstructorUsedError;
  @JsonKey(name: 'moving_average_hpp_per_unit')
  num? get movingAverageHppPerUnit => throw _privateConstructorUsedError;
  @JsonKey(name: 'moving_average_hpp_total')
  num? get movingAverageHppTotal => throw _privateConstructorUsedError;

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

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

/// @nodoc
abstract class $ProfitSharingProductDtoCopyWith<$Res> {
  factory $ProfitSharingProductDtoCopyWith(
    ProfitSharingProductDto value,
    $Res Function(ProfitSharingProductDto) then,
  ) = _$ProfitSharingProductDtoCopyWithImpl<$Res, ProfitSharingProductDto>;
  @useResult
  $Res call({
    @JsonKey(name: 'product_id') String? productId,
    @JsonKey(name: 'product_name') String? productName,
    @JsonKey(name: 'product_sku') String? productSku,
    @JsonKey(name: 'product_price') num? productPrice,
    @JsonKey(name: 'quantity_sold') num? quantitySold,
    @JsonKey(name: 'revenue') num? revenue,
    @JsonKey(name: 'average_price') num? averagePrice,
    @JsonKey(name: 'order_count') num? orderCount,
    @JsonKey(name: 'standard_hpp_per_unit') num? standardHppPerUnit,
    @JsonKey(name: 'standard_hpp_total') num? standardHppTotal,
    @JsonKey(name: 'fifo_hpp_per_unit') num? fifoHppPerUnit,
    @JsonKey(name: 'fifo_hpp_total') num? fifoHppTotal,
    @JsonKey(name: 'moving_average_hpp_per_unit') num? movingAverageHppPerUnit,
    @JsonKey(name: 'moving_average_hpp_total') num? movingAverageHppTotal,
  });
}

/// @nodoc
class _$ProfitSharingProductDtoCopyWithImpl<
  $Res,
  $Val extends ProfitSharingProductDto
>
    implements $ProfitSharingProductDtoCopyWith<$Res> {
  _$ProfitSharingProductDtoCopyWithImpl(this._value, this._then);

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

  /// Create a copy of ProfitSharingProductDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? productId = freezed,
    Object? productName = freezed,
    Object? productSku = freezed,
    Object? productPrice = freezed,
    Object? quantitySold = freezed,
    Object? revenue = freezed,
    Object? averagePrice = freezed,
    Object? orderCount = freezed,
    Object? standardHppPerUnit = freezed,
    Object? standardHppTotal = freezed,
    Object? fifoHppPerUnit = freezed,
    Object? fifoHppTotal = freezed,
    Object? movingAverageHppPerUnit = freezed,
    Object? movingAverageHppTotal = freezed,
  }) {
    return _then(
      _value.copyWith(
            productId: freezed == productId
                ? _value.productId
                : productId // ignore: cast_nullable_to_non_nullable
                      as String?,
            productName: freezed == productName
                ? _value.productName
                : productName // ignore: cast_nullable_to_non_nullable
                      as String?,
            productSku: freezed == productSku
                ? _value.productSku
                : productSku // ignore: cast_nullable_to_non_nullable
                      as String?,
            productPrice: freezed == productPrice
                ? _value.productPrice
                : productPrice // ignore: cast_nullable_to_non_nullable
                      as num?,
            quantitySold: freezed == quantitySold
                ? _value.quantitySold
                : quantitySold // ignore: cast_nullable_to_non_nullable
                      as num?,
            revenue: freezed == revenue
                ? _value.revenue
                : revenue // ignore: cast_nullable_to_non_nullable
                      as num?,
            averagePrice: freezed == averagePrice
                ? _value.averagePrice
                : averagePrice // ignore: cast_nullable_to_non_nullable
                      as num?,
            orderCount: freezed == orderCount
                ? _value.orderCount
                : orderCount // ignore: cast_nullable_to_non_nullable
                      as num?,
            standardHppPerUnit: freezed == standardHppPerUnit
                ? _value.standardHppPerUnit
                : standardHppPerUnit // ignore: cast_nullable_to_non_nullable
                      as num?,
            standardHppTotal: freezed == standardHppTotal
                ? _value.standardHppTotal
                : standardHppTotal // ignore: cast_nullable_to_non_nullable
                      as num?,
            fifoHppPerUnit: freezed == fifoHppPerUnit
                ? _value.fifoHppPerUnit
                : fifoHppPerUnit // ignore: cast_nullable_to_non_nullable
                      as num?,
            fifoHppTotal: freezed == fifoHppTotal
                ? _value.fifoHppTotal
                : fifoHppTotal // ignore: cast_nullable_to_non_nullable
                      as num?,
            movingAverageHppPerUnit: freezed == movingAverageHppPerUnit
                ? _value.movingAverageHppPerUnit
                : movingAverageHppPerUnit // ignore: cast_nullable_to_non_nullable
                      as num?,
            movingAverageHppTotal: freezed == movingAverageHppTotal
                ? _value.movingAverageHppTotal
                : movingAverageHppTotal // ignore: cast_nullable_to_non_nullable
                      as num?,
          )
          as $Val,
    );
  }
}

/// @nodoc
abstract class _$$ProfitSharingProductDtoImplCopyWith<$Res>
    implements $ProfitSharingProductDtoCopyWith<$Res> {
  factory _$$ProfitSharingProductDtoImplCopyWith(
    _$ProfitSharingProductDtoImpl value,
    $Res Function(_$ProfitSharingProductDtoImpl) then,
  ) = __$$ProfitSharingProductDtoImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    @JsonKey(name: 'product_id') String? productId,
    @JsonKey(name: 'product_name') String? productName,
    @JsonKey(name: 'product_sku') String? productSku,
    @JsonKey(name: 'product_price') num? productPrice,
    @JsonKey(name: 'quantity_sold') num? quantitySold,
    @JsonKey(name: 'revenue') num? revenue,
    @JsonKey(name: 'average_price') num? averagePrice,
    @JsonKey(name: 'order_count') num? orderCount,
    @JsonKey(name: 'standard_hpp_per_unit') num? standardHppPerUnit,
    @JsonKey(name: 'standard_hpp_total') num? standardHppTotal,
    @JsonKey(name: 'fifo_hpp_per_unit') num? fifoHppPerUnit,
    @JsonKey(name: 'fifo_hpp_total') num? fifoHppTotal,
    @JsonKey(name: 'moving_average_hpp_per_unit') num? movingAverageHppPerUnit,
    @JsonKey(name: 'moving_average_hpp_total') num? movingAverageHppTotal,
  });
}

/// @nodoc
class __$$ProfitSharingProductDtoImplCopyWithImpl<$Res>
    extends
        _$ProfitSharingProductDtoCopyWithImpl<
          $Res,
          _$ProfitSharingProductDtoImpl
        >
    implements _$$ProfitSharingProductDtoImplCopyWith<$Res> {
  __$$ProfitSharingProductDtoImplCopyWithImpl(
    _$ProfitSharingProductDtoImpl _value,
    $Res Function(_$ProfitSharingProductDtoImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of ProfitSharingProductDto
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? productId = freezed,
    Object? productName = freezed,
    Object? productSku = freezed,
    Object? productPrice = freezed,
    Object? quantitySold = freezed,
    Object? revenue = freezed,
    Object? averagePrice = freezed,
    Object? orderCount = freezed,
    Object? standardHppPerUnit = freezed,
    Object? standardHppTotal = freezed,
    Object? fifoHppPerUnit = freezed,
    Object? fifoHppTotal = freezed,
    Object? movingAverageHppPerUnit = freezed,
    Object? movingAverageHppTotal = freezed,
  }) {
    return _then(
      _$ProfitSharingProductDtoImpl(
        productId: freezed == productId
            ? _value.productId
            : productId // ignore: cast_nullable_to_non_nullable
                  as String?,
        productName: freezed == productName
            ? _value.productName
            : productName // ignore: cast_nullable_to_non_nullable
                  as String?,
        productSku: freezed == productSku
            ? _value.productSku
            : productSku // ignore: cast_nullable_to_non_nullable
                  as String?,
        productPrice: freezed == productPrice
            ? _value.productPrice
            : productPrice // ignore: cast_nullable_to_non_nullable
                  as num?,
        quantitySold: freezed == quantitySold
            ? _value.quantitySold
            : quantitySold // ignore: cast_nullable_to_non_nullable
                  as num?,
        revenue: freezed == revenue
            ? _value.revenue
            : revenue // ignore: cast_nullable_to_non_nullable
                  as num?,
        averagePrice: freezed == averagePrice
            ? _value.averagePrice
            : averagePrice // ignore: cast_nullable_to_non_nullable
                  as num?,
        orderCount: freezed == orderCount
            ? _value.orderCount
            : orderCount // ignore: cast_nullable_to_non_nullable
                  as num?,
        standardHppPerUnit: freezed == standardHppPerUnit
            ? _value.standardHppPerUnit
            : standardHppPerUnit // ignore: cast_nullable_to_non_nullable
                  as num?,
        standardHppTotal: freezed == standardHppTotal
            ? _value.standardHppTotal
            : standardHppTotal // ignore: cast_nullable_to_non_nullable
                  as num?,
        fifoHppPerUnit: freezed == fifoHppPerUnit
            ? _value.fifoHppPerUnit
            : fifoHppPerUnit // ignore: cast_nullable_to_non_nullable
                  as num?,
        fifoHppTotal: freezed == fifoHppTotal
            ? _value.fifoHppTotal
            : fifoHppTotal // ignore: cast_nullable_to_non_nullable
                  as num?,
        movingAverageHppPerUnit: freezed == movingAverageHppPerUnit
            ? _value.movingAverageHppPerUnit
            : movingAverageHppPerUnit // ignore: cast_nullable_to_non_nullable
                  as num?,
        movingAverageHppTotal: freezed == movingAverageHppTotal
            ? _value.movingAverageHppTotal
            : movingAverageHppTotal // ignore: cast_nullable_to_non_nullable
                  as num?,
      ),
    );
  }
}

/// @nodoc
@JsonSerializable()
class _$ProfitSharingProductDtoImpl extends _ProfitSharingProductDto {
  const _$ProfitSharingProductDtoImpl({
    @JsonKey(name: 'product_id') this.productId,
    @JsonKey(name: 'product_name') this.productName,
    @JsonKey(name: 'product_sku') this.productSku,
    @JsonKey(name: 'product_price') this.productPrice,
    @JsonKey(name: 'quantity_sold') this.quantitySold,
    @JsonKey(name: 'revenue') this.revenue,
    @JsonKey(name: 'average_price') this.averagePrice,
    @JsonKey(name: 'order_count') this.orderCount,
    @JsonKey(name: 'standard_hpp_per_unit') this.standardHppPerUnit,
    @JsonKey(name: 'standard_hpp_total') this.standardHppTotal,
    @JsonKey(name: 'fifo_hpp_per_unit') this.fifoHppPerUnit,
    @JsonKey(name: 'fifo_hpp_total') this.fifoHppTotal,
    @JsonKey(name: 'moving_average_hpp_per_unit') this.movingAverageHppPerUnit,
    @JsonKey(name: 'moving_average_hpp_total') this.movingAverageHppTotal,
  }) : super._();

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

  @override
  @JsonKey(name: 'product_id')
  final String? productId;
  @override
  @JsonKey(name: 'product_name')
  final String? productName;
  @override
  @JsonKey(name: 'product_sku')
  final String? productSku;
  @override
  @JsonKey(name: 'product_price')
  final num? productPrice;
  @override
  @JsonKey(name: 'quantity_sold')
  final num? quantitySold;
  @override
  @JsonKey(name: 'revenue')
  final num? revenue;
  @override
  @JsonKey(name: 'average_price')
  final num? averagePrice;
  @override
  @JsonKey(name: 'order_count')
  final num? orderCount;
  @override
  @JsonKey(name: 'standard_hpp_per_unit')
  final num? standardHppPerUnit;
  @override
  @JsonKey(name: 'standard_hpp_total')
  final num? standardHppTotal;
  @override
  @JsonKey(name: 'fifo_hpp_per_unit')
  final num? fifoHppPerUnit;
  @override
  @JsonKey(name: 'fifo_hpp_total')
  final num? fifoHppTotal;
  @override
  @JsonKey(name: 'moving_average_hpp_per_unit')
  final num? movingAverageHppPerUnit;
  @override
  @JsonKey(name: 'moving_average_hpp_total')
  final num? movingAverageHppTotal;

  @override
  String toString() {
    return 'ProfitSharingProductDto(productId: $productId, productName: $productName, productSku: $productSku, productPrice: $productPrice, quantitySold: $quantitySold, revenue: $revenue, averagePrice: $averagePrice, orderCount: $orderCount, standardHppPerUnit: $standardHppPerUnit, standardHppTotal: $standardHppTotal, fifoHppPerUnit: $fifoHppPerUnit, fifoHppTotal: $fifoHppTotal, movingAverageHppPerUnit: $movingAverageHppPerUnit, movingAverageHppTotal: $movingAverageHppTotal)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ProfitSharingProductDtoImpl &&
            (identical(other.productId, productId) ||
                other.productId == productId) &&
            (identical(other.productName, productName) ||
                other.productName == productName) &&
            (identical(other.productSku, productSku) ||
                other.productSku == productSku) &&
            (identical(other.productPrice, productPrice) ||
                other.productPrice == productPrice) &&
            (identical(other.quantitySold, quantitySold) ||
                other.quantitySold == quantitySold) &&
            (identical(other.revenue, revenue) || other.revenue == revenue) &&
            (identical(other.averagePrice, averagePrice) ||
                other.averagePrice == averagePrice) &&
            (identical(other.orderCount, orderCount) ||
                other.orderCount == orderCount) &&
            (identical(other.standardHppPerUnit, standardHppPerUnit) ||
                other.standardHppPerUnit == standardHppPerUnit) &&
            (identical(other.standardHppTotal, standardHppTotal) ||
                other.standardHppTotal == standardHppTotal) &&
            (identical(other.fifoHppPerUnit, fifoHppPerUnit) ||
                other.fifoHppPerUnit == fifoHppPerUnit) &&
            (identical(other.fifoHppTotal, fifoHppTotal) ||
                other.fifoHppTotal == fifoHppTotal) &&
            (identical(
                  other.movingAverageHppPerUnit,
                  movingAverageHppPerUnit,
                ) ||
                other.movingAverageHppPerUnit == movingAverageHppPerUnit) &&
            (identical(other.movingAverageHppTotal, movingAverageHppTotal) ||
                other.movingAverageHppTotal == movingAverageHppTotal));
  }

  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  int get hashCode => Object.hash(
    runtimeType,
    productId,
    productName,
    productSku,
    productPrice,
    quantitySold,
    revenue,
    averagePrice,
    orderCount,
    standardHppPerUnit,
    standardHppTotal,
    fifoHppPerUnit,
    fifoHppTotal,
    movingAverageHppPerUnit,
    movingAverageHppTotal,
  );

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

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

abstract class _ProfitSharingProductDto extends ProfitSharingProductDto {
  const factory _ProfitSharingProductDto({
    @JsonKey(name: 'product_id') final String? productId,
    @JsonKey(name: 'product_name') final String? productName,
    @JsonKey(name: 'product_sku') final String? productSku,
    @JsonKey(name: 'product_price') final num? productPrice,
    @JsonKey(name: 'quantity_sold') final num? quantitySold,
    @JsonKey(name: 'revenue') final num? revenue,
    @JsonKey(name: 'average_price') final num? averagePrice,
    @JsonKey(name: 'order_count') final num? orderCount,
    @JsonKey(name: 'standard_hpp_per_unit') final num? standardHppPerUnit,
    @JsonKey(name: 'standard_hpp_total') final num? standardHppTotal,
    @JsonKey(name: 'fifo_hpp_per_unit') final num? fifoHppPerUnit,
    @JsonKey(name: 'fifo_hpp_total') final num? fifoHppTotal,
    @JsonKey(name: 'moving_average_hpp_per_unit')
    final num? movingAverageHppPerUnit,
    @JsonKey(name: 'moving_average_hpp_total') final num? movingAverageHppTotal,
  }) = _$ProfitSharingProductDtoImpl;
  const _ProfitSharingProductDto._() : super._();

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

  @override
  @JsonKey(name: 'product_id')
  String? get productId;
  @override
  @JsonKey(name: 'product_name')
  String? get productName;
  @override
  @JsonKey(name: 'product_sku')
  String? get productSku;
  @override
  @JsonKey(name: 'product_price')
  num? get productPrice;
  @override
  @JsonKey(name: 'quantity_sold')
  num? get quantitySold;
  @override
  @JsonKey(name: 'revenue')
  num? get revenue;
  @override
  @JsonKey(name: 'average_price')
  num? get averagePrice;
  @override
  @JsonKey(name: 'order_count')
  num? get orderCount;
  @override
  @JsonKey(name: 'standard_hpp_per_unit')
  num? get standardHppPerUnit;
  @override
  @JsonKey(name: 'standard_hpp_total')
  num? get standardHppTotal;
  @override
  @JsonKey(name: 'fifo_hpp_per_unit')
  num? get fifoHppPerUnit;
  @override
  @JsonKey(name: 'fifo_hpp_total')
  num? get fifoHppTotal;
  @override
  @JsonKey(name: 'moving_average_hpp_per_unit')
  num? get movingAverageHppPerUnit;
  @override
  @JsonKey(name: 'moving_average_hpp_total')
  num? get movingAverageHppTotal;

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