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

/// @nodoc
mixin _$SalesAnalytic {
  String get organizationId => throw _privateConstructorUsedError;
  String get outletId => throw _privateConstructorUsedError;
  String get outletName => throw _privateConstructorUsedError;
  DateTime get dateFrom => throw _privateConstructorUsedError;
  DateTime get dateTo => throw _privateConstructorUsedError;
  String get groupBy => throw _privateConstructorUsedError;
  SalesAnalyticSummary get summary => throw _privateConstructorUsedError;
  List<SalesAnalyticData> get data => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $SalesAnalyticCopyWith<$Res> {
  factory $SalesAnalyticCopyWith(
    SalesAnalytic value,
    $Res Function(SalesAnalytic) then,
  ) = _$SalesAnalyticCopyWithImpl<$Res, SalesAnalytic>;
  @useResult
  $Res call({
    String organizationId,
    String outletId,
    String outletName,
    DateTime dateFrom,
    DateTime dateTo,
    String groupBy,
    SalesAnalyticSummary summary,
    List<SalesAnalyticData> data,
  });

  $SalesAnalyticSummaryCopyWith<$Res> get summary;
}

/// @nodoc
class _$SalesAnalyticCopyWithImpl<$Res, $Val extends SalesAnalytic>
    implements $SalesAnalyticCopyWith<$Res> {
  _$SalesAnalyticCopyWithImpl(this._value, this._then);

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

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

  /// Create a copy of SalesAnalytic
  /// with the given fields replaced by the non-null parameter values.
  @override
  @pragma('vm:prefer-inline')
  $SalesAnalyticSummaryCopyWith<$Res> get summary {
    return $SalesAnalyticSummaryCopyWith<$Res>(_value.summary, (value) {
      return _then(_value.copyWith(summary: value) as $Val);
    });
  }
}

/// @nodoc
abstract class _$$SalesAnalyticImplCopyWith<$Res>
    implements $SalesAnalyticCopyWith<$Res> {
  factory _$$SalesAnalyticImplCopyWith(
    _$SalesAnalyticImpl value,
    $Res Function(_$SalesAnalyticImpl) then,
  ) = __$$SalesAnalyticImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    String organizationId,
    String outletId,
    String outletName,
    DateTime dateFrom,
    DateTime dateTo,
    String groupBy,
    SalesAnalyticSummary summary,
    List<SalesAnalyticData> data,
  });

  @override
  $SalesAnalyticSummaryCopyWith<$Res> get summary;
}

/// @nodoc
class __$$SalesAnalyticImplCopyWithImpl<$Res>
    extends _$SalesAnalyticCopyWithImpl<$Res, _$SalesAnalyticImpl>
    implements _$$SalesAnalyticImplCopyWith<$Res> {
  __$$SalesAnalyticImplCopyWithImpl(
    _$SalesAnalyticImpl _value,
    $Res Function(_$SalesAnalyticImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$SalesAnalyticImpl implements _SalesAnalytic {
  const _$SalesAnalyticImpl({
    required this.organizationId,
    required this.outletId,
    required this.outletName,
    required this.dateFrom,
    required this.dateTo,
    required this.groupBy,
    required this.summary,
    required final List<SalesAnalyticData> data,
  }) : _data = data;

  @override
  final String organizationId;
  @override
  final String outletId;
  @override
  final String outletName;
  @override
  final DateTime dateFrom;
  @override
  final DateTime dateTo;
  @override
  final String groupBy;
  @override
  final SalesAnalyticSummary summary;
  final List<SalesAnalyticData> _data;
  @override
  List<SalesAnalyticData> get data {
    if (_data is EqualUnmodifiableListView) return _data;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_data);
  }

  @override
  String toString() {
    return 'SalesAnalytic(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 _$SalesAnalyticImpl &&
            (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));
  }

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

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

abstract class _SalesAnalytic implements SalesAnalytic {
  const factory _SalesAnalytic({
    required final String organizationId,
    required final String outletId,
    required final String outletName,
    required final DateTime dateFrom,
    required final DateTime dateTo,
    required final String groupBy,
    required final SalesAnalyticSummary summary,
    required final List<SalesAnalyticData> data,
  }) = _$SalesAnalyticImpl;

  @override
  String get organizationId;
  @override
  String get outletId;
  @override
  String get outletName;
  @override
  DateTime get dateFrom;
  @override
  DateTime get dateTo;
  @override
  String get groupBy;
  @override
  SalesAnalyticSummary get summary;
  @override
  List<SalesAnalyticData> get data;

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

/// @nodoc
mixin _$SalesAnalyticSummary {
  int get totalSales => throw _privateConstructorUsedError;
  int get totalOrders => throw _privateConstructorUsedError;
  int get totalItems => throw _privateConstructorUsedError;
  double get averageOrderValue => throw _privateConstructorUsedError;
  int get totalTax => throw _privateConstructorUsedError;
  int get totalDiscount => throw _privateConstructorUsedError;
  int get netSales => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $SalesAnalyticSummaryCopyWith<$Res> {
  factory $SalesAnalyticSummaryCopyWith(
    SalesAnalyticSummary value,
    $Res Function(SalesAnalyticSummary) then,
  ) = _$SalesAnalyticSummaryCopyWithImpl<$Res, SalesAnalyticSummary>;
  @useResult
  $Res call({
    int totalSales,
    int totalOrders,
    int totalItems,
    double averageOrderValue,
    int totalTax,
    int totalDiscount,
    int netSales,
  });
}

/// @nodoc
class _$SalesAnalyticSummaryCopyWithImpl<
  $Res,
  $Val extends SalesAnalyticSummary
>
    implements $SalesAnalyticSummaryCopyWith<$Res> {
  _$SalesAnalyticSummaryCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$SalesAnalyticSummaryImplCopyWith<$Res>
    implements $SalesAnalyticSummaryCopyWith<$Res> {
  factory _$$SalesAnalyticSummaryImplCopyWith(
    _$SalesAnalyticSummaryImpl value,
    $Res Function(_$SalesAnalyticSummaryImpl) then,
  ) = __$$SalesAnalyticSummaryImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    int totalSales,
    int totalOrders,
    int totalItems,
    double averageOrderValue,
    int totalTax,
    int totalDiscount,
    int netSales,
  });
}

/// @nodoc
class __$$SalesAnalyticSummaryImplCopyWithImpl<$Res>
    extends _$SalesAnalyticSummaryCopyWithImpl<$Res, _$SalesAnalyticSummaryImpl>
    implements _$$SalesAnalyticSummaryImplCopyWith<$Res> {
  __$$SalesAnalyticSummaryImplCopyWithImpl(
    _$SalesAnalyticSummaryImpl _value,
    $Res Function(_$SalesAnalyticSummaryImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$SalesAnalyticSummaryImpl implements _SalesAnalyticSummary {
  const _$SalesAnalyticSummaryImpl({
    required this.totalSales,
    required this.totalOrders,
    required this.totalItems,
    required this.averageOrderValue,
    required this.totalTax,
    required this.totalDiscount,
    required this.netSales,
  });

  @override
  final int totalSales;
  @override
  final int totalOrders;
  @override
  final int totalItems;
  @override
  final double averageOrderValue;
  @override
  final int totalTax;
  @override
  final int totalDiscount;
  @override
  final int netSales;

  @override
  String toString() {
    return 'SalesAnalyticSummary(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 _$SalesAnalyticSummaryImpl &&
            (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));
  }

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

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

abstract class _SalesAnalyticSummary implements SalesAnalyticSummary {
  const factory _SalesAnalyticSummary({
    required final int totalSales,
    required final int totalOrders,
    required final int totalItems,
    required final double averageOrderValue,
    required final int totalTax,
    required final int totalDiscount,
    required final int netSales,
  }) = _$SalesAnalyticSummaryImpl;

  @override
  int get totalSales;
  @override
  int get totalOrders;
  @override
  int get totalItems;
  @override
  double get averageOrderValue;
  @override
  int get totalTax;
  @override
  int get totalDiscount;
  @override
  int get netSales;

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

/// @nodoc
mixin _$SalesAnalyticData {
  DateTime get date => throw _privateConstructorUsedError;
  int get sales => throw _privateConstructorUsedError;
  int get orders => throw _privateConstructorUsedError;
  int get items => throw _privateConstructorUsedError;
  int get tax => throw _privateConstructorUsedError;
  int get discount => throw _privateConstructorUsedError;
  int get netSales => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $SalesAnalyticDataCopyWith<$Res> {
  factory $SalesAnalyticDataCopyWith(
    SalesAnalyticData value,
    $Res Function(SalesAnalyticData) then,
  ) = _$SalesAnalyticDataCopyWithImpl<$Res, SalesAnalyticData>;
  @useResult
  $Res call({
    DateTime date,
    int sales,
    int orders,
    int items,
    int tax,
    int discount,
    int netSales,
  });
}

/// @nodoc
class _$SalesAnalyticDataCopyWithImpl<$Res, $Val extends SalesAnalyticData>
    implements $SalesAnalyticDataCopyWith<$Res> {
  _$SalesAnalyticDataCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$SalesAnalyticDataImplCopyWith<$Res>
    implements $SalesAnalyticDataCopyWith<$Res> {
  factory _$$SalesAnalyticDataImplCopyWith(
    _$SalesAnalyticDataImpl value,
    $Res Function(_$SalesAnalyticDataImpl) then,
  ) = __$$SalesAnalyticDataImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    DateTime date,
    int sales,
    int orders,
    int items,
    int tax,
    int discount,
    int netSales,
  });
}

/// @nodoc
class __$$SalesAnalyticDataImplCopyWithImpl<$Res>
    extends _$SalesAnalyticDataCopyWithImpl<$Res, _$SalesAnalyticDataImpl>
    implements _$$SalesAnalyticDataImplCopyWith<$Res> {
  __$$SalesAnalyticDataImplCopyWithImpl(
    _$SalesAnalyticDataImpl _value,
    $Res Function(_$SalesAnalyticDataImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$SalesAnalyticDataImpl implements _SalesAnalyticData {
  const _$SalesAnalyticDataImpl({
    required this.date,
    required this.sales,
    required this.orders,
    required this.items,
    required this.tax,
    required this.discount,
    required this.netSales,
  });

  @override
  final DateTime date;
  @override
  final int sales;
  @override
  final int orders;
  @override
  final int items;
  @override
  final int tax;
  @override
  final int discount;
  @override
  final int netSales;

  @override
  String toString() {
    return 'SalesAnalyticData(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 _$SalesAnalyticDataImpl &&
            (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));
  }

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

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

abstract class _SalesAnalyticData implements SalesAnalyticData {
  const factory _SalesAnalyticData({
    required final DateTime date,
    required final int sales,
    required final int orders,
    required final int items,
    required final int tax,
    required final int discount,
    required final int netSales,
  }) = _$SalesAnalyticDataImpl;

  @override
  DateTime get date;
  @override
  int get sales;
  @override
  int get orders;
  @override
  int get items;
  @override
  int get tax;
  @override
  int get discount;
  @override
  int get netSales;

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

/// @nodoc
mixin _$ProfitLossAnalytic {
  String get organizationId => throw _privateConstructorUsedError;
  String get outletId => throw _privateConstructorUsedError;
  String get outletName => throw _privateConstructorUsedError;
  String get dateFrom => throw _privateConstructorUsedError;
  String get dateTo => throw _privateConstructorUsedError;
  String get groupBy => throw _privateConstructorUsedError;
  ProfitLossSummary get summary => throw _privateConstructorUsedError;
  List<ProfitLossDailyData> get data => throw _privateConstructorUsedError;
  List<ProfitLossProductData> get productData =>
      throw _privateConstructorUsedError;
  List<ProfitLossMainSummaryItem> get mainSummary =>
      throw _privateConstructorUsedError;
  ProfitLossPurchasing get purchasing => throw _privateConstructorUsedError;
  List<ProfitLossOperationalExpense> get operationalExpenses =>
      throw _privateConstructorUsedError;
  int get operationalExpensesTotal => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $ProfitLossAnalyticCopyWith<$Res> {
  factory $ProfitLossAnalyticCopyWith(
    ProfitLossAnalytic value,
    $Res Function(ProfitLossAnalytic) then,
  ) = _$ProfitLossAnalyticCopyWithImpl<$Res, ProfitLossAnalytic>;
  @useResult
  $Res call({
    String organizationId,
    String outletId,
    String outletName,
    String dateFrom,
    String dateTo,
    String groupBy,
    ProfitLossSummary summary,
    List<ProfitLossDailyData> data,
    List<ProfitLossProductData> productData,
    List<ProfitLossMainSummaryItem> mainSummary,
    ProfitLossPurchasing purchasing,
    List<ProfitLossOperationalExpense> operationalExpenses,
    int operationalExpensesTotal,
  });

  $ProfitLossSummaryCopyWith<$Res> get summary;
  $ProfitLossPurchasingCopyWith<$Res> get purchasing;
}

/// @nodoc
class _$ProfitLossAnalyticCopyWithImpl<$Res, $Val extends ProfitLossAnalytic>
    implements $ProfitLossAnalyticCopyWith<$Res> {
  _$ProfitLossAnalyticCopyWithImpl(this._value, this._then);

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

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

  /// Create a copy of ProfitLossAnalytic
  /// with the given fields replaced by the non-null parameter values.
  @override
  @pragma('vm:prefer-inline')
  $ProfitLossSummaryCopyWith<$Res> get summary {
    return $ProfitLossSummaryCopyWith<$Res>(_value.summary, (value) {
      return _then(_value.copyWith(summary: value) as $Val);
    });
  }

  /// Create a copy of ProfitLossAnalytic
  /// with the given fields replaced by the non-null parameter values.
  @override
  @pragma('vm:prefer-inline')
  $ProfitLossPurchasingCopyWith<$Res> get purchasing {
    return $ProfitLossPurchasingCopyWith<$Res>(_value.purchasing, (value) {
      return _then(_value.copyWith(purchasing: value) as $Val);
    });
  }
}

/// @nodoc
abstract class _$$ProfitLossAnalyticImplCopyWith<$Res>
    implements $ProfitLossAnalyticCopyWith<$Res> {
  factory _$$ProfitLossAnalyticImplCopyWith(
    _$ProfitLossAnalyticImpl value,
    $Res Function(_$ProfitLossAnalyticImpl) then,
  ) = __$$ProfitLossAnalyticImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    String organizationId,
    String outletId,
    String outletName,
    String dateFrom,
    String dateTo,
    String groupBy,
    ProfitLossSummary summary,
    List<ProfitLossDailyData> data,
    List<ProfitLossProductData> productData,
    List<ProfitLossMainSummaryItem> mainSummary,
    ProfitLossPurchasing purchasing,
    List<ProfitLossOperationalExpense> operationalExpenses,
    int operationalExpensesTotal,
  });

  @override
  $ProfitLossSummaryCopyWith<$Res> get summary;
  @override
  $ProfitLossPurchasingCopyWith<$Res> get purchasing;
}

/// @nodoc
class __$$ProfitLossAnalyticImplCopyWithImpl<$Res>
    extends _$ProfitLossAnalyticCopyWithImpl<$Res, _$ProfitLossAnalyticImpl>
    implements _$$ProfitLossAnalyticImplCopyWith<$Res> {
  __$$ProfitLossAnalyticImplCopyWithImpl(
    _$ProfitLossAnalyticImpl _value,
    $Res Function(_$ProfitLossAnalyticImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of ProfitLossAnalytic
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? organizationId = null,
    Object? outletId = null,
    Object? outletName = null,
    Object? dateFrom = null,
    Object? dateTo = null,
    Object? groupBy = null,
    Object? summary = null,
    Object? data = null,
    Object? productData = null,
    Object? mainSummary = null,
    Object? purchasing = null,
    Object? operationalExpenses = null,
    Object? operationalExpensesTotal = null,
  }) {
    return _then(
      _$ProfitLossAnalyticImpl(
        organizationId: null == organizationId
            ? _value.organizationId
            : organizationId // ignore: cast_nullable_to_non_nullable
                  as String,
        outletId: null == outletId
            ? _value.outletId
            : outletId // ignore: cast_nullable_to_non_nullable
                  as String,
        outletName: null == outletName
            ? _value.outletName
            : outletName // ignore: cast_nullable_to_non_nullable
                  as String,
        dateFrom: null == dateFrom
            ? _value.dateFrom
            : dateFrom // ignore: cast_nullable_to_non_nullable
                  as String,
        dateTo: null == dateTo
            ? _value.dateTo
            : dateTo // ignore: cast_nullable_to_non_nullable
                  as String,
        groupBy: null == groupBy
            ? _value.groupBy
            : groupBy // ignore: cast_nullable_to_non_nullable
                  as String,
        summary: null == summary
            ? _value.summary
            : summary // ignore: cast_nullable_to_non_nullable
                  as ProfitLossSummary,
        data: null == data
            ? _value._data
            : data // ignore: cast_nullable_to_non_nullable
                  as List<ProfitLossDailyData>,
        productData: null == productData
            ? _value._productData
            : productData // ignore: cast_nullable_to_non_nullable
                  as List<ProfitLossProductData>,
        mainSummary: null == mainSummary
            ? _value._mainSummary
            : mainSummary // ignore: cast_nullable_to_non_nullable
                  as List<ProfitLossMainSummaryItem>,
        purchasing: null == purchasing
            ? _value.purchasing
            : purchasing // ignore: cast_nullable_to_non_nullable
                  as ProfitLossPurchasing,
        operationalExpenses: null == operationalExpenses
            ? _value._operationalExpenses
            : operationalExpenses // ignore: cast_nullable_to_non_nullable
                  as List<ProfitLossOperationalExpense>,
        operationalExpensesTotal: null == operationalExpensesTotal
            ? _value.operationalExpensesTotal
            : operationalExpensesTotal // ignore: cast_nullable_to_non_nullable
                  as int,
      ),
    );
  }
}

/// @nodoc

class _$ProfitLossAnalyticImpl implements _ProfitLossAnalytic {
  const _$ProfitLossAnalyticImpl({
    required this.organizationId,
    required this.outletId,
    required this.outletName,
    required this.dateFrom,
    required this.dateTo,
    required this.groupBy,
    required this.summary,
    required final List<ProfitLossDailyData> data,
    required final List<ProfitLossProductData> productData,
    required final List<ProfitLossMainSummaryItem> mainSummary,
    required this.purchasing,
    required final List<ProfitLossOperationalExpense> operationalExpenses,
    required this.operationalExpensesTotal,
  }) : _data = data,
       _productData = productData,
       _mainSummary = mainSummary,
       _operationalExpenses = operationalExpenses;

  @override
  final String organizationId;
  @override
  final String outletId;
  @override
  final String outletName;
  @override
  final String dateFrom;
  @override
  final String dateTo;
  @override
  final String groupBy;
  @override
  final ProfitLossSummary summary;
  final List<ProfitLossDailyData> _data;
  @override
  List<ProfitLossDailyData> get data {
    if (_data is EqualUnmodifiableListView) return _data;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_data);
  }

  final List<ProfitLossProductData> _productData;
  @override
  List<ProfitLossProductData> get productData {
    if (_productData is EqualUnmodifiableListView) return _productData;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_productData);
  }

  final List<ProfitLossMainSummaryItem> _mainSummary;
  @override
  List<ProfitLossMainSummaryItem> get mainSummary {
    if (_mainSummary is EqualUnmodifiableListView) return _mainSummary;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_mainSummary);
  }

  @override
  final ProfitLossPurchasing purchasing;
  final List<ProfitLossOperationalExpense> _operationalExpenses;
  @override
  List<ProfitLossOperationalExpense> get operationalExpenses {
    if (_operationalExpenses is EqualUnmodifiableListView)
      return _operationalExpenses;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_operationalExpenses);
  }

  @override
  final int operationalExpensesTotal;

  @override
  String toString() {
    return 'ProfitLossAnalytic(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 _$ProfitLossAnalyticImpl &&
            (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));
  }

  @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 ProfitLossAnalytic
  /// with the given fields replaced by the non-null parameter values.
  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  @pragma('vm:prefer-inline')
  _$$ProfitLossAnalyticImplCopyWith<_$ProfitLossAnalyticImpl> get copyWith =>
      __$$ProfitLossAnalyticImplCopyWithImpl<_$ProfitLossAnalyticImpl>(
        this,
        _$identity,
      );
}

abstract class _ProfitLossAnalytic implements ProfitLossAnalytic {
  const factory _ProfitLossAnalytic({
    required final String organizationId,
    required final String outletId,
    required final String outletName,
    required final String dateFrom,
    required final String dateTo,
    required final String groupBy,
    required final ProfitLossSummary summary,
    required final List<ProfitLossDailyData> data,
    required final List<ProfitLossProductData> productData,
    required final List<ProfitLossMainSummaryItem> mainSummary,
    required final ProfitLossPurchasing purchasing,
    required final List<ProfitLossOperationalExpense> operationalExpenses,
    required final int operationalExpensesTotal,
  }) = _$ProfitLossAnalyticImpl;

  @override
  String get organizationId;
  @override
  String get outletId;
  @override
  String get outletName;
  @override
  String get dateFrom;
  @override
  String get dateTo;
  @override
  String get groupBy;
  @override
  ProfitLossSummary get summary;
  @override
  List<ProfitLossDailyData> get data;
  @override
  List<ProfitLossProductData> get productData;
  @override
  List<ProfitLossMainSummaryItem> get mainSummary;
  @override
  ProfitLossPurchasing get purchasing;
  @override
  List<ProfitLossOperationalExpense> get operationalExpenses;
  @override
  int get operationalExpensesTotal;

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

/// @nodoc
mixin _$ProfitLossSummary {
  int get totalRevenue => throw _privateConstructorUsedError;
  int get totalCost => throw _privateConstructorUsedError;
  int get grossProfit => throw _privateConstructorUsedError;
  double get grossProfitMargin => throw _privateConstructorUsedError;
  int get totalTax => throw _privateConstructorUsedError;
  int get totalDiscount => throw _privateConstructorUsedError;
  int get netProfit => throw _privateConstructorUsedError;
  double get netProfitMargin => throw _privateConstructorUsedError;
  int get totalOrders => throw _privateConstructorUsedError;
  double get averageProfit => throw _privateConstructorUsedError;
  double get profitabilityRatio => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $ProfitLossSummaryCopyWith<$Res> {
  factory $ProfitLossSummaryCopyWith(
    ProfitLossSummary value,
    $Res Function(ProfitLossSummary) then,
  ) = _$ProfitLossSummaryCopyWithImpl<$Res, ProfitLossSummary>;
  @useResult
  $Res call({
    int totalRevenue,
    int totalCost,
    int grossProfit,
    double grossProfitMargin,
    int totalTax,
    int totalDiscount,
    int netProfit,
    double netProfitMargin,
    int totalOrders,
    double averageProfit,
    double profitabilityRatio,
  });
}

/// @nodoc
class _$ProfitLossSummaryCopyWithImpl<$Res, $Val extends ProfitLossSummary>
    implements $ProfitLossSummaryCopyWith<$Res> {
  _$ProfitLossSummaryCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$ProfitLossSummaryImplCopyWith<$Res>
    implements $ProfitLossSummaryCopyWith<$Res> {
  factory _$$ProfitLossSummaryImplCopyWith(
    _$ProfitLossSummaryImpl value,
    $Res Function(_$ProfitLossSummaryImpl) then,
  ) = __$$ProfitLossSummaryImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    int totalRevenue,
    int totalCost,
    int grossProfit,
    double grossProfitMargin,
    int totalTax,
    int totalDiscount,
    int netProfit,
    double netProfitMargin,
    int totalOrders,
    double averageProfit,
    double profitabilityRatio,
  });
}

/// @nodoc
class __$$ProfitLossSummaryImplCopyWithImpl<$Res>
    extends _$ProfitLossSummaryCopyWithImpl<$Res, _$ProfitLossSummaryImpl>
    implements _$$ProfitLossSummaryImplCopyWith<$Res> {
  __$$ProfitLossSummaryImplCopyWithImpl(
    _$ProfitLossSummaryImpl _value,
    $Res Function(_$ProfitLossSummaryImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$ProfitLossSummaryImpl implements _ProfitLossSummary {
  const _$ProfitLossSummaryImpl({
    required this.totalRevenue,
    required this.totalCost,
    required this.grossProfit,
    required this.grossProfitMargin,
    required this.totalTax,
    required this.totalDiscount,
    required this.netProfit,
    required this.netProfitMargin,
    required this.totalOrders,
    required this.averageProfit,
    required this.profitabilityRatio,
  });

  @override
  final int totalRevenue;
  @override
  final int totalCost;
  @override
  final int grossProfit;
  @override
  final double grossProfitMargin;
  @override
  final int totalTax;
  @override
  final int totalDiscount;
  @override
  final int netProfit;
  @override
  final double netProfitMargin;
  @override
  final int totalOrders;
  @override
  final double averageProfit;
  @override
  final double profitabilityRatio;

  @override
  String toString() {
    return 'ProfitLossSummary(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 _$ProfitLossSummaryImpl &&
            (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));
  }

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

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

abstract class _ProfitLossSummary implements ProfitLossSummary {
  const factory _ProfitLossSummary({
    required final int totalRevenue,
    required final int totalCost,
    required final int grossProfit,
    required final double grossProfitMargin,
    required final int totalTax,
    required final int totalDiscount,
    required final int netProfit,
    required final double netProfitMargin,
    required final int totalOrders,
    required final double averageProfit,
    required final double profitabilityRatio,
  }) = _$ProfitLossSummaryImpl;

  @override
  int get totalRevenue;
  @override
  int get totalCost;
  @override
  int get grossProfit;
  @override
  double get grossProfitMargin;
  @override
  int get totalTax;
  @override
  int get totalDiscount;
  @override
  int get netProfit;
  @override
  double get netProfitMargin;
  @override
  int get totalOrders;
  @override
  double get averageProfit;
  @override
  double get profitabilityRatio;

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

/// @nodoc
mixin _$ProfitLossDailyData {
  String get date => throw _privateConstructorUsedError;
  int get revenue => throw _privateConstructorUsedError;
  int get cost => throw _privateConstructorUsedError;
  int get grossProfit => throw _privateConstructorUsedError;
  double get grossProfitMargin => throw _privateConstructorUsedError;
  int get tax => throw _privateConstructorUsedError;
  int get discount => throw _privateConstructorUsedError;
  int get netProfit => throw _privateConstructorUsedError;
  double get netProfitMargin => throw _privateConstructorUsedError;
  int get orders => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $ProfitLossDailyDataCopyWith<$Res> {
  factory $ProfitLossDailyDataCopyWith(
    ProfitLossDailyData value,
    $Res Function(ProfitLossDailyData) then,
  ) = _$ProfitLossDailyDataCopyWithImpl<$Res, ProfitLossDailyData>;
  @useResult
  $Res call({
    String date,
    int revenue,
    int cost,
    int grossProfit,
    double grossProfitMargin,
    int tax,
    int discount,
    int netProfit,
    double netProfitMargin,
    int orders,
  });
}

/// @nodoc
class _$ProfitLossDailyDataCopyWithImpl<$Res, $Val extends ProfitLossDailyData>
    implements $ProfitLossDailyDataCopyWith<$Res> {
  _$ProfitLossDailyDataCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$ProfitLossDailyDataImplCopyWith<$Res>
    implements $ProfitLossDailyDataCopyWith<$Res> {
  factory _$$ProfitLossDailyDataImplCopyWith(
    _$ProfitLossDailyDataImpl value,
    $Res Function(_$ProfitLossDailyDataImpl) then,
  ) = __$$ProfitLossDailyDataImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    String date,
    int revenue,
    int cost,
    int grossProfit,
    double grossProfitMargin,
    int tax,
    int discount,
    int netProfit,
    double netProfitMargin,
    int orders,
  });
}

/// @nodoc
class __$$ProfitLossDailyDataImplCopyWithImpl<$Res>
    extends _$ProfitLossDailyDataCopyWithImpl<$Res, _$ProfitLossDailyDataImpl>
    implements _$$ProfitLossDailyDataImplCopyWith<$Res> {
  __$$ProfitLossDailyDataImplCopyWithImpl(
    _$ProfitLossDailyDataImpl _value,
    $Res Function(_$ProfitLossDailyDataImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$ProfitLossDailyDataImpl implements _ProfitLossDailyData {
  const _$ProfitLossDailyDataImpl({
    required this.date,
    required this.revenue,
    required this.cost,
    required this.grossProfit,
    required this.grossProfitMargin,
    required this.tax,
    required this.discount,
    required this.netProfit,
    required this.netProfitMargin,
    required this.orders,
  });

  @override
  final String date;
  @override
  final int revenue;
  @override
  final int cost;
  @override
  final int grossProfit;
  @override
  final double grossProfitMargin;
  @override
  final int tax;
  @override
  final int discount;
  @override
  final int netProfit;
  @override
  final double netProfitMargin;
  @override
  final int orders;

  @override
  String toString() {
    return 'ProfitLossDailyData(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 _$ProfitLossDailyDataImpl &&
            (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));
  }

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

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

abstract class _ProfitLossDailyData implements ProfitLossDailyData {
  const factory _ProfitLossDailyData({
    required final String date,
    required final int revenue,
    required final int cost,
    required final int grossProfit,
    required final double grossProfitMargin,
    required final int tax,
    required final int discount,
    required final int netProfit,
    required final double netProfitMargin,
    required final int orders,
  }) = _$ProfitLossDailyDataImpl;

  @override
  String get date;
  @override
  int get revenue;
  @override
  int get cost;
  @override
  int get grossProfit;
  @override
  double get grossProfitMargin;
  @override
  int get tax;
  @override
  int get discount;
  @override
  int get netProfit;
  @override
  double get netProfitMargin;
  @override
  int get orders;

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

/// @nodoc
mixin _$ProfitLossProductData {
  String get productId => throw _privateConstructorUsedError;
  String get productName => throw _privateConstructorUsedError;
  String get categoryId => throw _privateConstructorUsedError;
  String get categoryName => throw _privateConstructorUsedError;
  int get quantitySold => throw _privateConstructorUsedError;
  int get revenue => throw _privateConstructorUsedError;
  int get cost => throw _privateConstructorUsedError;
  int get grossProfit => throw _privateConstructorUsedError;
  double get grossProfitMargin => throw _privateConstructorUsedError;
  int get averagePrice => throw _privateConstructorUsedError;
  int get averageCost => throw _privateConstructorUsedError;
  int get profitPerUnit => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $ProfitLossProductDataCopyWith<$Res> {
  factory $ProfitLossProductDataCopyWith(
    ProfitLossProductData value,
    $Res Function(ProfitLossProductData) then,
  ) = _$ProfitLossProductDataCopyWithImpl<$Res, ProfitLossProductData>;
  @useResult
  $Res call({
    String productId,
    String productName,
    String categoryId,
    String categoryName,
    int quantitySold,
    int revenue,
    int cost,
    int grossProfit,
    double grossProfitMargin,
    int averagePrice,
    int averageCost,
    int profitPerUnit,
  });
}

/// @nodoc
class _$ProfitLossProductDataCopyWithImpl<
  $Res,
  $Val extends ProfitLossProductData
>
    implements $ProfitLossProductDataCopyWith<$Res> {
  _$ProfitLossProductDataCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$ProfitLossProductDataImplCopyWith<$Res>
    implements $ProfitLossProductDataCopyWith<$Res> {
  factory _$$ProfitLossProductDataImplCopyWith(
    _$ProfitLossProductDataImpl value,
    $Res Function(_$ProfitLossProductDataImpl) then,
  ) = __$$ProfitLossProductDataImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    String productId,
    String productName,
    String categoryId,
    String categoryName,
    int quantitySold,
    int revenue,
    int cost,
    int grossProfit,
    double grossProfitMargin,
    int averagePrice,
    int averageCost,
    int profitPerUnit,
  });
}

/// @nodoc
class __$$ProfitLossProductDataImplCopyWithImpl<$Res>
    extends
        _$ProfitLossProductDataCopyWithImpl<$Res, _$ProfitLossProductDataImpl>
    implements _$$ProfitLossProductDataImplCopyWith<$Res> {
  __$$ProfitLossProductDataImplCopyWithImpl(
    _$ProfitLossProductDataImpl _value,
    $Res Function(_$ProfitLossProductDataImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$ProfitLossProductDataImpl implements _ProfitLossProductData {
  const _$ProfitLossProductDataImpl({
    required this.productId,
    required this.productName,
    required this.categoryId,
    required this.categoryName,
    required this.quantitySold,
    required this.revenue,
    required this.cost,
    required this.grossProfit,
    required this.grossProfitMargin,
    required this.averagePrice,
    required this.averageCost,
    required this.profitPerUnit,
  });

  @override
  final String productId;
  @override
  final String productName;
  @override
  final String categoryId;
  @override
  final String categoryName;
  @override
  final int quantitySold;
  @override
  final int revenue;
  @override
  final int cost;
  @override
  final int grossProfit;
  @override
  final double grossProfitMargin;
  @override
  final int averagePrice;
  @override
  final int averageCost;
  @override
  final int profitPerUnit;

  @override
  String toString() {
    return 'ProfitLossProductData(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 _$ProfitLossProductDataImpl &&
            (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));
  }

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

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

abstract class _ProfitLossProductData implements ProfitLossProductData {
  const factory _ProfitLossProductData({
    required final String productId,
    required final String productName,
    required final String categoryId,
    required final String categoryName,
    required final int quantitySold,
    required final int revenue,
    required final int cost,
    required final int grossProfit,
    required final double grossProfitMargin,
    required final int averagePrice,
    required final int averageCost,
    required final int profitPerUnit,
  }) = _$ProfitLossProductDataImpl;

  @override
  String get productId;
  @override
  String get productName;
  @override
  String get categoryId;
  @override
  String get categoryName;
  @override
  int get quantitySold;
  @override
  int get revenue;
  @override
  int get cost;
  @override
  int get grossProfit;
  @override
  double get grossProfitMargin;
  @override
  int get averagePrice;
  @override
  int get averageCost;
  @override
  int get profitPerUnit;

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

/// @nodoc
mixin _$ProfitLossMainSummaryItem {
  String get id => throw _privateConstructorUsedError;
  String get label => throw _privateConstructorUsedError;
  bool get isBold => throw _privateConstructorUsedError;
  int get todayNominal => throw _privateConstructorUsedError;
  double get todayPct => throw _privateConstructorUsedError;
  int get mtdNominal => throw _privateConstructorUsedError;
  double get mtdPct => throw _privateConstructorUsedError;
  List<ProfitLossMainSummaryItem> get subItems =>
      throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $ProfitLossMainSummaryItemCopyWith<$Res> {
  factory $ProfitLossMainSummaryItemCopyWith(
    ProfitLossMainSummaryItem value,
    $Res Function(ProfitLossMainSummaryItem) then,
  ) = _$ProfitLossMainSummaryItemCopyWithImpl<$Res, ProfitLossMainSummaryItem>;
  @useResult
  $Res call({
    String id,
    String label,
    bool isBold,
    int todayNominal,
    double todayPct,
    int mtdNominal,
    double mtdPct,
    List<ProfitLossMainSummaryItem> subItems,
  });
}

/// @nodoc
class _$ProfitLossMainSummaryItemCopyWithImpl<
  $Res,
  $Val extends ProfitLossMainSummaryItem
>
    implements $ProfitLossMainSummaryItemCopyWith<$Res> {
  _$ProfitLossMainSummaryItemCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$ProfitLossMainSummaryItemImplCopyWith<$Res>
    implements $ProfitLossMainSummaryItemCopyWith<$Res> {
  factory _$$ProfitLossMainSummaryItemImplCopyWith(
    _$ProfitLossMainSummaryItemImpl value,
    $Res Function(_$ProfitLossMainSummaryItemImpl) then,
  ) = __$$ProfitLossMainSummaryItemImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    String id,
    String label,
    bool isBold,
    int todayNominal,
    double todayPct,
    int mtdNominal,
    double mtdPct,
    List<ProfitLossMainSummaryItem> subItems,
  });
}

/// @nodoc
class __$$ProfitLossMainSummaryItemImplCopyWithImpl<$Res>
    extends
        _$ProfitLossMainSummaryItemCopyWithImpl<
          $Res,
          _$ProfitLossMainSummaryItemImpl
        >
    implements _$$ProfitLossMainSummaryItemImplCopyWith<$Res> {
  __$$ProfitLossMainSummaryItemImplCopyWithImpl(
    _$ProfitLossMainSummaryItemImpl _value,
    $Res Function(_$ProfitLossMainSummaryItemImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$ProfitLossMainSummaryItemImpl implements _ProfitLossMainSummaryItem {
  const _$ProfitLossMainSummaryItemImpl({
    required this.id,
    required this.label,
    required this.isBold,
    required this.todayNominal,
    required this.todayPct,
    required this.mtdNominal,
    required this.mtdPct,
    final List<ProfitLossMainSummaryItem> subItems = const [],
  }) : _subItems = subItems;

  @override
  final String id;
  @override
  final String label;
  @override
  final bool isBold;
  @override
  final int todayNominal;
  @override
  final double todayPct;
  @override
  final int mtdNominal;
  @override
  final double mtdPct;
  final List<ProfitLossMainSummaryItem> _subItems;
  @override
  @JsonKey()
  List<ProfitLossMainSummaryItem> get subItems {
    if (_subItems is EqualUnmodifiableListView) return _subItems;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_subItems);
  }

  @override
  String toString() {
    return 'ProfitLossMainSummaryItem(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 _$ProfitLossMainSummaryItemImpl &&
            (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));
  }

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

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

abstract class _ProfitLossMainSummaryItem implements ProfitLossMainSummaryItem {
  const factory _ProfitLossMainSummaryItem({
    required final String id,
    required final String label,
    required final bool isBold,
    required final int todayNominal,
    required final double todayPct,
    required final int mtdNominal,
    required final double mtdPct,
    final List<ProfitLossMainSummaryItem> subItems,
  }) = _$ProfitLossMainSummaryItemImpl;

  @override
  String get id;
  @override
  String get label;
  @override
  bool get isBold;
  @override
  int get todayNominal;
  @override
  double get todayPct;
  @override
  int get mtdNominal;
  @override
  double get mtdPct;
  @override
  List<ProfitLossMainSummaryItem> get subItems;

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

/// @nodoc
mixin _$ProfitLossPurchasing {
  int get todayTotal => throw _privateConstructorUsedError;
  int get mtdTotal => throw _privateConstructorUsedError;
  int get todayRawMaterial => throw _privateConstructorUsedError;
  int get mtdRawMaterial => throw _privateConstructorUsedError;
  int get todayExpense => throw _privateConstructorUsedError;
  int get mtdExpense => throw _privateConstructorUsedError;
  List<ProfitLossPurchasingItem> get items =>
      throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $ProfitLossPurchasingCopyWith<$Res> {
  factory $ProfitLossPurchasingCopyWith(
    ProfitLossPurchasing value,
    $Res Function(ProfitLossPurchasing) then,
  ) = _$ProfitLossPurchasingCopyWithImpl<$Res, ProfitLossPurchasing>;
  @useResult
  $Res call({
    int todayTotal,
    int mtdTotal,
    int todayRawMaterial,
    int mtdRawMaterial,
    int todayExpense,
    int mtdExpense,
    List<ProfitLossPurchasingItem> items,
  });
}

/// @nodoc
class _$ProfitLossPurchasingCopyWithImpl<
  $Res,
  $Val extends ProfitLossPurchasing
>
    implements $ProfitLossPurchasingCopyWith<$Res> {
  _$ProfitLossPurchasingCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$ProfitLossPurchasingImplCopyWith<$Res>
    implements $ProfitLossPurchasingCopyWith<$Res> {
  factory _$$ProfitLossPurchasingImplCopyWith(
    _$ProfitLossPurchasingImpl value,
    $Res Function(_$ProfitLossPurchasingImpl) then,
  ) = __$$ProfitLossPurchasingImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    int todayTotal,
    int mtdTotal,
    int todayRawMaterial,
    int mtdRawMaterial,
    int todayExpense,
    int mtdExpense,
    List<ProfitLossPurchasingItem> items,
  });
}

/// @nodoc
class __$$ProfitLossPurchasingImplCopyWithImpl<$Res>
    extends _$ProfitLossPurchasingCopyWithImpl<$Res, _$ProfitLossPurchasingImpl>
    implements _$$ProfitLossPurchasingImplCopyWith<$Res> {
  __$$ProfitLossPurchasingImplCopyWithImpl(
    _$ProfitLossPurchasingImpl _value,
    $Res Function(_$ProfitLossPurchasingImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$ProfitLossPurchasingImpl implements _ProfitLossPurchasing {
  const _$ProfitLossPurchasingImpl({
    required this.todayTotal,
    required this.mtdTotal,
    required this.todayRawMaterial,
    required this.mtdRawMaterial,
    required this.todayExpense,
    required this.mtdExpense,
    final List<ProfitLossPurchasingItem> items = const [],
  }) : _items = items;

  @override
  final int todayTotal;
  @override
  final int mtdTotal;
  @override
  final int todayRawMaterial;
  @override
  final int mtdRawMaterial;
  @override
  final int todayExpense;
  @override
  final int mtdExpense;
  final List<ProfitLossPurchasingItem> _items;
  @override
  @JsonKey()
  List<ProfitLossPurchasingItem> get items {
    if (_items is EqualUnmodifiableListView) return _items;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_items);
  }

  @override
  String toString() {
    return 'ProfitLossPurchasing(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 _$ProfitLossPurchasingImpl &&
            (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));
  }

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

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

abstract class _ProfitLossPurchasing implements ProfitLossPurchasing {
  const factory _ProfitLossPurchasing({
    required final int todayTotal,
    required final int mtdTotal,
    required final int todayRawMaterial,
    required final int mtdRawMaterial,
    required final int todayExpense,
    required final int mtdExpense,
    final List<ProfitLossPurchasingItem> items,
  }) = _$ProfitLossPurchasingImpl;

  @override
  int get todayTotal;
  @override
  int get mtdTotal;
  @override
  int get todayRawMaterial;
  @override
  int get mtdRawMaterial;
  @override
  int get todayExpense;
  @override
  int get mtdExpense;
  @override
  List<ProfitLossPurchasingItem> get items;

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

/// @nodoc
mixin _$ProfitLossPurchasingItem {
  String get date => throw _privateConstructorUsedError;
  String get item => throw _privateConstructorUsedError;
  int get quantity => throw _privateConstructorUsedError;
  int get nominal => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $ProfitLossPurchasingItemCopyWith<$Res> {
  factory $ProfitLossPurchasingItemCopyWith(
    ProfitLossPurchasingItem value,
    $Res Function(ProfitLossPurchasingItem) then,
  ) = _$ProfitLossPurchasingItemCopyWithImpl<$Res, ProfitLossPurchasingItem>;
  @useResult
  $Res call({String date, String item, int quantity, int nominal});
}

/// @nodoc
class _$ProfitLossPurchasingItemCopyWithImpl<
  $Res,
  $Val extends ProfitLossPurchasingItem
>
    implements $ProfitLossPurchasingItemCopyWith<$Res> {
  _$ProfitLossPurchasingItemCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$ProfitLossPurchasingItemImplCopyWith<$Res>
    implements $ProfitLossPurchasingItemCopyWith<$Res> {
  factory _$$ProfitLossPurchasingItemImplCopyWith(
    _$ProfitLossPurchasingItemImpl value,
    $Res Function(_$ProfitLossPurchasingItemImpl) then,
  ) = __$$ProfitLossPurchasingItemImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({String date, String item, int quantity, int nominal});
}

/// @nodoc
class __$$ProfitLossPurchasingItemImplCopyWithImpl<$Res>
    extends
        _$ProfitLossPurchasingItemCopyWithImpl<
          $Res,
          _$ProfitLossPurchasingItemImpl
        >
    implements _$$ProfitLossPurchasingItemImplCopyWith<$Res> {
  __$$ProfitLossPurchasingItemImplCopyWithImpl(
    _$ProfitLossPurchasingItemImpl _value,
    $Res Function(_$ProfitLossPurchasingItemImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$ProfitLossPurchasingItemImpl implements _ProfitLossPurchasingItem {
  const _$ProfitLossPurchasingItemImpl({
    required this.date,
    required this.item,
    required this.quantity,
    required this.nominal,
  });

  @override
  final String date;
  @override
  final String item;
  @override
  final int quantity;
  @override
  final int nominal;

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

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ProfitLossPurchasingItemImpl &&
            (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));
  }

  @override
  int get hashCode => Object.hash(runtimeType, date, item, quantity, nominal);

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

abstract class _ProfitLossPurchasingItem implements ProfitLossPurchasingItem {
  const factory _ProfitLossPurchasingItem({
    required final String date,
    required final String item,
    required final int quantity,
    required final int nominal,
  }) = _$ProfitLossPurchasingItemImpl;

  @override
  String get date;
  @override
  String get item;
  @override
  int get quantity;
  @override
  int get nominal;

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

/// @nodoc
mixin _$ProfitLossOperationalExpense {
  String get item => throw _privateConstructorUsedError;
  int get nominal => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $ProfitLossOperationalExpenseCopyWith<$Res> {
  factory $ProfitLossOperationalExpenseCopyWith(
    ProfitLossOperationalExpense value,
    $Res Function(ProfitLossOperationalExpense) then,
  ) =
      _$ProfitLossOperationalExpenseCopyWithImpl<
        $Res,
        ProfitLossOperationalExpense
      >;
  @useResult
  $Res call({String item, int nominal});
}

/// @nodoc
class _$ProfitLossOperationalExpenseCopyWithImpl<
  $Res,
  $Val extends ProfitLossOperationalExpense
>
    implements $ProfitLossOperationalExpenseCopyWith<$Res> {
  _$ProfitLossOperationalExpenseCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$ProfitLossOperationalExpenseImplCopyWith<$Res>
    implements $ProfitLossOperationalExpenseCopyWith<$Res> {
  factory _$$ProfitLossOperationalExpenseImplCopyWith(
    _$ProfitLossOperationalExpenseImpl value,
    $Res Function(_$ProfitLossOperationalExpenseImpl) then,
  ) = __$$ProfitLossOperationalExpenseImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({String item, int nominal});
}

/// @nodoc
class __$$ProfitLossOperationalExpenseImplCopyWithImpl<$Res>
    extends
        _$ProfitLossOperationalExpenseCopyWithImpl<
          $Res,
          _$ProfitLossOperationalExpenseImpl
        >
    implements _$$ProfitLossOperationalExpenseImplCopyWith<$Res> {
  __$$ProfitLossOperationalExpenseImplCopyWithImpl(
    _$ProfitLossOperationalExpenseImpl _value,
    $Res Function(_$ProfitLossOperationalExpenseImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$ProfitLossOperationalExpenseImpl
    implements _ProfitLossOperationalExpense {
  const _$ProfitLossOperationalExpenseImpl({
    required this.item,
    required this.nominal,
  });

  @override
  final String item;
  @override
  final int nominal;

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

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

  @override
  int get hashCode => Object.hash(runtimeType, item, nominal);

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

abstract class _ProfitLossOperationalExpense
    implements ProfitLossOperationalExpense {
  const factory _ProfitLossOperationalExpense({
    required final String item,
    required final int nominal,
  }) = _$ProfitLossOperationalExpenseImpl;

  @override
  String get item;
  @override
  int get nominal;

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

/// @nodoc
mixin _$CategoryAnalytic {
  String get organizationId => throw _privateConstructorUsedError;
  String get outletId => throw _privateConstructorUsedError;
  String get outletName => throw _privateConstructorUsedError;
  String get dateFrom => throw _privateConstructorUsedError;
  String get dateTo => throw _privateConstructorUsedError;
  List<CategoryAnalyticItem> get data => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $CategoryAnalyticCopyWith<$Res> {
  factory $CategoryAnalyticCopyWith(
    CategoryAnalytic value,
    $Res Function(CategoryAnalytic) then,
  ) = _$CategoryAnalyticCopyWithImpl<$Res, CategoryAnalytic>;
  @useResult
  $Res call({
    String organizationId,
    String outletId,
    String outletName,
    String dateFrom,
    String dateTo,
    List<CategoryAnalyticItem> data,
  });
}

/// @nodoc
class _$CategoryAnalyticCopyWithImpl<$Res, $Val extends CategoryAnalytic>
    implements $CategoryAnalyticCopyWith<$Res> {
  _$CategoryAnalyticCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$CategoryAnalyticImplCopyWith<$Res>
    implements $CategoryAnalyticCopyWith<$Res> {
  factory _$$CategoryAnalyticImplCopyWith(
    _$CategoryAnalyticImpl value,
    $Res Function(_$CategoryAnalyticImpl) then,
  ) = __$$CategoryAnalyticImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    String organizationId,
    String outletId,
    String outletName,
    String dateFrom,
    String dateTo,
    List<CategoryAnalyticItem> data,
  });
}

/// @nodoc
class __$$CategoryAnalyticImplCopyWithImpl<$Res>
    extends _$CategoryAnalyticCopyWithImpl<$Res, _$CategoryAnalyticImpl>
    implements _$$CategoryAnalyticImplCopyWith<$Res> {
  __$$CategoryAnalyticImplCopyWithImpl(
    _$CategoryAnalyticImpl _value,
    $Res Function(_$CategoryAnalyticImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$CategoryAnalyticImpl implements _CategoryAnalytic {
  const _$CategoryAnalyticImpl({
    required this.organizationId,
    required this.outletId,
    required this.outletName,
    required this.dateFrom,
    required this.dateTo,
    required final List<CategoryAnalyticItem> data,
  }) : _data = data;

  @override
  final String organizationId;
  @override
  final String outletId;
  @override
  final String outletName;
  @override
  final String dateFrom;
  @override
  final String dateTo;
  final List<CategoryAnalyticItem> _data;
  @override
  List<CategoryAnalyticItem> get data {
    if (_data is EqualUnmodifiableListView) return _data;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_data);
  }

  @override
  String toString() {
    return 'CategoryAnalytic(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 _$CategoryAnalyticImpl &&
            (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));
  }

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

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

abstract class _CategoryAnalytic implements CategoryAnalytic {
  const factory _CategoryAnalytic({
    required final String organizationId,
    required final String outletId,
    required final String outletName,
    required final String dateFrom,
    required final String dateTo,
    required final List<CategoryAnalyticItem> data,
  }) = _$CategoryAnalyticImpl;

  @override
  String get organizationId;
  @override
  String get outletId;
  @override
  String get outletName;
  @override
  String get dateFrom;
  @override
  String get dateTo;
  @override
  List<CategoryAnalyticItem> get data;

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

/// @nodoc
mixin _$CategoryAnalyticItem {
  String get categoryId => throw _privateConstructorUsedError;
  String get categoryName => throw _privateConstructorUsedError;
  int get totalRevenue => throw _privateConstructorUsedError;
  int get totalQuantity => throw _privateConstructorUsedError;
  int get productCount => throw _privateConstructorUsedError;
  int get orderCount => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $CategoryAnalyticItemCopyWith<$Res> {
  factory $CategoryAnalyticItemCopyWith(
    CategoryAnalyticItem value,
    $Res Function(CategoryAnalyticItem) then,
  ) = _$CategoryAnalyticItemCopyWithImpl<$Res, CategoryAnalyticItem>;
  @useResult
  $Res call({
    String categoryId,
    String categoryName,
    int totalRevenue,
    int totalQuantity,
    int productCount,
    int orderCount,
  });
}

/// @nodoc
class _$CategoryAnalyticItemCopyWithImpl<
  $Res,
  $Val extends CategoryAnalyticItem
>
    implements $CategoryAnalyticItemCopyWith<$Res> {
  _$CategoryAnalyticItemCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$CategoryAnalyticItemImplCopyWith<$Res>
    implements $CategoryAnalyticItemCopyWith<$Res> {
  factory _$$CategoryAnalyticItemImplCopyWith(
    _$CategoryAnalyticItemImpl value,
    $Res Function(_$CategoryAnalyticItemImpl) then,
  ) = __$$CategoryAnalyticItemImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    String categoryId,
    String categoryName,
    int totalRevenue,
    int totalQuantity,
    int productCount,
    int orderCount,
  });
}

/// @nodoc
class __$$CategoryAnalyticItemImplCopyWithImpl<$Res>
    extends _$CategoryAnalyticItemCopyWithImpl<$Res, _$CategoryAnalyticItemImpl>
    implements _$$CategoryAnalyticItemImplCopyWith<$Res> {
  __$$CategoryAnalyticItemImplCopyWithImpl(
    _$CategoryAnalyticItemImpl _value,
    $Res Function(_$CategoryAnalyticItemImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$CategoryAnalyticItemImpl implements _CategoryAnalyticItem {
  const _$CategoryAnalyticItemImpl({
    required this.categoryId,
    required this.categoryName,
    required this.totalRevenue,
    required this.totalQuantity,
    required this.productCount,
    required this.orderCount,
  });

  @override
  final String categoryId;
  @override
  final String categoryName;
  @override
  final int totalRevenue;
  @override
  final int totalQuantity;
  @override
  final int productCount;
  @override
  final int orderCount;

  @override
  String toString() {
    return 'CategoryAnalyticItem(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 _$CategoryAnalyticItemImpl &&
            (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));
  }

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

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

abstract class _CategoryAnalyticItem implements CategoryAnalyticItem {
  const factory _CategoryAnalyticItem({
    required final String categoryId,
    required final String categoryName,
    required final int totalRevenue,
    required final int totalQuantity,
    required final int productCount,
    required final int orderCount,
  }) = _$CategoryAnalyticItemImpl;

  @override
  String get categoryId;
  @override
  String get categoryName;
  @override
  int get totalRevenue;
  @override
  int get totalQuantity;
  @override
  int get productCount;
  @override
  int get orderCount;

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

/// @nodoc
mixin _$InventoryAnalytic {
  InventorySummary get summary => throw _privateConstructorUsedError;
  List<InventoryProduct> get products => throw _privateConstructorUsedError;
  List<InventoryIngredient> get ingredients =>
      throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $InventoryAnalyticCopyWith<$Res> {
  factory $InventoryAnalyticCopyWith(
    InventoryAnalytic value,
    $Res Function(InventoryAnalytic) then,
  ) = _$InventoryAnalyticCopyWithImpl<$Res, InventoryAnalytic>;
  @useResult
  $Res call({
    InventorySummary summary,
    List<InventoryProduct> products,
    List<InventoryIngredient> ingredients,
  });

  $InventorySummaryCopyWith<$Res> get summary;
}

/// @nodoc
class _$InventoryAnalyticCopyWithImpl<$Res, $Val extends InventoryAnalytic>
    implements $InventoryAnalyticCopyWith<$Res> {
  _$InventoryAnalyticCopyWithImpl(this._value, this._then);

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

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

  /// Create a copy of InventoryAnalytic
  /// with the given fields replaced by the non-null parameter values.
  @override
  @pragma('vm:prefer-inline')
  $InventorySummaryCopyWith<$Res> get summary {
    return $InventorySummaryCopyWith<$Res>(_value.summary, (value) {
      return _then(_value.copyWith(summary: value) as $Val);
    });
  }
}

/// @nodoc
abstract class _$$InventoryAnalyticImplCopyWith<$Res>
    implements $InventoryAnalyticCopyWith<$Res> {
  factory _$$InventoryAnalyticImplCopyWith(
    _$InventoryAnalyticImpl value,
    $Res Function(_$InventoryAnalyticImpl) then,
  ) = __$$InventoryAnalyticImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    InventorySummary summary,
    List<InventoryProduct> products,
    List<InventoryIngredient> ingredients,
  });

  @override
  $InventorySummaryCopyWith<$Res> get summary;
}

/// @nodoc
class __$$InventoryAnalyticImplCopyWithImpl<$Res>
    extends _$InventoryAnalyticCopyWithImpl<$Res, _$InventoryAnalyticImpl>
    implements _$$InventoryAnalyticImplCopyWith<$Res> {
  __$$InventoryAnalyticImplCopyWithImpl(
    _$InventoryAnalyticImpl _value,
    $Res Function(_$InventoryAnalyticImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$InventoryAnalyticImpl implements _InventoryAnalytic {
  const _$InventoryAnalyticImpl({
    required this.summary,
    required final List<InventoryProduct> products,
    required final List<InventoryIngredient> ingredients,
  }) : _products = products,
       _ingredients = ingredients;

  @override
  final InventorySummary summary;
  final List<InventoryProduct> _products;
  @override
  List<InventoryProduct> get products {
    if (_products is EqualUnmodifiableListView) return _products;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_products);
  }

  final List<InventoryIngredient> _ingredients;
  @override
  List<InventoryIngredient> get ingredients {
    if (_ingredients is EqualUnmodifiableListView) return _ingredients;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_ingredients);
  }

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

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

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

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

abstract class _InventoryAnalytic implements InventoryAnalytic {
  const factory _InventoryAnalytic({
    required final InventorySummary summary,
    required final List<InventoryProduct> products,
    required final List<InventoryIngredient> ingredients,
  }) = _$InventoryAnalyticImpl;

  @override
  InventorySummary get summary;
  @override
  List<InventoryProduct> get products;
  @override
  List<InventoryIngredient> get ingredients;

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

/// @nodoc
mixin _$InventorySummary {
  int get totalProducts => throw _privateConstructorUsedError;
  int get totalIngredients => throw _privateConstructorUsedError;
  int get totalValue => throw _privateConstructorUsedError;
  int get lowStockProducts => throw _privateConstructorUsedError;
  int get lowStockIngredients => throw _privateConstructorUsedError;
  int get zeroStockProducts => throw _privateConstructorUsedError;
  int get zeroStockIngredients => throw _privateConstructorUsedError;
  int get totalSoldProducts => throw _privateConstructorUsedError;
  int get totalSoldIngredients => throw _privateConstructorUsedError;
  String get outletId => throw _privateConstructorUsedError;
  String get outletName => throw _privateConstructorUsedError;
  String get generatedAt => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $InventorySummaryCopyWith<$Res> {
  factory $InventorySummaryCopyWith(
    InventorySummary value,
    $Res Function(InventorySummary) then,
  ) = _$InventorySummaryCopyWithImpl<$Res, InventorySummary>;
  @useResult
  $Res call({
    int totalProducts,
    int totalIngredients,
    int totalValue,
    int lowStockProducts,
    int lowStockIngredients,
    int zeroStockProducts,
    int zeroStockIngredients,
    int totalSoldProducts,
    int totalSoldIngredients,
    String outletId,
    String outletName,
    String generatedAt,
  });
}

/// @nodoc
class _$InventorySummaryCopyWithImpl<$Res, $Val extends InventorySummary>
    implements $InventorySummaryCopyWith<$Res> {
  _$InventorySummaryCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$InventorySummaryImplCopyWith<$Res>
    implements $InventorySummaryCopyWith<$Res> {
  factory _$$InventorySummaryImplCopyWith(
    _$InventorySummaryImpl value,
    $Res Function(_$InventorySummaryImpl) then,
  ) = __$$InventorySummaryImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    int totalProducts,
    int totalIngredients,
    int totalValue,
    int lowStockProducts,
    int lowStockIngredients,
    int zeroStockProducts,
    int zeroStockIngredients,
    int totalSoldProducts,
    int totalSoldIngredients,
    String outletId,
    String outletName,
    String generatedAt,
  });
}

/// @nodoc
class __$$InventorySummaryImplCopyWithImpl<$Res>
    extends _$InventorySummaryCopyWithImpl<$Res, _$InventorySummaryImpl>
    implements _$$InventorySummaryImplCopyWith<$Res> {
  __$$InventorySummaryImplCopyWithImpl(
    _$InventorySummaryImpl _value,
    $Res Function(_$InventorySummaryImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$InventorySummaryImpl implements _InventorySummary {
  const _$InventorySummaryImpl({
    required this.totalProducts,
    required this.totalIngredients,
    required this.totalValue,
    required this.lowStockProducts,
    required this.lowStockIngredients,
    required this.zeroStockProducts,
    required this.zeroStockIngredients,
    required this.totalSoldProducts,
    required this.totalSoldIngredients,
    required this.outletId,
    required this.outletName,
    required this.generatedAt,
  });

  @override
  final int totalProducts;
  @override
  final int totalIngredients;
  @override
  final int totalValue;
  @override
  final int lowStockProducts;
  @override
  final int lowStockIngredients;
  @override
  final int zeroStockProducts;
  @override
  final int zeroStockIngredients;
  @override
  final int totalSoldProducts;
  @override
  final int totalSoldIngredients;
  @override
  final String outletId;
  @override
  final String outletName;
  @override
  final String generatedAt;

  @override
  String toString() {
    return 'InventorySummary(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 _$InventorySummaryImpl &&
            (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));
  }

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

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

abstract class _InventorySummary implements InventorySummary {
  const factory _InventorySummary({
    required final int totalProducts,
    required final int totalIngredients,
    required final int totalValue,
    required final int lowStockProducts,
    required final int lowStockIngredients,
    required final int zeroStockProducts,
    required final int zeroStockIngredients,
    required final int totalSoldProducts,
    required final int totalSoldIngredients,
    required final String outletId,
    required final String outletName,
    required final String generatedAt,
  }) = _$InventorySummaryImpl;

  @override
  int get totalProducts;
  @override
  int get totalIngredients;
  @override
  int get totalValue;
  @override
  int get lowStockProducts;
  @override
  int get lowStockIngredients;
  @override
  int get zeroStockProducts;
  @override
  int get zeroStockIngredients;
  @override
  int get totalSoldProducts;
  @override
  int get totalSoldIngredients;
  @override
  String get outletId;
  @override
  String get outletName;
  @override
  String get generatedAt;

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

/// @nodoc
mixin _$InventoryProduct {
  String get id => throw _privateConstructorUsedError;
  String get productId => throw _privateConstructorUsedError;
  String get productName => throw _privateConstructorUsedError;
  String get categoryName => throw _privateConstructorUsedError;
  int get quantity => throw _privateConstructorUsedError;
  int get reorderLevel => throw _privateConstructorUsedError;
  int get unitCost => throw _privateConstructorUsedError;
  int get totalValue => throw _privateConstructorUsedError;
  int get totalIn => throw _privateConstructorUsedError;
  int get totalOut => throw _privateConstructorUsedError;
  bool get isLowStock => throw _privateConstructorUsedError;
  bool get isZeroStock => throw _privateConstructorUsedError;
  String get updatedAt => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $InventoryProductCopyWith<$Res> {
  factory $InventoryProductCopyWith(
    InventoryProduct value,
    $Res Function(InventoryProduct) then,
  ) = _$InventoryProductCopyWithImpl<$Res, InventoryProduct>;
  @useResult
  $Res call({
    String id,
    String productId,
    String productName,
    String categoryName,
    int quantity,
    int reorderLevel,
    int unitCost,
    int totalValue,
    int totalIn,
    int totalOut,
    bool isLowStock,
    bool isZeroStock,
    String updatedAt,
  });
}

/// @nodoc
class _$InventoryProductCopyWithImpl<$Res, $Val extends InventoryProduct>
    implements $InventoryProductCopyWith<$Res> {
  _$InventoryProductCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$InventoryProductImplCopyWith<$Res>
    implements $InventoryProductCopyWith<$Res> {
  factory _$$InventoryProductImplCopyWith(
    _$InventoryProductImpl value,
    $Res Function(_$InventoryProductImpl) then,
  ) = __$$InventoryProductImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    String id,
    String productId,
    String productName,
    String categoryName,
    int quantity,
    int reorderLevel,
    int unitCost,
    int totalValue,
    int totalIn,
    int totalOut,
    bool isLowStock,
    bool isZeroStock,
    String updatedAt,
  });
}

/// @nodoc
class __$$InventoryProductImplCopyWithImpl<$Res>
    extends _$InventoryProductCopyWithImpl<$Res, _$InventoryProductImpl>
    implements _$$InventoryProductImplCopyWith<$Res> {
  __$$InventoryProductImplCopyWithImpl(
    _$InventoryProductImpl _value,
    $Res Function(_$InventoryProductImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$InventoryProductImpl implements _InventoryProduct {
  const _$InventoryProductImpl({
    required this.id,
    required this.productId,
    required this.productName,
    required this.categoryName,
    required this.quantity,
    required this.reorderLevel,
    required this.unitCost,
    required this.totalValue,
    required this.totalIn,
    required this.totalOut,
    required this.isLowStock,
    required this.isZeroStock,
    required this.updatedAt,
  });

  @override
  final String id;
  @override
  final String productId;
  @override
  final String productName;
  @override
  final String categoryName;
  @override
  final int quantity;
  @override
  final int reorderLevel;
  @override
  final int unitCost;
  @override
  final int totalValue;
  @override
  final int totalIn;
  @override
  final int totalOut;
  @override
  final bool isLowStock;
  @override
  final bool isZeroStock;
  @override
  final String updatedAt;

  @override
  String toString() {
    return 'InventoryProduct(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 _$InventoryProductImpl &&
            (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));
  }

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

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

abstract class _InventoryProduct implements InventoryProduct {
  const factory _InventoryProduct({
    required final String id,
    required final String productId,
    required final String productName,
    required final String categoryName,
    required final int quantity,
    required final int reorderLevel,
    required final int unitCost,
    required final int totalValue,
    required final int totalIn,
    required final int totalOut,
    required final bool isLowStock,
    required final bool isZeroStock,
    required final String updatedAt,
  }) = _$InventoryProductImpl;

  @override
  String get id;
  @override
  String get productId;
  @override
  String get productName;
  @override
  String get categoryName;
  @override
  int get quantity;
  @override
  int get reorderLevel;
  @override
  int get unitCost;
  @override
  int get totalValue;
  @override
  int get totalIn;
  @override
  int get totalOut;
  @override
  bool get isLowStock;
  @override
  bool get isZeroStock;
  @override
  String get updatedAt;

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

/// @nodoc
mixin _$InventoryIngredient {
  String get id => throw _privateConstructorUsedError;
  String get ingredientId => throw _privateConstructorUsedError;
  String get ingredientName => throw _privateConstructorUsedError;
  String get unitName => throw _privateConstructorUsedError;
  int get quantity => throw _privateConstructorUsedError;
  int get reorderLevel => throw _privateConstructorUsedError;
  int get unitCost => throw _privateConstructorUsedError;
  int get totalValue => throw _privateConstructorUsedError;
  int get totalIn => throw _privateConstructorUsedError;
  int get totalOut => throw _privateConstructorUsedError;
  bool get isLowStock => throw _privateConstructorUsedError;
  bool get isZeroStock => throw _privateConstructorUsedError;
  String get updatedAt => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $InventoryIngredientCopyWith<$Res> {
  factory $InventoryIngredientCopyWith(
    InventoryIngredient value,
    $Res Function(InventoryIngredient) then,
  ) = _$InventoryIngredientCopyWithImpl<$Res, InventoryIngredient>;
  @useResult
  $Res call({
    String id,
    String ingredientId,
    String ingredientName,
    String unitName,
    int quantity,
    int reorderLevel,
    int unitCost,
    int totalValue,
    int totalIn,
    int totalOut,
    bool isLowStock,
    bool isZeroStock,
    String updatedAt,
  });
}

/// @nodoc
class _$InventoryIngredientCopyWithImpl<$Res, $Val extends InventoryIngredient>
    implements $InventoryIngredientCopyWith<$Res> {
  _$InventoryIngredientCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$InventoryIngredientImplCopyWith<$Res>
    implements $InventoryIngredientCopyWith<$Res> {
  factory _$$InventoryIngredientImplCopyWith(
    _$InventoryIngredientImpl value,
    $Res Function(_$InventoryIngredientImpl) then,
  ) = __$$InventoryIngredientImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    String id,
    String ingredientId,
    String ingredientName,
    String unitName,
    int quantity,
    int reorderLevel,
    int unitCost,
    int totalValue,
    int totalIn,
    int totalOut,
    bool isLowStock,
    bool isZeroStock,
    String updatedAt,
  });
}

/// @nodoc
class __$$InventoryIngredientImplCopyWithImpl<$Res>
    extends _$InventoryIngredientCopyWithImpl<$Res, _$InventoryIngredientImpl>
    implements _$$InventoryIngredientImplCopyWith<$Res> {
  __$$InventoryIngredientImplCopyWithImpl(
    _$InventoryIngredientImpl _value,
    $Res Function(_$InventoryIngredientImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$InventoryIngredientImpl implements _InventoryIngredient {
  const _$InventoryIngredientImpl({
    required this.id,
    required this.ingredientId,
    required this.ingredientName,
    required this.unitName,
    required this.quantity,
    required this.reorderLevel,
    required this.unitCost,
    required this.totalValue,
    required this.totalIn,
    required this.totalOut,
    required this.isLowStock,
    required this.isZeroStock,
    required this.updatedAt,
  });

  @override
  final String id;
  @override
  final String ingredientId;
  @override
  final String ingredientName;
  @override
  final String unitName;
  @override
  final int quantity;
  @override
  final int reorderLevel;
  @override
  final int unitCost;
  @override
  final int totalValue;
  @override
  final int totalIn;
  @override
  final int totalOut;
  @override
  final bool isLowStock;
  @override
  final bool isZeroStock;
  @override
  final String updatedAt;

  @override
  String toString() {
    return 'InventoryIngredient(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 _$InventoryIngredientImpl &&
            (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));
  }

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

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

abstract class _InventoryIngredient implements InventoryIngredient {
  const factory _InventoryIngredient({
    required final String id,
    required final String ingredientId,
    required final String ingredientName,
    required final String unitName,
    required final int quantity,
    required final int reorderLevel,
    required final int unitCost,
    required final int totalValue,
    required final int totalIn,
    required final int totalOut,
    required final bool isLowStock,
    required final bool isZeroStock,
    required final String updatedAt,
  }) = _$InventoryIngredientImpl;

  @override
  String get id;
  @override
  String get ingredientId;
  @override
  String get ingredientName;
  @override
  String get unitName;
  @override
  int get quantity;
  @override
  int get reorderLevel;
  @override
  int get unitCost;
  @override
  int get totalValue;
  @override
  int get totalIn;
  @override
  int get totalOut;
  @override
  bool get isLowStock;
  @override
  bool get isZeroStock;
  @override
  String get updatedAt;

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

/// @nodoc
mixin _$DashboardAnalytic {
  String get organizationId => throw _privateConstructorUsedError;
  String get outletId => throw _privateConstructorUsedError;
  String get outletName => throw _privateConstructorUsedError;
  String get dateFrom => throw _privateConstructorUsedError;
  String get dateTo => throw _privateConstructorUsedError;
  DashboardOverview get overview => throw _privateConstructorUsedError;
  List<DashboardTopProduct> get topProducts =>
      throw _privateConstructorUsedError;
  List<DashboardPaymentMethod> get paymentMethods =>
      throw _privateConstructorUsedError;
  List<DashboardRecentSale> get recentSales =>
      throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $DashboardAnalyticCopyWith<$Res> {
  factory $DashboardAnalyticCopyWith(
    DashboardAnalytic value,
    $Res Function(DashboardAnalytic) then,
  ) = _$DashboardAnalyticCopyWithImpl<$Res, DashboardAnalytic>;
  @useResult
  $Res call({
    String organizationId,
    String outletId,
    String outletName,
    String dateFrom,
    String dateTo,
    DashboardOverview overview,
    List<DashboardTopProduct> topProducts,
    List<DashboardPaymentMethod> paymentMethods,
    List<DashboardRecentSale> recentSales,
  });

  $DashboardOverviewCopyWith<$Res> get overview;
}

/// @nodoc
class _$DashboardAnalyticCopyWithImpl<$Res, $Val extends DashboardAnalytic>
    implements $DashboardAnalyticCopyWith<$Res> {
  _$DashboardAnalyticCopyWithImpl(this._value, this._then);

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

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

  /// Create a copy of DashboardAnalytic
  /// with the given fields replaced by the non-null parameter values.
  @override
  @pragma('vm:prefer-inline')
  $DashboardOverviewCopyWith<$Res> get overview {
    return $DashboardOverviewCopyWith<$Res>(_value.overview, (value) {
      return _then(_value.copyWith(overview: value) as $Val);
    });
  }
}

/// @nodoc
abstract class _$$DashboardAnalyticImplCopyWith<$Res>
    implements $DashboardAnalyticCopyWith<$Res> {
  factory _$$DashboardAnalyticImplCopyWith(
    _$DashboardAnalyticImpl value,
    $Res Function(_$DashboardAnalyticImpl) then,
  ) = __$$DashboardAnalyticImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    String organizationId,
    String outletId,
    String outletName,
    String dateFrom,
    String dateTo,
    DashboardOverview overview,
    List<DashboardTopProduct> topProducts,
    List<DashboardPaymentMethod> paymentMethods,
    List<DashboardRecentSale> recentSales,
  });

  @override
  $DashboardOverviewCopyWith<$Res> get overview;
}

/// @nodoc
class __$$DashboardAnalyticImplCopyWithImpl<$Res>
    extends _$DashboardAnalyticCopyWithImpl<$Res, _$DashboardAnalyticImpl>
    implements _$$DashboardAnalyticImplCopyWith<$Res> {
  __$$DashboardAnalyticImplCopyWithImpl(
    _$DashboardAnalyticImpl _value,
    $Res Function(_$DashboardAnalyticImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$DashboardAnalyticImpl implements _DashboardAnalytic {
  const _$DashboardAnalyticImpl({
    required this.organizationId,
    required this.outletId,
    required this.outletName,
    required this.dateFrom,
    required this.dateTo,
    required this.overview,
    required final List<DashboardTopProduct> topProducts,
    required final List<DashboardPaymentMethod> paymentMethods,
    required final List<DashboardRecentSale> recentSales,
  }) : _topProducts = topProducts,
       _paymentMethods = paymentMethods,
       _recentSales = recentSales;

  @override
  final String organizationId;
  @override
  final String outletId;
  @override
  final String outletName;
  @override
  final String dateFrom;
  @override
  final String dateTo;
  @override
  final DashboardOverview overview;
  final List<DashboardTopProduct> _topProducts;
  @override
  List<DashboardTopProduct> get topProducts {
    if (_topProducts is EqualUnmodifiableListView) return _topProducts;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_topProducts);
  }

  final List<DashboardPaymentMethod> _paymentMethods;
  @override
  List<DashboardPaymentMethod> get paymentMethods {
    if (_paymentMethods is EqualUnmodifiableListView) return _paymentMethods;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_paymentMethods);
  }

  final List<DashboardRecentSale> _recentSales;
  @override
  List<DashboardRecentSale> get recentSales {
    if (_recentSales is EqualUnmodifiableListView) return _recentSales;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_recentSales);
  }

  @override
  String toString() {
    return 'DashboardAnalytic(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 _$DashboardAnalyticImpl &&
            (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,
            ));
  }

  @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 DashboardAnalytic
  /// with the given fields replaced by the non-null parameter values.
  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  @pragma('vm:prefer-inline')
  _$$DashboardAnalyticImplCopyWith<_$DashboardAnalyticImpl> get copyWith =>
      __$$DashboardAnalyticImplCopyWithImpl<_$DashboardAnalyticImpl>(
        this,
        _$identity,
      );
}

abstract class _DashboardAnalytic implements DashboardAnalytic {
  const factory _DashboardAnalytic({
    required final String organizationId,
    required final String outletId,
    required final String outletName,
    required final String dateFrom,
    required final String dateTo,
    required final DashboardOverview overview,
    required final List<DashboardTopProduct> topProducts,
    required final List<DashboardPaymentMethod> paymentMethods,
    required final List<DashboardRecentSale> recentSales,
  }) = _$DashboardAnalyticImpl;

  @override
  String get organizationId;
  @override
  String get outletId;
  @override
  String get outletName;
  @override
  String get dateFrom;
  @override
  String get dateTo;
  @override
  DashboardOverview get overview;
  @override
  List<DashboardTopProduct> get topProducts;
  @override
  List<DashboardPaymentMethod> get paymentMethods;
  @override
  List<DashboardRecentSale> get recentSales;

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

/// @nodoc
mixin _$DashboardOverview {
  int get totalSales => throw _privateConstructorUsedError;
  int get totalOrders => throw _privateConstructorUsedError;
  double get averageOrderValue => throw _privateConstructorUsedError;
  int get totalCustomers => throw _privateConstructorUsedError;
  int get voidedOrders => throw _privateConstructorUsedError;
  int get refundedOrders => throw _privateConstructorUsedError;
  int get totalItemSold => throw _privateConstructorUsedError;
  int get totalLowStock => throw _privateConstructorUsedError;
  int get totalProductActive => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $DashboardOverviewCopyWith<$Res> {
  factory $DashboardOverviewCopyWith(
    DashboardOverview value,
    $Res Function(DashboardOverview) then,
  ) = _$DashboardOverviewCopyWithImpl<$Res, DashboardOverview>;
  @useResult
  $Res call({
    int totalSales,
    int totalOrders,
    double averageOrderValue,
    int totalCustomers,
    int voidedOrders,
    int refundedOrders,
    int totalItemSold,
    int totalLowStock,
    int totalProductActive,
  });
}

/// @nodoc
class _$DashboardOverviewCopyWithImpl<$Res, $Val extends DashboardOverview>
    implements $DashboardOverviewCopyWith<$Res> {
  _$DashboardOverviewCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$DashboardOverviewImplCopyWith<$Res>
    implements $DashboardOverviewCopyWith<$Res> {
  factory _$$DashboardOverviewImplCopyWith(
    _$DashboardOverviewImpl value,
    $Res Function(_$DashboardOverviewImpl) then,
  ) = __$$DashboardOverviewImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    int totalSales,
    int totalOrders,
    double averageOrderValue,
    int totalCustomers,
    int voidedOrders,
    int refundedOrders,
    int totalItemSold,
    int totalLowStock,
    int totalProductActive,
  });
}

/// @nodoc
class __$$DashboardOverviewImplCopyWithImpl<$Res>
    extends _$DashboardOverviewCopyWithImpl<$Res, _$DashboardOverviewImpl>
    implements _$$DashboardOverviewImplCopyWith<$Res> {
  __$$DashboardOverviewImplCopyWithImpl(
    _$DashboardOverviewImpl _value,
    $Res Function(_$DashboardOverviewImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$DashboardOverviewImpl implements _DashboardOverview {
  const _$DashboardOverviewImpl({
    required this.totalSales,
    required this.totalOrders,
    required this.averageOrderValue,
    required this.totalCustomers,
    required this.voidedOrders,
    required this.refundedOrders,
    required this.totalItemSold,
    required this.totalLowStock,
    required this.totalProductActive,
  });

  @override
  final int totalSales;
  @override
  final int totalOrders;
  @override
  final double averageOrderValue;
  @override
  final int totalCustomers;
  @override
  final int voidedOrders;
  @override
  final int refundedOrders;
  @override
  final int totalItemSold;
  @override
  final int totalLowStock;
  @override
  final int totalProductActive;

  @override
  String toString() {
    return 'DashboardOverview(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 _$DashboardOverviewImpl &&
            (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));
  }

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

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

abstract class _DashboardOverview implements DashboardOverview {
  const factory _DashboardOverview({
    required final int totalSales,
    required final int totalOrders,
    required final double averageOrderValue,
    required final int totalCustomers,
    required final int voidedOrders,
    required final int refundedOrders,
    required final int totalItemSold,
    required final int totalLowStock,
    required final int totalProductActive,
  }) = _$DashboardOverviewImpl;

  @override
  int get totalSales;
  @override
  int get totalOrders;
  @override
  double get averageOrderValue;
  @override
  int get totalCustomers;
  @override
  int get voidedOrders;
  @override
  int get refundedOrders;
  @override
  int get totalItemSold;
  @override
  int get totalLowStock;
  @override
  int get totalProductActive;

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

/// @nodoc
mixin _$DashboardTopProduct {
  String get productId => throw _privateConstructorUsedError;
  String get productName => throw _privateConstructorUsedError;
  String get categoryId => throw _privateConstructorUsedError;
  String get categoryName => throw _privateConstructorUsedError;
  int get quantitySold => throw _privateConstructorUsedError;
  int get revenue => throw _privateConstructorUsedError;
  double get averagePrice => throw _privateConstructorUsedError;
  int get orderCount => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $DashboardTopProductCopyWith<$Res> {
  factory $DashboardTopProductCopyWith(
    DashboardTopProduct value,
    $Res Function(DashboardTopProduct) then,
  ) = _$DashboardTopProductCopyWithImpl<$Res, DashboardTopProduct>;
  @useResult
  $Res call({
    String productId,
    String productName,
    String categoryId,
    String categoryName,
    int quantitySold,
    int revenue,
    double averagePrice,
    int orderCount,
  });
}

/// @nodoc
class _$DashboardTopProductCopyWithImpl<$Res, $Val extends DashboardTopProduct>
    implements $DashboardTopProductCopyWith<$Res> {
  _$DashboardTopProductCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$DashboardTopProductImplCopyWith<$Res>
    implements $DashboardTopProductCopyWith<$Res> {
  factory _$$DashboardTopProductImplCopyWith(
    _$DashboardTopProductImpl value,
    $Res Function(_$DashboardTopProductImpl) then,
  ) = __$$DashboardTopProductImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    String productId,
    String productName,
    String categoryId,
    String categoryName,
    int quantitySold,
    int revenue,
    double averagePrice,
    int orderCount,
  });
}

/// @nodoc
class __$$DashboardTopProductImplCopyWithImpl<$Res>
    extends _$DashboardTopProductCopyWithImpl<$Res, _$DashboardTopProductImpl>
    implements _$$DashboardTopProductImplCopyWith<$Res> {
  __$$DashboardTopProductImplCopyWithImpl(
    _$DashboardTopProductImpl _value,
    $Res Function(_$DashboardTopProductImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$DashboardTopProductImpl implements _DashboardTopProduct {
  const _$DashboardTopProductImpl({
    required this.productId,
    required this.productName,
    required this.categoryId,
    required this.categoryName,
    required this.quantitySold,
    required this.revenue,
    required this.averagePrice,
    required this.orderCount,
  });

  @override
  final String productId;
  @override
  final String productName;
  @override
  final String categoryId;
  @override
  final String categoryName;
  @override
  final int quantitySold;
  @override
  final int revenue;
  @override
  final double averagePrice;
  @override
  final int orderCount;

  @override
  String toString() {
    return 'DashboardTopProduct(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 _$DashboardTopProductImpl &&
            (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));
  }

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

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

abstract class _DashboardTopProduct implements DashboardTopProduct {
  const factory _DashboardTopProduct({
    required final String productId,
    required final String productName,
    required final String categoryId,
    required final String categoryName,
    required final int quantitySold,
    required final int revenue,
    required final double averagePrice,
    required final int orderCount,
  }) = _$DashboardTopProductImpl;

  @override
  String get productId;
  @override
  String get productName;
  @override
  String get categoryId;
  @override
  String get categoryName;
  @override
  int get quantitySold;
  @override
  int get revenue;
  @override
  double get averagePrice;
  @override
  int get orderCount;

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

/// @nodoc
mixin _$DashboardPaymentMethod {
  String get paymentMethodId => throw _privateConstructorUsedError;
  String get paymentMethodName => throw _privateConstructorUsedError;
  String get paymentMethodType => throw _privateConstructorUsedError;
  int get totalAmount => throw _privateConstructorUsedError;
  int get orderCount => throw _privateConstructorUsedError;
  int get paymentCount => throw _privateConstructorUsedError;
  double get percentage => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $DashboardPaymentMethodCopyWith<$Res> {
  factory $DashboardPaymentMethodCopyWith(
    DashboardPaymentMethod value,
    $Res Function(DashboardPaymentMethod) then,
  ) = _$DashboardPaymentMethodCopyWithImpl<$Res, DashboardPaymentMethod>;
  @useResult
  $Res call({
    String paymentMethodId,
    String paymentMethodName,
    String paymentMethodType,
    int totalAmount,
    int orderCount,
    int paymentCount,
    double percentage,
  });
}

/// @nodoc
class _$DashboardPaymentMethodCopyWithImpl<
  $Res,
  $Val extends DashboardPaymentMethod
>
    implements $DashboardPaymentMethodCopyWith<$Res> {
  _$DashboardPaymentMethodCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$DashboardPaymentMethodImplCopyWith<$Res>
    implements $DashboardPaymentMethodCopyWith<$Res> {
  factory _$$DashboardPaymentMethodImplCopyWith(
    _$DashboardPaymentMethodImpl value,
    $Res Function(_$DashboardPaymentMethodImpl) then,
  ) = __$$DashboardPaymentMethodImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    String paymentMethodId,
    String paymentMethodName,
    String paymentMethodType,
    int totalAmount,
    int orderCount,
    int paymentCount,
    double percentage,
  });
}

/// @nodoc
class __$$DashboardPaymentMethodImplCopyWithImpl<$Res>
    extends
        _$DashboardPaymentMethodCopyWithImpl<$Res, _$DashboardPaymentMethodImpl>
    implements _$$DashboardPaymentMethodImplCopyWith<$Res> {
  __$$DashboardPaymentMethodImplCopyWithImpl(
    _$DashboardPaymentMethodImpl _value,
    $Res Function(_$DashboardPaymentMethodImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$DashboardPaymentMethodImpl implements _DashboardPaymentMethod {
  const _$DashboardPaymentMethodImpl({
    required this.paymentMethodId,
    required this.paymentMethodName,
    required this.paymentMethodType,
    required this.totalAmount,
    required this.orderCount,
    required this.paymentCount,
    required this.percentage,
  });

  @override
  final String paymentMethodId;
  @override
  final String paymentMethodName;
  @override
  final String paymentMethodType;
  @override
  final int totalAmount;
  @override
  final int orderCount;
  @override
  final int paymentCount;
  @override
  final double percentage;

  @override
  String toString() {
    return 'DashboardPaymentMethod(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 _$DashboardPaymentMethodImpl &&
            (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));
  }

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

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

abstract class _DashboardPaymentMethod implements DashboardPaymentMethod {
  const factory _DashboardPaymentMethod({
    required final String paymentMethodId,
    required final String paymentMethodName,
    required final String paymentMethodType,
    required final int totalAmount,
    required final int orderCount,
    required final int paymentCount,
    required final double percentage,
  }) = _$DashboardPaymentMethodImpl;

  @override
  String get paymentMethodId;
  @override
  String get paymentMethodName;
  @override
  String get paymentMethodType;
  @override
  int get totalAmount;
  @override
  int get orderCount;
  @override
  int get paymentCount;
  @override
  double get percentage;

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

/// @nodoc
mixin _$DashboardRecentSale {
  String get date => throw _privateConstructorUsedError;
  int get sales => throw _privateConstructorUsedError;
  int get orders => throw _privateConstructorUsedError;
  int get items => throw _privateConstructorUsedError;
  int get tax => throw _privateConstructorUsedError;
  int get discount => throw _privateConstructorUsedError;
  int get netSales => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $DashboardRecentSaleCopyWith<$Res> {
  factory $DashboardRecentSaleCopyWith(
    DashboardRecentSale value,
    $Res Function(DashboardRecentSale) then,
  ) = _$DashboardRecentSaleCopyWithImpl<$Res, DashboardRecentSale>;
  @useResult
  $Res call({
    String date,
    int sales,
    int orders,
    int items,
    int tax,
    int discount,
    int netSales,
  });
}

/// @nodoc
class _$DashboardRecentSaleCopyWithImpl<$Res, $Val extends DashboardRecentSale>
    implements $DashboardRecentSaleCopyWith<$Res> {
  _$DashboardRecentSaleCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$DashboardRecentSaleImplCopyWith<$Res>
    implements $DashboardRecentSaleCopyWith<$Res> {
  factory _$$DashboardRecentSaleImplCopyWith(
    _$DashboardRecentSaleImpl value,
    $Res Function(_$DashboardRecentSaleImpl) then,
  ) = __$$DashboardRecentSaleImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    String date,
    int sales,
    int orders,
    int items,
    int tax,
    int discount,
    int netSales,
  });
}

/// @nodoc
class __$$DashboardRecentSaleImplCopyWithImpl<$Res>
    extends _$DashboardRecentSaleCopyWithImpl<$Res, _$DashboardRecentSaleImpl>
    implements _$$DashboardRecentSaleImplCopyWith<$Res> {
  __$$DashboardRecentSaleImplCopyWithImpl(
    _$DashboardRecentSaleImpl _value,
    $Res Function(_$DashboardRecentSaleImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$DashboardRecentSaleImpl implements _DashboardRecentSale {
  const _$DashboardRecentSaleImpl({
    required this.date,
    required this.sales,
    required this.orders,
    required this.items,
    required this.tax,
    required this.discount,
    required this.netSales,
  });

  @override
  final String date;
  @override
  final int sales;
  @override
  final int orders;
  @override
  final int items;
  @override
  final int tax;
  @override
  final int discount;
  @override
  final int netSales;

  @override
  String toString() {
    return 'DashboardRecentSale(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 _$DashboardRecentSaleImpl &&
            (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));
  }

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

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

abstract class _DashboardRecentSale implements DashboardRecentSale {
  const factory _DashboardRecentSale({
    required final String date,
    required final int sales,
    required final int orders,
    required final int items,
    required final int tax,
    required final int discount,
    required final int netSales,
  }) = _$DashboardRecentSaleImpl;

  @override
  String get date;
  @override
  int get sales;
  @override
  int get orders;
  @override
  int get items;
  @override
  int get tax;
  @override
  int get discount;
  @override
  int get netSales;

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

/// @nodoc
mixin _$ProductAnalytic {
  String get organizationId => throw _privateConstructorUsedError;
  String get outletId => throw _privateConstructorUsedError;
  String get outletName => throw _privateConstructorUsedError;
  String get dateFrom => throw _privateConstructorUsedError;
  String get dateTo => throw _privateConstructorUsedError;
  List<ProductAnalyticData> get data => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $ProductAnalyticCopyWith<$Res> {
  factory $ProductAnalyticCopyWith(
    ProductAnalytic value,
    $Res Function(ProductAnalytic) then,
  ) = _$ProductAnalyticCopyWithImpl<$Res, ProductAnalytic>;
  @useResult
  $Res call({
    String organizationId,
    String outletId,
    String outletName,
    String dateFrom,
    String dateTo,
    List<ProductAnalyticData> data,
  });
}

/// @nodoc
class _$ProductAnalyticCopyWithImpl<$Res, $Val extends ProductAnalytic>
    implements $ProductAnalyticCopyWith<$Res> {
  _$ProductAnalyticCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$ProductAnalyticImplCopyWith<$Res>
    implements $ProductAnalyticCopyWith<$Res> {
  factory _$$ProductAnalyticImplCopyWith(
    _$ProductAnalyticImpl value,
    $Res Function(_$ProductAnalyticImpl) then,
  ) = __$$ProductAnalyticImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    String organizationId,
    String outletId,
    String outletName,
    String dateFrom,
    String dateTo,
    List<ProductAnalyticData> data,
  });
}

/// @nodoc
class __$$ProductAnalyticImplCopyWithImpl<$Res>
    extends _$ProductAnalyticCopyWithImpl<$Res, _$ProductAnalyticImpl>
    implements _$$ProductAnalyticImplCopyWith<$Res> {
  __$$ProductAnalyticImplCopyWithImpl(
    _$ProductAnalyticImpl _value,
    $Res Function(_$ProductAnalyticImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$ProductAnalyticImpl implements _ProductAnalytic {
  const _$ProductAnalyticImpl({
    required this.organizationId,
    required this.outletId,
    required this.outletName,
    required this.dateFrom,
    required this.dateTo,
    required final List<ProductAnalyticData> data,
  }) : _data = data;

  @override
  final String organizationId;
  @override
  final String outletId;
  @override
  final String outletName;
  @override
  final String dateFrom;
  @override
  final String dateTo;
  final List<ProductAnalyticData> _data;
  @override
  List<ProductAnalyticData> get data {
    if (_data is EqualUnmodifiableListView) return _data;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_data);
  }

  @override
  String toString() {
    return 'ProductAnalytic(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 _$ProductAnalyticImpl &&
            (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));
  }

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

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

abstract class _ProductAnalytic implements ProductAnalytic {
  const factory _ProductAnalytic({
    required final String organizationId,
    required final String outletId,
    required final String outletName,
    required final String dateFrom,
    required final String dateTo,
    required final List<ProductAnalyticData> data,
  }) = _$ProductAnalyticImpl;

  @override
  String get organizationId;
  @override
  String get outletId;
  @override
  String get outletName;
  @override
  String get dateFrom;
  @override
  String get dateTo;
  @override
  List<ProductAnalyticData> get data;

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

/// @nodoc
mixin _$ProductAnalyticData {
  String get productId => throw _privateConstructorUsedError;
  String get productName => throw _privateConstructorUsedError;
  String get productSku => throw _privateConstructorUsedError;
  int get productPrice => throw _privateConstructorUsedError;
  String get categoryId => throw _privateConstructorUsedError;
  String get categoryName => throw _privateConstructorUsedError;
  int get categoryOrder => throw _privateConstructorUsedError;
  int get quantitySold => throw _privateConstructorUsedError;
  int get revenue => throw _privateConstructorUsedError;
  double get averagePrice => throw _privateConstructorUsedError;
  int get orderCount => throw _privateConstructorUsedError;
  int get standardHppPerUnit => throw _privateConstructorUsedError;
  int get standardHppTotal => throw _privateConstructorUsedError;
  int get fifoHppPerUnit => throw _privateConstructorUsedError;
  int get fifoHppTotal => throw _privateConstructorUsedError;
  int get movingAverageHppPerUnit => throw _privateConstructorUsedError;
  int get movingAverageHppTotal => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $ProductAnalyticDataCopyWith<$Res> {
  factory $ProductAnalyticDataCopyWith(
    ProductAnalyticData value,
    $Res Function(ProductAnalyticData) then,
  ) = _$ProductAnalyticDataCopyWithImpl<$Res, ProductAnalyticData>;
  @useResult
  $Res call({
    String productId,
    String productName,
    String productSku,
    int productPrice,
    String categoryId,
    String categoryName,
    int categoryOrder,
    int quantitySold,
    int revenue,
    double averagePrice,
    int orderCount,
    int standardHppPerUnit,
    int standardHppTotal,
    int fifoHppPerUnit,
    int fifoHppTotal,
    int movingAverageHppPerUnit,
    int movingAverageHppTotal,
  });
}

/// @nodoc
class _$ProductAnalyticDataCopyWithImpl<$Res, $Val extends ProductAnalyticData>
    implements $ProductAnalyticDataCopyWith<$Res> {
  _$ProductAnalyticDataCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$ProductAnalyticDataImplCopyWith<$Res>
    implements $ProductAnalyticDataCopyWith<$Res> {
  factory _$$ProductAnalyticDataImplCopyWith(
    _$ProductAnalyticDataImpl value,
    $Res Function(_$ProductAnalyticDataImpl) then,
  ) = __$$ProductAnalyticDataImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    String productId,
    String productName,
    String productSku,
    int productPrice,
    String categoryId,
    String categoryName,
    int categoryOrder,
    int quantitySold,
    int revenue,
    double averagePrice,
    int orderCount,
    int standardHppPerUnit,
    int standardHppTotal,
    int fifoHppPerUnit,
    int fifoHppTotal,
    int movingAverageHppPerUnit,
    int movingAverageHppTotal,
  });
}

/// @nodoc
class __$$ProductAnalyticDataImplCopyWithImpl<$Res>
    extends _$ProductAnalyticDataCopyWithImpl<$Res, _$ProductAnalyticDataImpl>
    implements _$$ProductAnalyticDataImplCopyWith<$Res> {
  __$$ProductAnalyticDataImplCopyWithImpl(
    _$ProductAnalyticDataImpl _value,
    $Res Function(_$ProductAnalyticDataImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$ProductAnalyticDataImpl implements _ProductAnalyticData {
  const _$ProductAnalyticDataImpl({
    required this.productId,
    required this.productName,
    required this.productSku,
    required this.productPrice,
    required this.categoryId,
    required this.categoryName,
    required this.categoryOrder,
    required this.quantitySold,
    required this.revenue,
    required this.averagePrice,
    required this.orderCount,
    required this.standardHppPerUnit,
    required this.standardHppTotal,
    required this.fifoHppPerUnit,
    required this.fifoHppTotal,
    required this.movingAverageHppPerUnit,
    required this.movingAverageHppTotal,
  });

  @override
  final String productId;
  @override
  final String productName;
  @override
  final String productSku;
  @override
  final int productPrice;
  @override
  final String categoryId;
  @override
  final String categoryName;
  @override
  final int categoryOrder;
  @override
  final int quantitySold;
  @override
  final int revenue;
  @override
  final double averagePrice;
  @override
  final int orderCount;
  @override
  final int standardHppPerUnit;
  @override
  final int standardHppTotal;
  @override
  final int fifoHppPerUnit;
  @override
  final int fifoHppTotal;
  @override
  final int movingAverageHppPerUnit;
  @override
  final int movingAverageHppTotal;

  @override
  String toString() {
    return 'ProductAnalyticData(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 _$ProductAnalyticDataImpl &&
            (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));
  }

  @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 ProductAnalyticData
  /// with the given fields replaced by the non-null parameter values.
  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  @pragma('vm:prefer-inline')
  _$$ProductAnalyticDataImplCopyWith<_$ProductAnalyticDataImpl> get copyWith =>
      __$$ProductAnalyticDataImplCopyWithImpl<_$ProductAnalyticDataImpl>(
        this,
        _$identity,
      );
}

abstract class _ProductAnalyticData implements ProductAnalyticData {
  const factory _ProductAnalyticData({
    required final String productId,
    required final String productName,
    required final String productSku,
    required final int productPrice,
    required final String categoryId,
    required final String categoryName,
    required final int categoryOrder,
    required final int quantitySold,
    required final int revenue,
    required final double averagePrice,
    required final int orderCount,
    required final int standardHppPerUnit,
    required final int standardHppTotal,
    required final int fifoHppPerUnit,
    required final int fifoHppTotal,
    required final int movingAverageHppPerUnit,
    required final int movingAverageHppTotal,
  }) = _$ProductAnalyticDataImpl;

  @override
  String get productId;
  @override
  String get productName;
  @override
  String get productSku;
  @override
  int get productPrice;
  @override
  String get categoryId;
  @override
  String get categoryName;
  @override
  int get categoryOrder;
  @override
  int get quantitySold;
  @override
  int get revenue;
  @override
  double get averagePrice;
  @override
  int get orderCount;
  @override
  int get standardHppPerUnit;
  @override
  int get standardHppTotal;
  @override
  int get fifoHppPerUnit;
  @override
  int get fifoHppTotal;
  @override
  int get movingAverageHppPerUnit;
  @override
  int get movingAverageHppTotal;

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

/// @nodoc
mixin _$PaymentMethodAnalytic {
  String get organizationId => throw _privateConstructorUsedError;
  String get outletId => throw _privateConstructorUsedError;
  String get outletName => throw _privateConstructorUsedError;
  String get dateFrom => throw _privateConstructorUsedError;
  String get dateTo => throw _privateConstructorUsedError;
  String get groupBy => throw _privateConstructorUsedError;
  PaymentMethodSummary get summary => throw _privateConstructorUsedError;
  List<PaymentMethodItem> get data => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $PaymentMethodAnalyticCopyWith<$Res> {
  factory $PaymentMethodAnalyticCopyWith(
    PaymentMethodAnalytic value,
    $Res Function(PaymentMethodAnalytic) then,
  ) = _$PaymentMethodAnalyticCopyWithImpl<$Res, PaymentMethodAnalytic>;
  @useResult
  $Res call({
    String organizationId,
    String outletId,
    String outletName,
    String dateFrom,
    String dateTo,
    String groupBy,
    PaymentMethodSummary summary,
    List<PaymentMethodItem> data,
  });

  $PaymentMethodSummaryCopyWith<$Res> get summary;
}

/// @nodoc
class _$PaymentMethodAnalyticCopyWithImpl<
  $Res,
  $Val extends PaymentMethodAnalytic
>
    implements $PaymentMethodAnalyticCopyWith<$Res> {
  _$PaymentMethodAnalyticCopyWithImpl(this._value, this._then);

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

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

  /// Create a copy of PaymentMethodAnalytic
  /// with the given fields replaced by the non-null parameter values.
  @override
  @pragma('vm:prefer-inline')
  $PaymentMethodSummaryCopyWith<$Res> get summary {
    return $PaymentMethodSummaryCopyWith<$Res>(_value.summary, (value) {
      return _then(_value.copyWith(summary: value) as $Val);
    });
  }
}

/// @nodoc
abstract class _$$PaymentMethodAnalyticImplCopyWith<$Res>
    implements $PaymentMethodAnalyticCopyWith<$Res> {
  factory _$$PaymentMethodAnalyticImplCopyWith(
    _$PaymentMethodAnalyticImpl value,
    $Res Function(_$PaymentMethodAnalyticImpl) then,
  ) = __$$PaymentMethodAnalyticImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    String organizationId,
    String outletId,
    String outletName,
    String dateFrom,
    String dateTo,
    String groupBy,
    PaymentMethodSummary summary,
    List<PaymentMethodItem> data,
  });

  @override
  $PaymentMethodSummaryCopyWith<$Res> get summary;
}

/// @nodoc
class __$$PaymentMethodAnalyticImplCopyWithImpl<$Res>
    extends
        _$PaymentMethodAnalyticCopyWithImpl<$Res, _$PaymentMethodAnalyticImpl>
    implements _$$PaymentMethodAnalyticImplCopyWith<$Res> {
  __$$PaymentMethodAnalyticImplCopyWithImpl(
    _$PaymentMethodAnalyticImpl _value,
    $Res Function(_$PaymentMethodAnalyticImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$PaymentMethodAnalyticImpl implements _PaymentMethodAnalytic {
  const _$PaymentMethodAnalyticImpl({
    required this.organizationId,
    required this.outletId,
    required this.outletName,
    required this.dateFrom,
    required this.dateTo,
    required this.groupBy,
    required this.summary,
    required final List<PaymentMethodItem> data,
  }) : _data = data;

  @override
  final String organizationId;
  @override
  final String outletId;
  @override
  final String outletName;
  @override
  final String dateFrom;
  @override
  final String dateTo;
  @override
  final String groupBy;
  @override
  final PaymentMethodSummary summary;
  final List<PaymentMethodItem> _data;
  @override
  List<PaymentMethodItem> get data {
    if (_data is EqualUnmodifiableListView) return _data;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_data);
  }

  @override
  String toString() {
    return 'PaymentMethodAnalytic(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 _$PaymentMethodAnalyticImpl &&
            (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));
  }

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

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

abstract class _PaymentMethodAnalytic implements PaymentMethodAnalytic {
  const factory _PaymentMethodAnalytic({
    required final String organizationId,
    required final String outletId,
    required final String outletName,
    required final String dateFrom,
    required final String dateTo,
    required final String groupBy,
    required final PaymentMethodSummary summary,
    required final List<PaymentMethodItem> data,
  }) = _$PaymentMethodAnalyticImpl;

  @override
  String get organizationId;
  @override
  String get outletId;
  @override
  String get outletName;
  @override
  String get dateFrom;
  @override
  String get dateTo;
  @override
  String get groupBy;
  @override
  PaymentMethodSummary get summary;
  @override
  List<PaymentMethodItem> get data;

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

/// @nodoc
mixin _$PaymentMethodItem {
  String get paymentMethodId => throw _privateConstructorUsedError;
  String get paymentMethodName => throw _privateConstructorUsedError;
  String get paymentMethodType => throw _privateConstructorUsedError;
  num get totalAmount => throw _privateConstructorUsedError;
  int get orderCount => throw _privateConstructorUsedError;
  int get paymentCount => throw _privateConstructorUsedError;
  double get percentage => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $PaymentMethodItemCopyWith<$Res> {
  factory $PaymentMethodItemCopyWith(
    PaymentMethodItem value,
    $Res Function(PaymentMethodItem) then,
  ) = _$PaymentMethodItemCopyWithImpl<$Res, PaymentMethodItem>;
  @useResult
  $Res call({
    String paymentMethodId,
    String paymentMethodName,
    String paymentMethodType,
    num totalAmount,
    int orderCount,
    int paymentCount,
    double percentage,
  });
}

/// @nodoc
class _$PaymentMethodItemCopyWithImpl<$Res, $Val extends PaymentMethodItem>
    implements $PaymentMethodItemCopyWith<$Res> {
  _$PaymentMethodItemCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$PaymentMethodItemImplCopyWith<$Res>
    implements $PaymentMethodItemCopyWith<$Res> {
  factory _$$PaymentMethodItemImplCopyWith(
    _$PaymentMethodItemImpl value,
    $Res Function(_$PaymentMethodItemImpl) then,
  ) = __$$PaymentMethodItemImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    String paymentMethodId,
    String paymentMethodName,
    String paymentMethodType,
    num totalAmount,
    int orderCount,
    int paymentCount,
    double percentage,
  });
}

/// @nodoc
class __$$PaymentMethodItemImplCopyWithImpl<$Res>
    extends _$PaymentMethodItemCopyWithImpl<$Res, _$PaymentMethodItemImpl>
    implements _$$PaymentMethodItemImplCopyWith<$Res> {
  __$$PaymentMethodItemImplCopyWithImpl(
    _$PaymentMethodItemImpl _value,
    $Res Function(_$PaymentMethodItemImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$PaymentMethodItemImpl implements _PaymentMethodItem {
  const _$PaymentMethodItemImpl({
    required this.paymentMethodId,
    required this.paymentMethodName,
    required this.paymentMethodType,
    required this.totalAmount,
    required this.orderCount,
    required this.paymentCount,
    required this.percentage,
  });

  @override
  final String paymentMethodId;
  @override
  final String paymentMethodName;
  @override
  final String paymentMethodType;
  @override
  final num totalAmount;
  @override
  final int orderCount;
  @override
  final int paymentCount;
  @override
  final double percentage;

  @override
  String toString() {
    return 'PaymentMethodItem(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 _$PaymentMethodItemImpl &&
            (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));
  }

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

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

abstract class _PaymentMethodItem implements PaymentMethodItem {
  const factory _PaymentMethodItem({
    required final String paymentMethodId,
    required final String paymentMethodName,
    required final String paymentMethodType,
    required final num totalAmount,
    required final int orderCount,
    required final int paymentCount,
    required final double percentage,
  }) = _$PaymentMethodItemImpl;

  @override
  String get paymentMethodId;
  @override
  String get paymentMethodName;
  @override
  String get paymentMethodType;
  @override
  num get totalAmount;
  @override
  int get orderCount;
  @override
  int get paymentCount;
  @override
  double get percentage;

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

/// @nodoc
mixin _$PaymentMethodSummary {
  num get totalAmount => throw _privateConstructorUsedError;
  int get totalOrders => throw _privateConstructorUsedError;
  int get totalPayments => throw _privateConstructorUsedError;
  double get averageOrderValue => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $PaymentMethodSummaryCopyWith<$Res> {
  factory $PaymentMethodSummaryCopyWith(
    PaymentMethodSummary value,
    $Res Function(PaymentMethodSummary) then,
  ) = _$PaymentMethodSummaryCopyWithImpl<$Res, PaymentMethodSummary>;
  @useResult
  $Res call({
    num totalAmount,
    int totalOrders,
    int totalPayments,
    double averageOrderValue,
  });
}

/// @nodoc
class _$PaymentMethodSummaryCopyWithImpl<
  $Res,
  $Val extends PaymentMethodSummary
>
    implements $PaymentMethodSummaryCopyWith<$Res> {
  _$PaymentMethodSummaryCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$PaymentMethodSummaryImplCopyWith<$Res>
    implements $PaymentMethodSummaryCopyWith<$Res> {
  factory _$$PaymentMethodSummaryImplCopyWith(
    _$PaymentMethodSummaryImpl value,
    $Res Function(_$PaymentMethodSummaryImpl) then,
  ) = __$$PaymentMethodSummaryImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    num totalAmount,
    int totalOrders,
    int totalPayments,
    double averageOrderValue,
  });
}

/// @nodoc
class __$$PaymentMethodSummaryImplCopyWithImpl<$Res>
    extends _$PaymentMethodSummaryCopyWithImpl<$Res, _$PaymentMethodSummaryImpl>
    implements _$$PaymentMethodSummaryImplCopyWith<$Res> {
  __$$PaymentMethodSummaryImplCopyWithImpl(
    _$PaymentMethodSummaryImpl _value,
    $Res Function(_$PaymentMethodSummaryImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$PaymentMethodSummaryImpl implements _PaymentMethodSummary {
  const _$PaymentMethodSummaryImpl({
    required this.totalAmount,
    required this.totalOrders,
    required this.totalPayments,
    required this.averageOrderValue,
  });

  @override
  final num totalAmount;
  @override
  final int totalOrders;
  @override
  final int totalPayments;
  @override
  final double averageOrderValue;

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

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$PaymentMethodSummaryImpl &&
            (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));
  }

  @override
  int get hashCode => Object.hash(
    runtimeType,
    totalAmount,
    totalOrders,
    totalPayments,
    averageOrderValue,
  );

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

abstract class _PaymentMethodSummary implements PaymentMethodSummary {
  const factory _PaymentMethodSummary({
    required final num totalAmount,
    required final int totalOrders,
    required final int totalPayments,
    required final double averageOrderValue,
  }) = _$PaymentMethodSummaryImpl;

  @override
  num get totalAmount;
  @override
  int get totalOrders;
  @override
  int get totalPayments;
  @override
  double get averageOrderValue;

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

/// @nodoc
mixin _$PurchasingAnalytic {
  String get organizationId => throw _privateConstructorUsedError;
  String get outletId => throw _privateConstructorUsedError;
  String get outletName => throw _privateConstructorUsedError;
  DateTime get dateFrom => throw _privateConstructorUsedError;
  DateTime get dateTo => throw _privateConstructorUsedError;
  String get groupBy => throw _privateConstructorUsedError;
  PurchasingAnalyticSummary get summary => throw _privateConstructorUsedError;
  List<PurchasingAnalyticData> get data => throw _privateConstructorUsedError;
  List<PurchasingIngredientData> get ingredientData =>
      throw _privateConstructorUsedError;
  List<PurchasingVendorData> get vendorData =>
      throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $PurchasingAnalyticCopyWith<$Res> {
  factory $PurchasingAnalyticCopyWith(
    PurchasingAnalytic value,
    $Res Function(PurchasingAnalytic) then,
  ) = _$PurchasingAnalyticCopyWithImpl<$Res, PurchasingAnalytic>;
  @useResult
  $Res call({
    String organizationId,
    String outletId,
    String outletName,
    DateTime dateFrom,
    DateTime dateTo,
    String groupBy,
    PurchasingAnalyticSummary summary,
    List<PurchasingAnalyticData> data,
    List<PurchasingIngredientData> ingredientData,
    List<PurchasingVendorData> vendorData,
  });

  $PurchasingAnalyticSummaryCopyWith<$Res> get summary;
}

/// @nodoc
class _$PurchasingAnalyticCopyWithImpl<$Res, $Val extends PurchasingAnalytic>
    implements $PurchasingAnalyticCopyWith<$Res> {
  _$PurchasingAnalyticCopyWithImpl(this._value, this._then);

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

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

  /// Create a copy of PurchasingAnalytic
  /// with the given fields replaced by the non-null parameter values.
  @override
  @pragma('vm:prefer-inline')
  $PurchasingAnalyticSummaryCopyWith<$Res> get summary {
    return $PurchasingAnalyticSummaryCopyWith<$Res>(_value.summary, (value) {
      return _then(_value.copyWith(summary: value) as $Val);
    });
  }
}

/// @nodoc
abstract class _$$PurchasingAnalyticImplCopyWith<$Res>
    implements $PurchasingAnalyticCopyWith<$Res> {
  factory _$$PurchasingAnalyticImplCopyWith(
    _$PurchasingAnalyticImpl value,
    $Res Function(_$PurchasingAnalyticImpl) then,
  ) = __$$PurchasingAnalyticImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    String organizationId,
    String outletId,
    String outletName,
    DateTime dateFrom,
    DateTime dateTo,
    String groupBy,
    PurchasingAnalyticSummary summary,
    List<PurchasingAnalyticData> data,
    List<PurchasingIngredientData> ingredientData,
    List<PurchasingVendorData> vendorData,
  });

  @override
  $PurchasingAnalyticSummaryCopyWith<$Res> get summary;
}

/// @nodoc
class __$$PurchasingAnalyticImplCopyWithImpl<$Res>
    extends _$PurchasingAnalyticCopyWithImpl<$Res, _$PurchasingAnalyticImpl>
    implements _$$PurchasingAnalyticImplCopyWith<$Res> {
  __$$PurchasingAnalyticImplCopyWithImpl(
    _$PurchasingAnalyticImpl _value,
    $Res Function(_$PurchasingAnalyticImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$PurchasingAnalyticImpl implements _PurchasingAnalytic {
  const _$PurchasingAnalyticImpl({
    required this.organizationId,
    required this.outletId,
    required this.outletName,
    required this.dateFrom,
    required this.dateTo,
    required this.groupBy,
    required this.summary,
    required final List<PurchasingAnalyticData> data,
    required final List<PurchasingIngredientData> ingredientData,
    required final List<PurchasingVendorData> vendorData,
  }) : _data = data,
       _ingredientData = ingredientData,
       _vendorData = vendorData;

  @override
  final String organizationId;
  @override
  final String outletId;
  @override
  final String outletName;
  @override
  final DateTime dateFrom;
  @override
  final DateTime dateTo;
  @override
  final String groupBy;
  @override
  final PurchasingAnalyticSummary summary;
  final List<PurchasingAnalyticData> _data;
  @override
  List<PurchasingAnalyticData> get data {
    if (_data is EqualUnmodifiableListView) return _data;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_data);
  }

  final List<PurchasingIngredientData> _ingredientData;
  @override
  List<PurchasingIngredientData> get ingredientData {
    if (_ingredientData is EqualUnmodifiableListView) return _ingredientData;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_ingredientData);
  }

  final List<PurchasingVendorData> _vendorData;
  @override
  List<PurchasingVendorData> get vendorData {
    if (_vendorData is EqualUnmodifiableListView) return _vendorData;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_vendorData);
  }

  @override
  String toString() {
    return 'PurchasingAnalytic(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 _$PurchasingAnalyticImpl &&
            (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,
            ));
  }

  @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 PurchasingAnalytic
  /// with the given fields replaced by the non-null parameter values.
  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  @pragma('vm:prefer-inline')
  _$$PurchasingAnalyticImplCopyWith<_$PurchasingAnalyticImpl> get copyWith =>
      __$$PurchasingAnalyticImplCopyWithImpl<_$PurchasingAnalyticImpl>(
        this,
        _$identity,
      );
}

abstract class _PurchasingAnalytic implements PurchasingAnalytic {
  const factory _PurchasingAnalytic({
    required final String organizationId,
    required final String outletId,
    required final String outletName,
    required final DateTime dateFrom,
    required final DateTime dateTo,
    required final String groupBy,
    required final PurchasingAnalyticSummary summary,
    required final List<PurchasingAnalyticData> data,
    required final List<PurchasingIngredientData> ingredientData,
    required final List<PurchasingVendorData> vendorData,
  }) = _$PurchasingAnalyticImpl;

  @override
  String get organizationId;
  @override
  String get outletId;
  @override
  String get outletName;
  @override
  DateTime get dateFrom;
  @override
  DateTime get dateTo;
  @override
  String get groupBy;
  @override
  PurchasingAnalyticSummary get summary;
  @override
  List<PurchasingAnalyticData> get data;
  @override
  List<PurchasingIngredientData> get ingredientData;
  @override
  List<PurchasingVendorData> get vendorData;

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

/// @nodoc
mixin _$PurchasingAnalyticSummary {
  int get totalPurchases => throw _privateConstructorUsedError;
  int get rawMaterialPurchases => throw _privateConstructorUsedError;
  int get expensePurchases => throw _privateConstructorUsedError;
  int get totalPurchaseOrders => throw _privateConstructorUsedError;
  int get rawMaterialPurchaseOrders => throw _privateConstructorUsedError;
  int get expenseCount => throw _privateConstructorUsedError;
  int get totalQuantity => throw _privateConstructorUsedError;
  double get averagePurchaseOrderValue => throw _privateConstructorUsedError;
  int get totalIngredients => throw _privateConstructorUsedError;
  int get totalVendors => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $PurchasingAnalyticSummaryCopyWith<$Res> {
  factory $PurchasingAnalyticSummaryCopyWith(
    PurchasingAnalyticSummary value,
    $Res Function(PurchasingAnalyticSummary) then,
  ) = _$PurchasingAnalyticSummaryCopyWithImpl<$Res, PurchasingAnalyticSummary>;
  @useResult
  $Res call({
    int totalPurchases,
    int rawMaterialPurchases,
    int expensePurchases,
    int totalPurchaseOrders,
    int rawMaterialPurchaseOrders,
    int expenseCount,
    int totalQuantity,
    double averagePurchaseOrderValue,
    int totalIngredients,
    int totalVendors,
  });
}

/// @nodoc
class _$PurchasingAnalyticSummaryCopyWithImpl<
  $Res,
  $Val extends PurchasingAnalyticSummary
>
    implements $PurchasingAnalyticSummaryCopyWith<$Res> {
  _$PurchasingAnalyticSummaryCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$PurchasingAnalyticSummaryImplCopyWith<$Res>
    implements $PurchasingAnalyticSummaryCopyWith<$Res> {
  factory _$$PurchasingAnalyticSummaryImplCopyWith(
    _$PurchasingAnalyticSummaryImpl value,
    $Res Function(_$PurchasingAnalyticSummaryImpl) then,
  ) = __$$PurchasingAnalyticSummaryImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    int totalPurchases,
    int rawMaterialPurchases,
    int expensePurchases,
    int totalPurchaseOrders,
    int rawMaterialPurchaseOrders,
    int expenseCount,
    int totalQuantity,
    double averagePurchaseOrderValue,
    int totalIngredients,
    int totalVendors,
  });
}

/// @nodoc
class __$$PurchasingAnalyticSummaryImplCopyWithImpl<$Res>
    extends
        _$PurchasingAnalyticSummaryCopyWithImpl<
          $Res,
          _$PurchasingAnalyticSummaryImpl
        >
    implements _$$PurchasingAnalyticSummaryImplCopyWith<$Res> {
  __$$PurchasingAnalyticSummaryImplCopyWithImpl(
    _$PurchasingAnalyticSummaryImpl _value,
    $Res Function(_$PurchasingAnalyticSummaryImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$PurchasingAnalyticSummaryImpl implements _PurchasingAnalyticSummary {
  const _$PurchasingAnalyticSummaryImpl({
    required this.totalPurchases,
    required this.rawMaterialPurchases,
    required this.expensePurchases,
    required this.totalPurchaseOrders,
    required this.rawMaterialPurchaseOrders,
    required this.expenseCount,
    required this.totalQuantity,
    required this.averagePurchaseOrderValue,
    required this.totalIngredients,
    required this.totalVendors,
  });

  @override
  final int totalPurchases;
  @override
  final int rawMaterialPurchases;
  @override
  final int expensePurchases;
  @override
  final int totalPurchaseOrders;
  @override
  final int rawMaterialPurchaseOrders;
  @override
  final int expenseCount;
  @override
  final int totalQuantity;
  @override
  final double averagePurchaseOrderValue;
  @override
  final int totalIngredients;
  @override
  final int totalVendors;

  @override
  String toString() {
    return 'PurchasingAnalyticSummary(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 _$PurchasingAnalyticSummaryImpl &&
            (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));
  }

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

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

abstract class _PurchasingAnalyticSummary implements PurchasingAnalyticSummary {
  const factory _PurchasingAnalyticSummary({
    required final int totalPurchases,
    required final int rawMaterialPurchases,
    required final int expensePurchases,
    required final int totalPurchaseOrders,
    required final int rawMaterialPurchaseOrders,
    required final int expenseCount,
    required final int totalQuantity,
    required final double averagePurchaseOrderValue,
    required final int totalIngredients,
    required final int totalVendors,
  }) = _$PurchasingAnalyticSummaryImpl;

  @override
  int get totalPurchases;
  @override
  int get rawMaterialPurchases;
  @override
  int get expensePurchases;
  @override
  int get totalPurchaseOrders;
  @override
  int get rawMaterialPurchaseOrders;
  @override
  int get expenseCount;
  @override
  int get totalQuantity;
  @override
  double get averagePurchaseOrderValue;
  @override
  int get totalIngredients;
  @override
  int get totalVendors;

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

/// @nodoc
mixin _$PurchasingAnalyticData {
  DateTime get date => throw _privateConstructorUsedError;
  int get purchases => throw _privateConstructorUsedError;
  int get rawMaterialPurchases => throw _privateConstructorUsedError;
  int get expensePurchases => throw _privateConstructorUsedError;
  int get purchaseOrders => throw _privateConstructorUsedError;
  int get rawMaterialPurchaseOrders => throw _privateConstructorUsedError;
  int get expenseCount => throw _privateConstructorUsedError;
  int get quantity => throw _privateConstructorUsedError;
  int get ingredients => throw _privateConstructorUsedError;
  int get vendors => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $PurchasingAnalyticDataCopyWith<$Res> {
  factory $PurchasingAnalyticDataCopyWith(
    PurchasingAnalyticData value,
    $Res Function(PurchasingAnalyticData) then,
  ) = _$PurchasingAnalyticDataCopyWithImpl<$Res, PurchasingAnalyticData>;
  @useResult
  $Res call({
    DateTime date,
    int purchases,
    int rawMaterialPurchases,
    int expensePurchases,
    int purchaseOrders,
    int rawMaterialPurchaseOrders,
    int expenseCount,
    int quantity,
    int ingredients,
    int vendors,
  });
}

/// @nodoc
class _$PurchasingAnalyticDataCopyWithImpl<
  $Res,
  $Val extends PurchasingAnalyticData
>
    implements $PurchasingAnalyticDataCopyWith<$Res> {
  _$PurchasingAnalyticDataCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$PurchasingAnalyticDataImplCopyWith<$Res>
    implements $PurchasingAnalyticDataCopyWith<$Res> {
  factory _$$PurchasingAnalyticDataImplCopyWith(
    _$PurchasingAnalyticDataImpl value,
    $Res Function(_$PurchasingAnalyticDataImpl) then,
  ) = __$$PurchasingAnalyticDataImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    DateTime date,
    int purchases,
    int rawMaterialPurchases,
    int expensePurchases,
    int purchaseOrders,
    int rawMaterialPurchaseOrders,
    int expenseCount,
    int quantity,
    int ingredients,
    int vendors,
  });
}

/// @nodoc
class __$$PurchasingAnalyticDataImplCopyWithImpl<$Res>
    extends
        _$PurchasingAnalyticDataCopyWithImpl<$Res, _$PurchasingAnalyticDataImpl>
    implements _$$PurchasingAnalyticDataImplCopyWith<$Res> {
  __$$PurchasingAnalyticDataImplCopyWithImpl(
    _$PurchasingAnalyticDataImpl _value,
    $Res Function(_$PurchasingAnalyticDataImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$PurchasingAnalyticDataImpl implements _PurchasingAnalyticData {
  const _$PurchasingAnalyticDataImpl({
    required this.date,
    required this.purchases,
    required this.rawMaterialPurchases,
    required this.expensePurchases,
    required this.purchaseOrders,
    required this.rawMaterialPurchaseOrders,
    required this.expenseCount,
    required this.quantity,
    required this.ingredients,
    required this.vendors,
  });

  @override
  final DateTime date;
  @override
  final int purchases;
  @override
  final int rawMaterialPurchases;
  @override
  final int expensePurchases;
  @override
  final int purchaseOrders;
  @override
  final int rawMaterialPurchaseOrders;
  @override
  final int expenseCount;
  @override
  final int quantity;
  @override
  final int ingredients;
  @override
  final int vendors;

  @override
  String toString() {
    return 'PurchasingAnalyticData(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 _$PurchasingAnalyticDataImpl &&
            (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));
  }

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

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

abstract class _PurchasingAnalyticData implements PurchasingAnalyticData {
  const factory _PurchasingAnalyticData({
    required final DateTime date,
    required final int purchases,
    required final int rawMaterialPurchases,
    required final int expensePurchases,
    required final int purchaseOrders,
    required final int rawMaterialPurchaseOrders,
    required final int expenseCount,
    required final int quantity,
    required final int ingredients,
    required final int vendors,
  }) = _$PurchasingAnalyticDataImpl;

  @override
  DateTime get date;
  @override
  int get purchases;
  @override
  int get rawMaterialPurchases;
  @override
  int get expensePurchases;
  @override
  int get purchaseOrders;
  @override
  int get rawMaterialPurchaseOrders;
  @override
  int get expenseCount;
  @override
  int get quantity;
  @override
  int get ingredients;
  @override
  int get vendors;

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

/// @nodoc
mixin _$PurchasingIngredientData {
  String get ingredientId => throw _privateConstructorUsedError;
  String get ingredientName => throw _privateConstructorUsedError;
  int get quantity => throw _privateConstructorUsedError;
  int get totalCost => throw _privateConstructorUsedError;
  double get averageUnitCost => throw _privateConstructorUsedError;
  int get purchaseOrderCount => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $PurchasingIngredientDataCopyWith<$Res> {
  factory $PurchasingIngredientDataCopyWith(
    PurchasingIngredientData value,
    $Res Function(PurchasingIngredientData) then,
  ) = _$PurchasingIngredientDataCopyWithImpl<$Res, PurchasingIngredientData>;
  @useResult
  $Res call({
    String ingredientId,
    String ingredientName,
    int quantity,
    int totalCost,
    double averageUnitCost,
    int purchaseOrderCount,
  });
}

/// @nodoc
class _$PurchasingIngredientDataCopyWithImpl<
  $Res,
  $Val extends PurchasingIngredientData
>
    implements $PurchasingIngredientDataCopyWith<$Res> {
  _$PurchasingIngredientDataCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$PurchasingIngredientDataImplCopyWith<$Res>
    implements $PurchasingIngredientDataCopyWith<$Res> {
  factory _$$PurchasingIngredientDataImplCopyWith(
    _$PurchasingIngredientDataImpl value,
    $Res Function(_$PurchasingIngredientDataImpl) then,
  ) = __$$PurchasingIngredientDataImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    String ingredientId,
    String ingredientName,
    int quantity,
    int totalCost,
    double averageUnitCost,
    int purchaseOrderCount,
  });
}

/// @nodoc
class __$$PurchasingIngredientDataImplCopyWithImpl<$Res>
    extends
        _$PurchasingIngredientDataCopyWithImpl<
          $Res,
          _$PurchasingIngredientDataImpl
        >
    implements _$$PurchasingIngredientDataImplCopyWith<$Res> {
  __$$PurchasingIngredientDataImplCopyWithImpl(
    _$PurchasingIngredientDataImpl _value,
    $Res Function(_$PurchasingIngredientDataImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$PurchasingIngredientDataImpl implements _PurchasingIngredientData {
  const _$PurchasingIngredientDataImpl({
    required this.ingredientId,
    required this.ingredientName,
    required this.quantity,
    required this.totalCost,
    required this.averageUnitCost,
    required this.purchaseOrderCount,
  });

  @override
  final String ingredientId;
  @override
  final String ingredientName;
  @override
  final int quantity;
  @override
  final int totalCost;
  @override
  final double averageUnitCost;
  @override
  final int purchaseOrderCount;

  @override
  String toString() {
    return 'PurchasingIngredientData(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 _$PurchasingIngredientDataImpl &&
            (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));
  }

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

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

abstract class _PurchasingIngredientData implements PurchasingIngredientData {
  const factory _PurchasingIngredientData({
    required final String ingredientId,
    required final String ingredientName,
    required final int quantity,
    required final int totalCost,
    required final double averageUnitCost,
    required final int purchaseOrderCount,
  }) = _$PurchasingIngredientDataImpl;

  @override
  String get ingredientId;
  @override
  String get ingredientName;
  @override
  int get quantity;
  @override
  int get totalCost;
  @override
  double get averageUnitCost;
  @override
  int get purchaseOrderCount;

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

/// @nodoc
mixin _$PurchasingVendorData {
  String get vendorId => throw _privateConstructorUsedError;
  String get vendorName => throw _privateConstructorUsedError;
  int get totalCost => throw _privateConstructorUsedError;
  int get purchaseOrderCount => throw _privateConstructorUsedError;
  int get ingredientCount => throw _privateConstructorUsedError;
  int get quantity => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $PurchasingVendorDataCopyWith<$Res> {
  factory $PurchasingVendorDataCopyWith(
    PurchasingVendorData value,
    $Res Function(PurchasingVendorData) then,
  ) = _$PurchasingVendorDataCopyWithImpl<$Res, PurchasingVendorData>;
  @useResult
  $Res call({
    String vendorId,
    String vendorName,
    int totalCost,
    int purchaseOrderCount,
    int ingredientCount,
    int quantity,
  });
}

/// @nodoc
class _$PurchasingVendorDataCopyWithImpl<
  $Res,
  $Val extends PurchasingVendorData
>
    implements $PurchasingVendorDataCopyWith<$Res> {
  _$PurchasingVendorDataCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$PurchasingVendorDataImplCopyWith<$Res>
    implements $PurchasingVendorDataCopyWith<$Res> {
  factory _$$PurchasingVendorDataImplCopyWith(
    _$PurchasingVendorDataImpl value,
    $Res Function(_$PurchasingVendorDataImpl) then,
  ) = __$$PurchasingVendorDataImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    String vendorId,
    String vendorName,
    int totalCost,
    int purchaseOrderCount,
    int ingredientCount,
    int quantity,
  });
}

/// @nodoc
class __$$PurchasingVendorDataImplCopyWithImpl<$Res>
    extends _$PurchasingVendorDataCopyWithImpl<$Res, _$PurchasingVendorDataImpl>
    implements _$$PurchasingVendorDataImplCopyWith<$Res> {
  __$$PurchasingVendorDataImplCopyWithImpl(
    _$PurchasingVendorDataImpl _value,
    $Res Function(_$PurchasingVendorDataImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$PurchasingVendorDataImpl implements _PurchasingVendorData {
  const _$PurchasingVendorDataImpl({
    required this.vendorId,
    required this.vendorName,
    required this.totalCost,
    required this.purchaseOrderCount,
    required this.ingredientCount,
    required this.quantity,
  });

  @override
  final String vendorId;
  @override
  final String vendorName;
  @override
  final int totalCost;
  @override
  final int purchaseOrderCount;
  @override
  final int ingredientCount;
  @override
  final int quantity;

  @override
  String toString() {
    return 'PurchasingVendorData(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 _$PurchasingVendorDataImpl &&
            (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));
  }

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

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

abstract class _PurchasingVendorData implements PurchasingVendorData {
  const factory _PurchasingVendorData({
    required final String vendorId,
    required final String vendorName,
    required final int totalCost,
    required final int purchaseOrderCount,
    required final int ingredientCount,
    required final int quantity,
  }) = _$PurchasingVendorDataImpl;

  @override
  String get vendorId;
  @override
  String get vendorName;
  @override
  int get totalCost;
  @override
  int get purchaseOrderCount;
  @override
  int get ingredientCount;
  @override
  int get quantity;

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

/// @nodoc
mixin _$ExclusiveSummary {
  String get organizationId => throw _privateConstructorUsedError;
  String get outletId => throw _privateConstructorUsedError;
  String get outletName => throw _privateConstructorUsedError;
  ExclusiveSummaryPeriod get period => throw _privateConstructorUsedError;
  ExclusiveSummarySummary get summary => throw _privateConstructorUsedError;
  ExclusiveSummaryReimburse get reimburse => throw _privateConstructorUsedError;
  List<ExclusiveSummaryBreakdown> get hppBreakdown =>
      throw _privateConstructorUsedError;
  List<ExclusiveSummaryBreakdown> get operationalExpenseBreakdown =>
      throw _privateConstructorUsedError;
  List<ExclusiveSummaryDaily> get dailySummary =>
      throw _privateConstructorUsedError;
  List<ExclusiveSummaryTransaction> get dailyTransactions =>
      throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $ExclusiveSummaryCopyWith<$Res> {
  factory $ExclusiveSummaryCopyWith(
    ExclusiveSummary value,
    $Res Function(ExclusiveSummary) then,
  ) = _$ExclusiveSummaryCopyWithImpl<$Res, ExclusiveSummary>;
  @useResult
  $Res call({
    String organizationId,
    String outletId,
    String outletName,
    ExclusiveSummaryPeriod period,
    ExclusiveSummarySummary summary,
    ExclusiveSummaryReimburse reimburse,
    List<ExclusiveSummaryBreakdown> hppBreakdown,
    List<ExclusiveSummaryBreakdown> operationalExpenseBreakdown,
    List<ExclusiveSummaryDaily> dailySummary,
    List<ExclusiveSummaryTransaction> dailyTransactions,
  });

  $ExclusiveSummaryPeriodCopyWith<$Res> get period;
  $ExclusiveSummarySummaryCopyWith<$Res> get summary;
  $ExclusiveSummaryReimburseCopyWith<$Res> get reimburse;
}

/// @nodoc
class _$ExclusiveSummaryCopyWithImpl<$Res, $Val extends ExclusiveSummary>
    implements $ExclusiveSummaryCopyWith<$Res> {
  _$ExclusiveSummaryCopyWithImpl(this._value, this._then);

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

  /// Create a copy of ExclusiveSummary
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? organizationId = null,
    Object? outletId = null,
    Object? outletName = null,
    Object? period = null,
    Object? summary = null,
    Object? reimburse = null,
    Object? hppBreakdown = null,
    Object? operationalExpenseBreakdown = null,
    Object? dailySummary = null,
    Object? dailyTransactions = null,
  }) {
    return _then(
      _value.copyWith(
            organizationId: null == organizationId
                ? _value.organizationId
                : organizationId // ignore: cast_nullable_to_non_nullable
                      as String,
            outletId: null == outletId
                ? _value.outletId
                : outletId // ignore: cast_nullable_to_non_nullable
                      as String,
            outletName: null == outletName
                ? _value.outletName
                : outletName // ignore: cast_nullable_to_non_nullable
                      as String,
            period: null == period
                ? _value.period
                : period // ignore: cast_nullable_to_non_nullable
                      as ExclusiveSummaryPeriod,
            summary: null == summary
                ? _value.summary
                : summary // ignore: cast_nullable_to_non_nullable
                      as ExclusiveSummarySummary,
            reimburse: null == reimburse
                ? _value.reimburse
                : reimburse // ignore: cast_nullable_to_non_nullable
                      as ExclusiveSummaryReimburse,
            hppBreakdown: null == hppBreakdown
                ? _value.hppBreakdown
                : hppBreakdown // ignore: cast_nullable_to_non_nullable
                      as List<ExclusiveSummaryBreakdown>,
            operationalExpenseBreakdown: null == operationalExpenseBreakdown
                ? _value.operationalExpenseBreakdown
                : operationalExpenseBreakdown // ignore: cast_nullable_to_non_nullable
                      as List<ExclusiveSummaryBreakdown>,
            dailySummary: null == dailySummary
                ? _value.dailySummary
                : dailySummary // ignore: cast_nullable_to_non_nullable
                      as List<ExclusiveSummaryDaily>,
            dailyTransactions: null == dailyTransactions
                ? _value.dailyTransactions
                : dailyTransactions // ignore: cast_nullable_to_non_nullable
                      as List<ExclusiveSummaryTransaction>,
          )
          as $Val,
    );
  }

  /// Create a copy of ExclusiveSummary
  /// with the given fields replaced by the non-null parameter values.
  @override
  @pragma('vm:prefer-inline')
  $ExclusiveSummaryPeriodCopyWith<$Res> get period {
    return $ExclusiveSummaryPeriodCopyWith<$Res>(_value.period, (value) {
      return _then(_value.copyWith(period: value) as $Val);
    });
  }

  /// Create a copy of ExclusiveSummary
  /// with the given fields replaced by the non-null parameter values.
  @override
  @pragma('vm:prefer-inline')
  $ExclusiveSummarySummaryCopyWith<$Res> get summary {
    return $ExclusiveSummarySummaryCopyWith<$Res>(_value.summary, (value) {
      return _then(_value.copyWith(summary: value) as $Val);
    });
  }

  /// Create a copy of ExclusiveSummary
  /// with the given fields replaced by the non-null parameter values.
  @override
  @pragma('vm:prefer-inline')
  $ExclusiveSummaryReimburseCopyWith<$Res> get reimburse {
    return $ExclusiveSummaryReimburseCopyWith<$Res>(_value.reimburse, (value) {
      return _then(_value.copyWith(reimburse: value) as $Val);
    });
  }
}

/// @nodoc
abstract class _$$ExclusiveSummaryImplCopyWith<$Res>
    implements $ExclusiveSummaryCopyWith<$Res> {
  factory _$$ExclusiveSummaryImplCopyWith(
    _$ExclusiveSummaryImpl value,
    $Res Function(_$ExclusiveSummaryImpl) then,
  ) = __$$ExclusiveSummaryImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    String organizationId,
    String outletId,
    String outletName,
    ExclusiveSummaryPeriod period,
    ExclusiveSummarySummary summary,
    ExclusiveSummaryReimburse reimburse,
    List<ExclusiveSummaryBreakdown> hppBreakdown,
    List<ExclusiveSummaryBreakdown> operationalExpenseBreakdown,
    List<ExclusiveSummaryDaily> dailySummary,
    List<ExclusiveSummaryTransaction> dailyTransactions,
  });

  @override
  $ExclusiveSummaryPeriodCopyWith<$Res> get period;
  @override
  $ExclusiveSummarySummaryCopyWith<$Res> get summary;
  @override
  $ExclusiveSummaryReimburseCopyWith<$Res> get reimburse;
}

/// @nodoc
class __$$ExclusiveSummaryImplCopyWithImpl<$Res>
    extends _$ExclusiveSummaryCopyWithImpl<$Res, _$ExclusiveSummaryImpl>
    implements _$$ExclusiveSummaryImplCopyWith<$Res> {
  __$$ExclusiveSummaryImplCopyWithImpl(
    _$ExclusiveSummaryImpl _value,
    $Res Function(_$ExclusiveSummaryImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of ExclusiveSummary
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? organizationId = null,
    Object? outletId = null,
    Object? outletName = null,
    Object? period = null,
    Object? summary = null,
    Object? reimburse = null,
    Object? hppBreakdown = null,
    Object? operationalExpenseBreakdown = null,
    Object? dailySummary = null,
    Object? dailyTransactions = null,
  }) {
    return _then(
      _$ExclusiveSummaryImpl(
        organizationId: null == organizationId
            ? _value.organizationId
            : organizationId // ignore: cast_nullable_to_non_nullable
                  as String,
        outletId: null == outletId
            ? _value.outletId
            : outletId // ignore: cast_nullable_to_non_nullable
                  as String,
        outletName: null == outletName
            ? _value.outletName
            : outletName // ignore: cast_nullable_to_non_nullable
                  as String,
        period: null == period
            ? _value.period
            : period // ignore: cast_nullable_to_non_nullable
                  as ExclusiveSummaryPeriod,
        summary: null == summary
            ? _value.summary
            : summary // ignore: cast_nullable_to_non_nullable
                  as ExclusiveSummarySummary,
        reimburse: null == reimburse
            ? _value.reimburse
            : reimburse // ignore: cast_nullable_to_non_nullable
                  as ExclusiveSummaryReimburse,
        hppBreakdown: null == hppBreakdown
            ? _value._hppBreakdown
            : hppBreakdown // ignore: cast_nullable_to_non_nullable
                  as List<ExclusiveSummaryBreakdown>,
        operationalExpenseBreakdown: null == operationalExpenseBreakdown
            ? _value._operationalExpenseBreakdown
            : operationalExpenseBreakdown // ignore: cast_nullable_to_non_nullable
                  as List<ExclusiveSummaryBreakdown>,
        dailySummary: null == dailySummary
            ? _value._dailySummary
            : dailySummary // ignore: cast_nullable_to_non_nullable
                  as List<ExclusiveSummaryDaily>,
        dailyTransactions: null == dailyTransactions
            ? _value._dailyTransactions
            : dailyTransactions // ignore: cast_nullable_to_non_nullable
                  as List<ExclusiveSummaryTransaction>,
      ),
    );
  }
}

/// @nodoc

class _$ExclusiveSummaryImpl implements _ExclusiveSummary {
  const _$ExclusiveSummaryImpl({
    required this.organizationId,
    required this.outletId,
    required this.outletName,
    required this.period,
    required this.summary,
    required this.reimburse,
    required final List<ExclusiveSummaryBreakdown> hppBreakdown,
    required final List<ExclusiveSummaryBreakdown> operationalExpenseBreakdown,
    required final List<ExclusiveSummaryDaily> dailySummary,
    required final List<ExclusiveSummaryTransaction> dailyTransactions,
  }) : _hppBreakdown = hppBreakdown,
       _operationalExpenseBreakdown = operationalExpenseBreakdown,
       _dailySummary = dailySummary,
       _dailyTransactions = dailyTransactions;

  @override
  final String organizationId;
  @override
  final String outletId;
  @override
  final String outletName;
  @override
  final ExclusiveSummaryPeriod period;
  @override
  final ExclusiveSummarySummary summary;
  @override
  final ExclusiveSummaryReimburse reimburse;
  final List<ExclusiveSummaryBreakdown> _hppBreakdown;
  @override
  List<ExclusiveSummaryBreakdown> get hppBreakdown {
    if (_hppBreakdown is EqualUnmodifiableListView) return _hppBreakdown;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_hppBreakdown);
  }

  final List<ExclusiveSummaryBreakdown> _operationalExpenseBreakdown;
  @override
  List<ExclusiveSummaryBreakdown> get operationalExpenseBreakdown {
    if (_operationalExpenseBreakdown is EqualUnmodifiableListView)
      return _operationalExpenseBreakdown;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_operationalExpenseBreakdown);
  }

  final List<ExclusiveSummaryDaily> _dailySummary;
  @override
  List<ExclusiveSummaryDaily> get dailySummary {
    if (_dailySummary is EqualUnmodifiableListView) return _dailySummary;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_dailySummary);
  }

  final List<ExclusiveSummaryTransaction> _dailyTransactions;
  @override
  List<ExclusiveSummaryTransaction> get dailyTransactions {
    if (_dailyTransactions is EqualUnmodifiableListView)
      return _dailyTransactions;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_dailyTransactions);
  }

  @override
  String toString() {
    return 'ExclusiveSummary(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 _$ExclusiveSummaryImpl &&
            (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,
            ));
  }

  @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 ExclusiveSummary
  /// with the given fields replaced by the non-null parameter values.
  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  @pragma('vm:prefer-inline')
  _$$ExclusiveSummaryImplCopyWith<_$ExclusiveSummaryImpl> get copyWith =>
      __$$ExclusiveSummaryImplCopyWithImpl<_$ExclusiveSummaryImpl>(
        this,
        _$identity,
      );
}

abstract class _ExclusiveSummary implements ExclusiveSummary {
  const factory _ExclusiveSummary({
    required final String organizationId,
    required final String outletId,
    required final String outletName,
    required final ExclusiveSummaryPeriod period,
    required final ExclusiveSummarySummary summary,
    required final ExclusiveSummaryReimburse reimburse,
    required final List<ExclusiveSummaryBreakdown> hppBreakdown,
    required final List<ExclusiveSummaryBreakdown> operationalExpenseBreakdown,
    required final List<ExclusiveSummaryDaily> dailySummary,
    required final List<ExclusiveSummaryTransaction> dailyTransactions,
  }) = _$ExclusiveSummaryImpl;

  @override
  String get organizationId;
  @override
  String get outletId;
  @override
  String get outletName;
  @override
  ExclusiveSummaryPeriod get period;
  @override
  ExclusiveSummarySummary get summary;
  @override
  ExclusiveSummaryReimburse get reimburse;
  @override
  List<ExclusiveSummaryBreakdown> get hppBreakdown;
  @override
  List<ExclusiveSummaryBreakdown> get operationalExpenseBreakdown;
  @override
  List<ExclusiveSummaryDaily> get dailySummary;
  @override
  List<ExclusiveSummaryTransaction> get dailyTransactions;

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

/// @nodoc
mixin _$ExclusiveSummaryPeriod {
  DateTime get dateFrom => throw _privateConstructorUsedError;
  DateTime get dateTo => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $ExclusiveSummaryPeriodCopyWith<$Res> {
  factory $ExclusiveSummaryPeriodCopyWith(
    ExclusiveSummaryPeriod value,
    $Res Function(ExclusiveSummaryPeriod) then,
  ) = _$ExclusiveSummaryPeriodCopyWithImpl<$Res, ExclusiveSummaryPeriod>;
  @useResult
  $Res call({DateTime dateFrom, DateTime dateTo});
}

/// @nodoc
class _$ExclusiveSummaryPeriodCopyWithImpl<
  $Res,
  $Val extends ExclusiveSummaryPeriod
>
    implements $ExclusiveSummaryPeriodCopyWith<$Res> {
  _$ExclusiveSummaryPeriodCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$ExclusiveSummaryPeriodImplCopyWith<$Res>
    implements $ExclusiveSummaryPeriodCopyWith<$Res> {
  factory _$$ExclusiveSummaryPeriodImplCopyWith(
    _$ExclusiveSummaryPeriodImpl value,
    $Res Function(_$ExclusiveSummaryPeriodImpl) then,
  ) = __$$ExclusiveSummaryPeriodImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({DateTime dateFrom, DateTime dateTo});
}

/// @nodoc
class __$$ExclusiveSummaryPeriodImplCopyWithImpl<$Res>
    extends
        _$ExclusiveSummaryPeriodCopyWithImpl<$Res, _$ExclusiveSummaryPeriodImpl>
    implements _$$ExclusiveSummaryPeriodImplCopyWith<$Res> {
  __$$ExclusiveSummaryPeriodImplCopyWithImpl(
    _$ExclusiveSummaryPeriodImpl _value,
    $Res Function(_$ExclusiveSummaryPeriodImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$ExclusiveSummaryPeriodImpl implements _ExclusiveSummaryPeriod {
  const _$ExclusiveSummaryPeriodImpl({
    required this.dateFrom,
    required this.dateTo,
  });

  @override
  final DateTime dateFrom;
  @override
  final DateTime dateTo;

  @override
  String toString() {
    return 'ExclusiveSummaryPeriod(dateFrom: $dateFrom, dateTo: $dateTo)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ExclusiveSummaryPeriodImpl &&
            (identical(other.dateFrom, dateFrom) ||
                other.dateFrom == dateFrom) &&
            (identical(other.dateTo, dateTo) || other.dateTo == dateTo));
  }

  @override
  int get hashCode => Object.hash(runtimeType, dateFrom, dateTo);

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

abstract class _ExclusiveSummaryPeriod implements ExclusiveSummaryPeriod {
  const factory _ExclusiveSummaryPeriod({
    required final DateTime dateFrom,
    required final DateTime dateTo,
  }) = _$ExclusiveSummaryPeriodImpl;

  @override
  DateTime get dateFrom;
  @override
  DateTime get dateTo;

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

/// @nodoc
mixin _$ExclusiveSummarySummary {
  int get sales => throw _privateConstructorUsedError;
  int get hpp => throw _privateConstructorUsedError;
  int get grossProfit => throw _privateConstructorUsedError;
  int get salaryTotal => throw _privateConstructorUsedError;
  int get salaryDw => throw _privateConstructorUsedError;
  int get salaryStaff => throw _privateConstructorUsedError;
  int get salaryOther => throw _privateConstructorUsedError;
  int get otherOperationalExpenses => throw _privateConstructorUsedError;
  int get operationalExpensesTotal => throw _privateConstructorUsedError;
  int get totalCost => throw _privateConstructorUsedError;
  int get netProfit => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $ExclusiveSummarySummaryCopyWith<$Res> {
  factory $ExclusiveSummarySummaryCopyWith(
    ExclusiveSummarySummary value,
    $Res Function(ExclusiveSummarySummary) then,
  ) = _$ExclusiveSummarySummaryCopyWithImpl<$Res, ExclusiveSummarySummary>;
  @useResult
  $Res call({
    int sales,
    int hpp,
    int grossProfit,
    int salaryTotal,
    int salaryDw,
    int salaryStaff,
    int salaryOther,
    int otherOperationalExpenses,
    int operationalExpensesTotal,
    int totalCost,
    int netProfit,
  });
}

/// @nodoc
class _$ExclusiveSummarySummaryCopyWithImpl<
  $Res,
  $Val extends ExclusiveSummarySummary
>
    implements $ExclusiveSummarySummaryCopyWith<$Res> {
  _$ExclusiveSummarySummaryCopyWithImpl(this._value, this._then);

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

  /// Create a copy of ExclusiveSummarySummary
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? sales = null,
    Object? hpp = null,
    Object? grossProfit = null,
    Object? salaryTotal = null,
    Object? salaryDw = null,
    Object? salaryStaff = null,
    Object? salaryOther = null,
    Object? otherOperationalExpenses = null,
    Object? operationalExpensesTotal = null,
    Object? totalCost = null,
    Object? netProfit = null,
  }) {
    return _then(
      _value.copyWith(
            sales: null == sales
                ? _value.sales
                : sales // ignore: cast_nullable_to_non_nullable
                      as int,
            hpp: null == hpp
                ? _value.hpp
                : hpp // ignore: cast_nullable_to_non_nullable
                      as int,
            grossProfit: null == grossProfit
                ? _value.grossProfit
                : grossProfit // ignore: cast_nullable_to_non_nullable
                      as int,
            salaryTotal: null == salaryTotal
                ? _value.salaryTotal
                : salaryTotal // ignore: cast_nullable_to_non_nullable
                      as int,
            salaryDw: null == salaryDw
                ? _value.salaryDw
                : salaryDw // ignore: cast_nullable_to_non_nullable
                      as int,
            salaryStaff: null == salaryStaff
                ? _value.salaryStaff
                : salaryStaff // ignore: cast_nullable_to_non_nullable
                      as int,
            salaryOther: null == salaryOther
                ? _value.salaryOther
                : salaryOther // ignore: cast_nullable_to_non_nullable
                      as int,
            otherOperationalExpenses: null == otherOperationalExpenses
                ? _value.otherOperationalExpenses
                : otherOperationalExpenses // ignore: cast_nullable_to_non_nullable
                      as int,
            operationalExpensesTotal: null == operationalExpensesTotal
                ? _value.operationalExpensesTotal
                : operationalExpensesTotal // ignore: cast_nullable_to_non_nullable
                      as int,
            totalCost: null == totalCost
                ? _value.totalCost
                : totalCost // ignore: cast_nullable_to_non_nullable
                      as int,
            netProfit: null == netProfit
                ? _value.netProfit
                : netProfit // ignore: cast_nullable_to_non_nullable
                      as int,
          )
          as $Val,
    );
  }
}

/// @nodoc
abstract class _$$ExclusiveSummarySummaryImplCopyWith<$Res>
    implements $ExclusiveSummarySummaryCopyWith<$Res> {
  factory _$$ExclusiveSummarySummaryImplCopyWith(
    _$ExclusiveSummarySummaryImpl value,
    $Res Function(_$ExclusiveSummarySummaryImpl) then,
  ) = __$$ExclusiveSummarySummaryImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    int sales,
    int hpp,
    int grossProfit,
    int salaryTotal,
    int salaryDw,
    int salaryStaff,
    int salaryOther,
    int otherOperationalExpenses,
    int operationalExpensesTotal,
    int totalCost,
    int netProfit,
  });
}

/// @nodoc
class __$$ExclusiveSummarySummaryImplCopyWithImpl<$Res>
    extends
        _$ExclusiveSummarySummaryCopyWithImpl<
          $Res,
          _$ExclusiveSummarySummaryImpl
        >
    implements _$$ExclusiveSummarySummaryImplCopyWith<$Res> {
  __$$ExclusiveSummarySummaryImplCopyWithImpl(
    _$ExclusiveSummarySummaryImpl _value,
    $Res Function(_$ExclusiveSummarySummaryImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of ExclusiveSummarySummary
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? sales = null,
    Object? hpp = null,
    Object? grossProfit = null,
    Object? salaryTotal = null,
    Object? salaryDw = null,
    Object? salaryStaff = null,
    Object? salaryOther = null,
    Object? otherOperationalExpenses = null,
    Object? operationalExpensesTotal = null,
    Object? totalCost = null,
    Object? netProfit = null,
  }) {
    return _then(
      _$ExclusiveSummarySummaryImpl(
        sales: null == sales
            ? _value.sales
            : sales // ignore: cast_nullable_to_non_nullable
                  as int,
        hpp: null == hpp
            ? _value.hpp
            : hpp // ignore: cast_nullable_to_non_nullable
                  as int,
        grossProfit: null == grossProfit
            ? _value.grossProfit
            : grossProfit // ignore: cast_nullable_to_non_nullable
                  as int,
        salaryTotal: null == salaryTotal
            ? _value.salaryTotal
            : salaryTotal // ignore: cast_nullable_to_non_nullable
                  as int,
        salaryDw: null == salaryDw
            ? _value.salaryDw
            : salaryDw // ignore: cast_nullable_to_non_nullable
                  as int,
        salaryStaff: null == salaryStaff
            ? _value.salaryStaff
            : salaryStaff // ignore: cast_nullable_to_non_nullable
                  as int,
        salaryOther: null == salaryOther
            ? _value.salaryOther
            : salaryOther // ignore: cast_nullable_to_non_nullable
                  as int,
        otherOperationalExpenses: null == otherOperationalExpenses
            ? _value.otherOperationalExpenses
            : otherOperationalExpenses // ignore: cast_nullable_to_non_nullable
                  as int,
        operationalExpensesTotal: null == operationalExpensesTotal
            ? _value.operationalExpensesTotal
            : operationalExpensesTotal // ignore: cast_nullable_to_non_nullable
                  as int,
        totalCost: null == totalCost
            ? _value.totalCost
            : totalCost // ignore: cast_nullable_to_non_nullable
                  as int,
        netProfit: null == netProfit
            ? _value.netProfit
            : netProfit // ignore: cast_nullable_to_non_nullable
                  as int,
      ),
    );
  }
}

/// @nodoc

class _$ExclusiveSummarySummaryImpl implements _ExclusiveSummarySummary {
  const _$ExclusiveSummarySummaryImpl({
    required this.sales,
    required this.hpp,
    required this.grossProfit,
    required this.salaryTotal,
    required this.salaryDw,
    required this.salaryStaff,
    required this.salaryOther,
    required this.otherOperationalExpenses,
    required this.operationalExpensesTotal,
    required this.totalCost,
    required this.netProfit,
  });

  @override
  final int sales;
  @override
  final int hpp;
  @override
  final int grossProfit;
  @override
  final int salaryTotal;
  @override
  final int salaryDw;
  @override
  final int salaryStaff;
  @override
  final int salaryOther;
  @override
  final int otherOperationalExpenses;
  @override
  final int operationalExpensesTotal;
  @override
  final int totalCost;
  @override
  final int netProfit;

  @override
  String toString() {
    return 'ExclusiveSummarySummary(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 _$ExclusiveSummarySummaryImpl &&
            (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));
  }

  @override
  int get hashCode => Object.hash(
    runtimeType,
    sales,
    hpp,
    grossProfit,
    salaryTotal,
    salaryDw,
    salaryStaff,
    salaryOther,
    otherOperationalExpenses,
    operationalExpensesTotal,
    totalCost,
    netProfit,
  );

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

abstract class _ExclusiveSummarySummary implements ExclusiveSummarySummary {
  const factory _ExclusiveSummarySummary({
    required final int sales,
    required final int hpp,
    required final int grossProfit,
    required final int salaryTotal,
    required final int salaryDw,
    required final int salaryStaff,
    required final int salaryOther,
    required final int otherOperationalExpenses,
    required final int operationalExpensesTotal,
    required final int totalCost,
    required final int netProfit,
  }) = _$ExclusiveSummarySummaryImpl;

  @override
  int get sales;
  @override
  int get hpp;
  @override
  int get grossProfit;
  @override
  int get salaryTotal;
  @override
  int get salaryDw;
  @override
  int get salaryStaff;
  @override
  int get salaryOther;
  @override
  int get otherOperationalExpenses;
  @override
  int get operationalExpensesTotal;
  @override
  int get totalCost;
  @override
  int get netProfit;

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

/// @nodoc
mixin _$ExclusiveSummaryReimburse {
  int get totalCost => throw _privateConstructorUsedError;
  int get excludedSalaryStaff => throw _privateConstructorUsedError;
  int get totalReimburse => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $ExclusiveSummaryReimburseCopyWith<$Res> {
  factory $ExclusiveSummaryReimburseCopyWith(
    ExclusiveSummaryReimburse value,
    $Res Function(ExclusiveSummaryReimburse) then,
  ) = _$ExclusiveSummaryReimburseCopyWithImpl<$Res, ExclusiveSummaryReimburse>;
  @useResult
  $Res call({int totalCost, int excludedSalaryStaff, int totalReimburse});
}

/// @nodoc
class _$ExclusiveSummaryReimburseCopyWithImpl<
  $Res,
  $Val extends ExclusiveSummaryReimburse
>
    implements $ExclusiveSummaryReimburseCopyWith<$Res> {
  _$ExclusiveSummaryReimburseCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$ExclusiveSummaryReimburseImplCopyWith<$Res>
    implements $ExclusiveSummaryReimburseCopyWith<$Res> {
  factory _$$ExclusiveSummaryReimburseImplCopyWith(
    _$ExclusiveSummaryReimburseImpl value,
    $Res Function(_$ExclusiveSummaryReimburseImpl) then,
  ) = __$$ExclusiveSummaryReimburseImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({int totalCost, int excludedSalaryStaff, int totalReimburse});
}

/// @nodoc
class __$$ExclusiveSummaryReimburseImplCopyWithImpl<$Res>
    extends
        _$ExclusiveSummaryReimburseCopyWithImpl<
          $Res,
          _$ExclusiveSummaryReimburseImpl
        >
    implements _$$ExclusiveSummaryReimburseImplCopyWith<$Res> {
  __$$ExclusiveSummaryReimburseImplCopyWithImpl(
    _$ExclusiveSummaryReimburseImpl _value,
    $Res Function(_$ExclusiveSummaryReimburseImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$ExclusiveSummaryReimburseImpl implements _ExclusiveSummaryReimburse {
  const _$ExclusiveSummaryReimburseImpl({
    required this.totalCost,
    required this.excludedSalaryStaff,
    required this.totalReimburse,
  });

  @override
  final int totalCost;
  @override
  final int excludedSalaryStaff;
  @override
  final int totalReimburse;

  @override
  String toString() {
    return 'ExclusiveSummaryReimburse(totalCost: $totalCost, excludedSalaryStaff: $excludedSalaryStaff, totalReimburse: $totalReimburse)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ExclusiveSummaryReimburseImpl &&
            (identical(other.totalCost, totalCost) ||
                other.totalCost == totalCost) &&
            (identical(other.excludedSalaryStaff, excludedSalaryStaff) ||
                other.excludedSalaryStaff == excludedSalaryStaff) &&
            (identical(other.totalReimburse, totalReimburse) ||
                other.totalReimburse == totalReimburse));
  }

  @override
  int get hashCode =>
      Object.hash(runtimeType, totalCost, excludedSalaryStaff, totalReimburse);

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

abstract class _ExclusiveSummaryReimburse implements ExclusiveSummaryReimburse {
  const factory _ExclusiveSummaryReimburse({
    required final int totalCost,
    required final int excludedSalaryStaff,
    required final int totalReimburse,
  }) = _$ExclusiveSummaryReimburseImpl;

  @override
  int get totalCost;
  @override
  int get excludedSalaryStaff;
  @override
  int get totalReimburse;

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

/// @nodoc
mixin _$ExclusiveSummaryBreakdown {
  String get categoryCode => throw _privateConstructorUsedError;
  String get categoryName => throw _privateConstructorUsedError;
  int get amount => throw _privateConstructorUsedError;
  double get percentage => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $ExclusiveSummaryBreakdownCopyWith<$Res> {
  factory $ExclusiveSummaryBreakdownCopyWith(
    ExclusiveSummaryBreakdown value,
    $Res Function(ExclusiveSummaryBreakdown) then,
  ) = _$ExclusiveSummaryBreakdownCopyWithImpl<$Res, ExclusiveSummaryBreakdown>;
  @useResult
  $Res call({
    String categoryCode,
    String categoryName,
    int amount,
    double percentage,
  });
}

/// @nodoc
class _$ExclusiveSummaryBreakdownCopyWithImpl<
  $Res,
  $Val extends ExclusiveSummaryBreakdown
>
    implements $ExclusiveSummaryBreakdownCopyWith<$Res> {
  _$ExclusiveSummaryBreakdownCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$ExclusiveSummaryBreakdownImplCopyWith<$Res>
    implements $ExclusiveSummaryBreakdownCopyWith<$Res> {
  factory _$$ExclusiveSummaryBreakdownImplCopyWith(
    _$ExclusiveSummaryBreakdownImpl value,
    $Res Function(_$ExclusiveSummaryBreakdownImpl) then,
  ) = __$$ExclusiveSummaryBreakdownImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    String categoryCode,
    String categoryName,
    int amount,
    double percentage,
  });
}

/// @nodoc
class __$$ExclusiveSummaryBreakdownImplCopyWithImpl<$Res>
    extends
        _$ExclusiveSummaryBreakdownCopyWithImpl<
          $Res,
          _$ExclusiveSummaryBreakdownImpl
        >
    implements _$$ExclusiveSummaryBreakdownImplCopyWith<$Res> {
  __$$ExclusiveSummaryBreakdownImplCopyWithImpl(
    _$ExclusiveSummaryBreakdownImpl _value,
    $Res Function(_$ExclusiveSummaryBreakdownImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$ExclusiveSummaryBreakdownImpl implements _ExclusiveSummaryBreakdown {
  const _$ExclusiveSummaryBreakdownImpl({
    required this.categoryCode,
    required this.categoryName,
    required this.amount,
    required this.percentage,
  });

  @override
  final String categoryCode;
  @override
  final String categoryName;
  @override
  final int amount;
  @override
  final double percentage;

  @override
  String toString() {
    return 'ExclusiveSummaryBreakdown(categoryCode: $categoryCode, categoryName: $categoryName, amount: $amount, percentage: $percentage)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ExclusiveSummaryBreakdownImpl &&
            (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));
  }

  @override
  int get hashCode =>
      Object.hash(runtimeType, categoryCode, categoryName, amount, percentage);

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

abstract class _ExclusiveSummaryBreakdown implements ExclusiveSummaryBreakdown {
  const factory _ExclusiveSummaryBreakdown({
    required final String categoryCode,
    required final String categoryName,
    required final int amount,
    required final double percentage,
  }) = _$ExclusiveSummaryBreakdownImpl;

  @override
  String get categoryCode;
  @override
  String get categoryName;
  @override
  int get amount;
  @override
  double get percentage;

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

/// @nodoc
mixin _$ExclusiveSummaryDaily {
  DateTime get date => throw _privateConstructorUsedError;
  int get transactionCount => throw _privateConstructorUsedError;
  int get totalCost => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $ExclusiveSummaryDailyCopyWith<$Res> {
  factory $ExclusiveSummaryDailyCopyWith(
    ExclusiveSummaryDaily value,
    $Res Function(ExclusiveSummaryDaily) then,
  ) = _$ExclusiveSummaryDailyCopyWithImpl<$Res, ExclusiveSummaryDaily>;
  @useResult
  $Res call({DateTime date, int transactionCount, int totalCost});
}

/// @nodoc
class _$ExclusiveSummaryDailyCopyWithImpl<
  $Res,
  $Val extends ExclusiveSummaryDaily
>
    implements $ExclusiveSummaryDailyCopyWith<$Res> {
  _$ExclusiveSummaryDailyCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$ExclusiveSummaryDailyImplCopyWith<$Res>
    implements $ExclusiveSummaryDailyCopyWith<$Res> {
  factory _$$ExclusiveSummaryDailyImplCopyWith(
    _$ExclusiveSummaryDailyImpl value,
    $Res Function(_$ExclusiveSummaryDailyImpl) then,
  ) = __$$ExclusiveSummaryDailyImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({DateTime date, int transactionCount, int totalCost});
}

/// @nodoc
class __$$ExclusiveSummaryDailyImplCopyWithImpl<$Res>
    extends
        _$ExclusiveSummaryDailyCopyWithImpl<$Res, _$ExclusiveSummaryDailyImpl>
    implements _$$ExclusiveSummaryDailyImplCopyWith<$Res> {
  __$$ExclusiveSummaryDailyImplCopyWithImpl(
    _$ExclusiveSummaryDailyImpl _value,
    $Res Function(_$ExclusiveSummaryDailyImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$ExclusiveSummaryDailyImpl implements _ExclusiveSummaryDaily {
  const _$ExclusiveSummaryDailyImpl({
    required this.date,
    required this.transactionCount,
    required this.totalCost,
  });

  @override
  final DateTime date;
  @override
  final int transactionCount;
  @override
  final int totalCost;

  @override
  String toString() {
    return 'ExclusiveSummaryDaily(date: $date, transactionCount: $transactionCount, totalCost: $totalCost)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ExclusiveSummaryDailyImpl &&
            (identical(other.date, date) || other.date == date) &&
            (identical(other.transactionCount, transactionCount) ||
                other.transactionCount == transactionCount) &&
            (identical(other.totalCost, totalCost) ||
                other.totalCost == totalCost));
  }

  @override
  int get hashCode =>
      Object.hash(runtimeType, date, transactionCount, totalCost);

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

abstract class _ExclusiveSummaryDaily implements ExclusiveSummaryDaily {
  const factory _ExclusiveSummaryDaily({
    required final DateTime date,
    required final int transactionCount,
    required final int totalCost,
  }) = _$ExclusiveSummaryDailyImpl;

  @override
  DateTime get date;
  @override
  int get transactionCount;
  @override
  int get totalCost;

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

/// @nodoc
mixin _$ExclusiveSummaryTransaction {
  DateTime get date => throw _privateConstructorUsedError;
  String get categoryCode => throw _privateConstructorUsedError;
  String get categoryName => throw _privateConstructorUsedError;
  String get description => throw _privateConstructorUsedError;
  int get amount => throw _privateConstructorUsedError;
  String get source => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $ExclusiveSummaryTransactionCopyWith<$Res> {
  factory $ExclusiveSummaryTransactionCopyWith(
    ExclusiveSummaryTransaction value,
    $Res Function(ExclusiveSummaryTransaction) then,
  ) =
      _$ExclusiveSummaryTransactionCopyWithImpl<
        $Res,
        ExclusiveSummaryTransaction
      >;
  @useResult
  $Res call({
    DateTime date,
    String categoryCode,
    String categoryName,
    String description,
    int amount,
    String source,
  });
}

/// @nodoc
class _$ExclusiveSummaryTransactionCopyWithImpl<
  $Res,
  $Val extends ExclusiveSummaryTransaction
>
    implements $ExclusiveSummaryTransactionCopyWith<$Res> {
  _$ExclusiveSummaryTransactionCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$ExclusiveSummaryTransactionImplCopyWith<$Res>
    implements $ExclusiveSummaryTransactionCopyWith<$Res> {
  factory _$$ExclusiveSummaryTransactionImplCopyWith(
    _$ExclusiveSummaryTransactionImpl value,
    $Res Function(_$ExclusiveSummaryTransactionImpl) then,
  ) = __$$ExclusiveSummaryTransactionImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    DateTime date,
    String categoryCode,
    String categoryName,
    String description,
    int amount,
    String source,
  });
}

/// @nodoc
class __$$ExclusiveSummaryTransactionImplCopyWithImpl<$Res>
    extends
        _$ExclusiveSummaryTransactionCopyWithImpl<
          $Res,
          _$ExclusiveSummaryTransactionImpl
        >
    implements _$$ExclusiveSummaryTransactionImplCopyWith<$Res> {
  __$$ExclusiveSummaryTransactionImplCopyWithImpl(
    _$ExclusiveSummaryTransactionImpl _value,
    $Res Function(_$ExclusiveSummaryTransactionImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of ExclusiveSummaryTransaction
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? date = null,
    Object? categoryCode = null,
    Object? categoryName = null,
    Object? description = null,
    Object? amount = null,
    Object? source = null,
  }) {
    return _then(
      _$ExclusiveSummaryTransactionImpl(
        date: null == date
            ? _value.date
            : date // ignore: cast_nullable_to_non_nullable
                  as DateTime,
        categoryCode: null == categoryCode
            ? _value.categoryCode
            : categoryCode // ignore: cast_nullable_to_non_nullable
                  as String,
        categoryName: null == categoryName
            ? _value.categoryName
            : categoryName // ignore: cast_nullable_to_non_nullable
                  as String,
        description: null == description
            ? _value.description
            : description // ignore: cast_nullable_to_non_nullable
                  as String,
        amount: null == amount
            ? _value.amount
            : amount // ignore: cast_nullable_to_non_nullable
                  as int,
        source: null == source
            ? _value.source
            : source // ignore: cast_nullable_to_non_nullable
                  as String,
      ),
    );
  }
}

/// @nodoc

class _$ExclusiveSummaryTransactionImpl
    implements _ExclusiveSummaryTransaction {
  const _$ExclusiveSummaryTransactionImpl({
    required this.date,
    required this.categoryCode,
    required this.categoryName,
    required this.description,
    required this.amount,
    required this.source,
  });

  @override
  final DateTime date;
  @override
  final String categoryCode;
  @override
  final String categoryName;
  @override
  final String description;
  @override
  final int amount;
  @override
  final String source;

  @override
  String toString() {
    return 'ExclusiveSummaryTransaction(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 _$ExclusiveSummaryTransactionImpl &&
            (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));
  }

  @override
  int get hashCode => Object.hash(
    runtimeType,
    date,
    categoryCode,
    categoryName,
    description,
    amount,
    source,
  );

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

abstract class _ExclusiveSummaryTransaction
    implements ExclusiveSummaryTransaction {
  const factory _ExclusiveSummaryTransaction({
    required final DateTime date,
    required final String categoryCode,
    required final String categoryName,
    required final String description,
    required final int amount,
    required final String source,
  }) = _$ExclusiveSummaryTransactionImpl;

  @override
  DateTime get date;
  @override
  String get categoryCode;
  @override
  String get categoryName;
  @override
  String get description;
  @override
  int get amount;
  @override
  String get source;

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

/// @nodoc
mixin _$ProfitSharing {
  String get organizationId => throw _privateConstructorUsedError;
  String get outletId => throw _privateConstructorUsedError;
  String get outletName => throw _privateConstructorUsedError;
  DateTime get dateFrom => throw _privateConstructorUsedError;
  DateTime get dateTo => throw _privateConstructorUsedError;
  List<ProfitSharingCategory> get categories =>
      throw _privateConstructorUsedError;
  ProfitSharingBudget get budget => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $ProfitSharingCopyWith<$Res> {
  factory $ProfitSharingCopyWith(
    ProfitSharing value,
    $Res Function(ProfitSharing) then,
  ) = _$ProfitSharingCopyWithImpl<$Res, ProfitSharing>;
  @useResult
  $Res call({
    String organizationId,
    String outletId,
    String outletName,
    DateTime dateFrom,
    DateTime dateTo,
    List<ProfitSharingCategory> categories,
    ProfitSharingBudget budget,
  });

  $ProfitSharingBudgetCopyWith<$Res> get budget;
}

/// @nodoc
class _$ProfitSharingCopyWithImpl<$Res, $Val extends ProfitSharing>
    implements $ProfitSharingCopyWith<$Res> {
  _$ProfitSharingCopyWithImpl(this._value, this._then);

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

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

  /// Create a copy of ProfitSharing
  /// with the given fields replaced by the non-null parameter values.
  @override
  @pragma('vm:prefer-inline')
  $ProfitSharingBudgetCopyWith<$Res> get budget {
    return $ProfitSharingBudgetCopyWith<$Res>(_value.budget, (value) {
      return _then(_value.copyWith(budget: value) as $Val);
    });
  }
}

/// @nodoc
abstract class _$$ProfitSharingImplCopyWith<$Res>
    implements $ProfitSharingCopyWith<$Res> {
  factory _$$ProfitSharingImplCopyWith(
    _$ProfitSharingImpl value,
    $Res Function(_$ProfitSharingImpl) then,
  ) = __$$ProfitSharingImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    String organizationId,
    String outletId,
    String outletName,
    DateTime dateFrom,
    DateTime dateTo,
    List<ProfitSharingCategory> categories,
    ProfitSharingBudget budget,
  });

  @override
  $ProfitSharingBudgetCopyWith<$Res> get budget;
}

/// @nodoc
class __$$ProfitSharingImplCopyWithImpl<$Res>
    extends _$ProfitSharingCopyWithImpl<$Res, _$ProfitSharingImpl>
    implements _$$ProfitSharingImplCopyWith<$Res> {
  __$$ProfitSharingImplCopyWithImpl(
    _$ProfitSharingImpl _value,
    $Res Function(_$ProfitSharingImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of ProfitSharing
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? organizationId = null,
    Object? outletId = null,
    Object? outletName = null,
    Object? dateFrom = null,
    Object? dateTo = null,
    Object? categories = null,
    Object? budget = null,
  }) {
    return _then(
      _$ProfitSharingImpl(
        organizationId: null == organizationId
            ? _value.organizationId
            : organizationId // ignore: cast_nullable_to_non_nullable
                  as String,
        outletId: null == outletId
            ? _value.outletId
            : outletId // ignore: cast_nullable_to_non_nullable
                  as String,
        outletName: null == outletName
            ? _value.outletName
            : outletName // ignore: cast_nullable_to_non_nullable
                  as String,
        dateFrom: null == dateFrom
            ? _value.dateFrom
            : dateFrom // ignore: cast_nullable_to_non_nullable
                  as DateTime,
        dateTo: null == dateTo
            ? _value.dateTo
            : dateTo // ignore: cast_nullable_to_non_nullable
                  as DateTime,
        categories: null == categories
            ? _value._categories
            : categories // ignore: cast_nullable_to_non_nullable
                  as List<ProfitSharingCategory>,
        budget: null == budget
            ? _value.budget
            : budget // ignore: cast_nullable_to_non_nullable
                  as ProfitSharingBudget,
      ),
    );
  }
}

/// @nodoc

class _$ProfitSharingImpl implements _ProfitSharing {
  const _$ProfitSharingImpl({
    required this.organizationId,
    required this.outletId,
    required this.outletName,
    required this.dateFrom,
    required this.dateTo,
    required final List<ProfitSharingCategory> categories,
    required this.budget,
  }) : _categories = categories;

  @override
  final String organizationId;
  @override
  final String outletId;
  @override
  final String outletName;
  @override
  final DateTime dateFrom;
  @override
  final DateTime dateTo;
  final List<ProfitSharingCategory> _categories;
  @override
  List<ProfitSharingCategory> get categories {
    if (_categories is EqualUnmodifiableListView) return _categories;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_categories);
  }

  @override
  final ProfitSharingBudget budget;

  @override
  String toString() {
    return 'ProfitSharing(organizationId: $organizationId, outletId: $outletId, outletName: $outletName, dateFrom: $dateFrom, dateTo: $dateTo, categories: $categories, budget: $budget)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ProfitSharingImpl &&
            (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._categories,
              _categories,
            ) &&
            (identical(other.budget, budget) || other.budget == budget));
  }

  @override
  int get hashCode => Object.hash(
    runtimeType,
    organizationId,
    outletId,
    outletName,
    dateFrom,
    dateTo,
    const DeepCollectionEquality().hash(_categories),
    budget,
  );

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

abstract class _ProfitSharing implements ProfitSharing {
  const factory _ProfitSharing({
    required final String organizationId,
    required final String outletId,
    required final String outletName,
    required final DateTime dateFrom,
    required final DateTime dateTo,
    required final List<ProfitSharingCategory> categories,
    required final ProfitSharingBudget budget,
  }) = _$ProfitSharingImpl;

  @override
  String get organizationId;
  @override
  String get outletId;
  @override
  String get outletName;
  @override
  DateTime get dateFrom;
  @override
  DateTime get dateTo;
  @override
  List<ProfitSharingCategory> get categories;
  @override
  ProfitSharingBudget get budget;

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

/// @nodoc
mixin _$ProfitSharingCategory {
  String get parentCategoryId => throw _privateConstructorUsedError;
  String get parentCategoryName => throw _privateConstructorUsedError;
  int get totalRevenue => throw _privateConstructorUsedError;
  int get totalQuantity => throw _privateConstructorUsedError;
  int get categoryCount => throw _privateConstructorUsedError;
  int get productCount => throw _privateConstructorUsedError;
  int get orderCount => throw _privateConstructorUsedError;
  int get totalStandardHpp => throw _privateConstructorUsedError;
  int get totalFifoHpp => throw _privateConstructorUsedError;
  int get totalMovingAverageHpp => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $ProfitSharingCategoryCopyWith<$Res> {
  factory $ProfitSharingCategoryCopyWith(
    ProfitSharingCategory value,
    $Res Function(ProfitSharingCategory) then,
  ) = _$ProfitSharingCategoryCopyWithImpl<$Res, ProfitSharingCategory>;
  @useResult
  $Res call({
    String parentCategoryId,
    String parentCategoryName,
    int totalRevenue,
    int totalQuantity,
    int categoryCount,
    int productCount,
    int orderCount,
    int totalStandardHpp,
    int totalFifoHpp,
    int totalMovingAverageHpp,
  });
}

/// @nodoc
class _$ProfitSharingCategoryCopyWithImpl<
  $Res,
  $Val extends ProfitSharingCategory
>
    implements $ProfitSharingCategoryCopyWith<$Res> {
  _$ProfitSharingCategoryCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$ProfitSharingCategoryImplCopyWith<$Res>
    implements $ProfitSharingCategoryCopyWith<$Res> {
  factory _$$ProfitSharingCategoryImplCopyWith(
    _$ProfitSharingCategoryImpl value,
    $Res Function(_$ProfitSharingCategoryImpl) then,
  ) = __$$ProfitSharingCategoryImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    String parentCategoryId,
    String parentCategoryName,
    int totalRevenue,
    int totalQuantity,
    int categoryCount,
    int productCount,
    int orderCount,
    int totalStandardHpp,
    int totalFifoHpp,
    int totalMovingAverageHpp,
  });
}

/// @nodoc
class __$$ProfitSharingCategoryImplCopyWithImpl<$Res>
    extends
        _$ProfitSharingCategoryCopyWithImpl<$Res, _$ProfitSharingCategoryImpl>
    implements _$$ProfitSharingCategoryImplCopyWith<$Res> {
  __$$ProfitSharingCategoryImplCopyWithImpl(
    _$ProfitSharingCategoryImpl _value,
    $Res Function(_$ProfitSharingCategoryImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of ProfitSharingCategory
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? parentCategoryId = null,
    Object? parentCategoryName = null,
    Object? totalRevenue = null,
    Object? totalQuantity = null,
    Object? categoryCount = null,
    Object? productCount = null,
    Object? orderCount = null,
    Object? totalStandardHpp = null,
    Object? totalFifoHpp = null,
    Object? totalMovingAverageHpp = null,
  }) {
    return _then(
      _$ProfitSharingCategoryImpl(
        parentCategoryId: null == parentCategoryId
            ? _value.parentCategoryId
            : parentCategoryId // ignore: cast_nullable_to_non_nullable
                  as String,
        parentCategoryName: null == parentCategoryName
            ? _value.parentCategoryName
            : parentCategoryName // ignore: cast_nullable_to_non_nullable
                  as String,
        totalRevenue: null == totalRevenue
            ? _value.totalRevenue
            : totalRevenue // ignore: cast_nullable_to_non_nullable
                  as int,
        totalQuantity: null == totalQuantity
            ? _value.totalQuantity
            : totalQuantity // ignore: cast_nullable_to_non_nullable
                  as int,
        categoryCount: null == categoryCount
            ? _value.categoryCount
            : categoryCount // ignore: cast_nullable_to_non_nullable
                  as int,
        productCount: null == productCount
            ? _value.productCount
            : productCount // ignore: cast_nullable_to_non_nullable
                  as int,
        orderCount: null == orderCount
            ? _value.orderCount
            : orderCount // ignore: cast_nullable_to_non_nullable
                  as int,
        totalStandardHpp: null == totalStandardHpp
            ? _value.totalStandardHpp
            : totalStandardHpp // ignore: cast_nullable_to_non_nullable
                  as int,
        totalFifoHpp: null == totalFifoHpp
            ? _value.totalFifoHpp
            : totalFifoHpp // ignore: cast_nullable_to_non_nullable
                  as int,
        totalMovingAverageHpp: null == totalMovingAverageHpp
            ? _value.totalMovingAverageHpp
            : totalMovingAverageHpp // ignore: cast_nullable_to_non_nullable
                  as int,
      ),
    );
  }
}

/// @nodoc

class _$ProfitSharingCategoryImpl extends _ProfitSharingCategory {
  const _$ProfitSharingCategoryImpl({
    required this.parentCategoryId,
    required this.parentCategoryName,
    required this.totalRevenue,
    required this.totalQuantity,
    required this.categoryCount,
    required this.productCount,
    required this.orderCount,
    required this.totalStandardHpp,
    required this.totalFifoHpp,
    required this.totalMovingAverageHpp,
  }) : super._();

  @override
  final String parentCategoryId;
  @override
  final String parentCategoryName;
  @override
  final int totalRevenue;
  @override
  final int totalQuantity;
  @override
  final int categoryCount;
  @override
  final int productCount;
  @override
  final int orderCount;
  @override
  final int totalStandardHpp;
  @override
  final int totalFifoHpp;
  @override
  final int totalMovingAverageHpp;

  @override
  String toString() {
    return 'ProfitSharingCategory(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 _$ProfitSharingCategoryImpl &&
            (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));
  }

  @override
  int get hashCode => Object.hash(
    runtimeType,
    parentCategoryId,
    parentCategoryName,
    totalRevenue,
    totalQuantity,
    categoryCount,
    productCount,
    orderCount,
    totalStandardHpp,
    totalFifoHpp,
    totalMovingAverageHpp,
  );

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

abstract class _ProfitSharingCategory extends ProfitSharingCategory {
  const factory _ProfitSharingCategory({
    required final String parentCategoryId,
    required final String parentCategoryName,
    required final int totalRevenue,
    required final int totalQuantity,
    required final int categoryCount,
    required final int productCount,
    required final int orderCount,
    required final int totalStandardHpp,
    required final int totalFifoHpp,
    required final int totalMovingAverageHpp,
  }) = _$ProfitSharingCategoryImpl;
  const _ProfitSharingCategory._() : super._();

  @override
  String get parentCategoryId;
  @override
  String get parentCategoryName;
  @override
  int get totalRevenue;
  @override
  int get totalQuantity;
  @override
  int get categoryCount;
  @override
  int get productCount;
  @override
  int get orderCount;
  @override
  int get totalStandardHpp;
  @override
  int get totalFifoHpp;
  @override
  int get totalMovingAverageHpp;

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

/// @nodoc
mixin _$ProfitSharingBudget {
  ProfitSharingPercentage get percentages => throw _privateConstructorUsedError;
  DateTime get cutOffFrom => throw _privateConstructorUsedError;
  DateTime get cutOffTo => throw _privateConstructorUsedError;
  ProfitSharingPeriod get total => throw _privateConstructorUsedError;
  List<ProfitSharingPeriod> get weekly => throw _privateConstructorUsedError;
  List<ProfitSharingPeriod> get monthly => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $ProfitSharingBudgetCopyWith<$Res> {
  factory $ProfitSharingBudgetCopyWith(
    ProfitSharingBudget value,
    $Res Function(ProfitSharingBudget) then,
  ) = _$ProfitSharingBudgetCopyWithImpl<$Res, ProfitSharingBudget>;
  @useResult
  $Res call({
    ProfitSharingPercentage percentages,
    DateTime cutOffFrom,
    DateTime cutOffTo,
    ProfitSharingPeriod total,
    List<ProfitSharingPeriod> weekly,
    List<ProfitSharingPeriod> monthly,
  });

  $ProfitSharingPercentageCopyWith<$Res> get percentages;
  $ProfitSharingPeriodCopyWith<$Res> get total;
}

/// @nodoc
class _$ProfitSharingBudgetCopyWithImpl<$Res, $Val extends ProfitSharingBudget>
    implements $ProfitSharingBudgetCopyWith<$Res> {
  _$ProfitSharingBudgetCopyWithImpl(this._value, this._then);

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

  /// Create a copy of ProfitSharingBudget
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? percentages = null,
    Object? cutOffFrom = null,
    Object? cutOffTo = null,
    Object? total = null,
    Object? weekly = null,
    Object? monthly = null,
  }) {
    return _then(
      _value.copyWith(
            percentages: null == percentages
                ? _value.percentages
                : percentages // ignore: cast_nullable_to_non_nullable
                      as ProfitSharingPercentage,
            cutOffFrom: null == cutOffFrom
                ? _value.cutOffFrom
                : cutOffFrom // ignore: cast_nullable_to_non_nullable
                      as DateTime,
            cutOffTo: null == cutOffTo
                ? _value.cutOffTo
                : cutOffTo // ignore: cast_nullable_to_non_nullable
                      as DateTime,
            total: null == total
                ? _value.total
                : total // ignore: cast_nullable_to_non_nullable
                      as ProfitSharingPeriod,
            weekly: null == weekly
                ? _value.weekly
                : weekly // ignore: cast_nullable_to_non_nullable
                      as List<ProfitSharingPeriod>,
            monthly: null == monthly
                ? _value.monthly
                : monthly // ignore: cast_nullable_to_non_nullable
                      as List<ProfitSharingPeriod>,
          )
          as $Val,
    );
  }

  /// Create a copy of ProfitSharingBudget
  /// with the given fields replaced by the non-null parameter values.
  @override
  @pragma('vm:prefer-inline')
  $ProfitSharingPercentageCopyWith<$Res> get percentages {
    return $ProfitSharingPercentageCopyWith<$Res>(_value.percentages, (value) {
      return _then(_value.copyWith(percentages: value) as $Val);
    });
  }

  /// Create a copy of ProfitSharingBudget
  /// with the given fields replaced by the non-null parameter values.
  @override
  @pragma('vm:prefer-inline')
  $ProfitSharingPeriodCopyWith<$Res> get total {
    return $ProfitSharingPeriodCopyWith<$Res>(_value.total, (value) {
      return _then(_value.copyWith(total: value) as $Val);
    });
  }
}

/// @nodoc
abstract class _$$ProfitSharingBudgetImplCopyWith<$Res>
    implements $ProfitSharingBudgetCopyWith<$Res> {
  factory _$$ProfitSharingBudgetImplCopyWith(
    _$ProfitSharingBudgetImpl value,
    $Res Function(_$ProfitSharingBudgetImpl) then,
  ) = __$$ProfitSharingBudgetImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    ProfitSharingPercentage percentages,
    DateTime cutOffFrom,
    DateTime cutOffTo,
    ProfitSharingPeriod total,
    List<ProfitSharingPeriod> weekly,
    List<ProfitSharingPeriod> monthly,
  });

  @override
  $ProfitSharingPercentageCopyWith<$Res> get percentages;
  @override
  $ProfitSharingPeriodCopyWith<$Res> get total;
}

/// @nodoc
class __$$ProfitSharingBudgetImplCopyWithImpl<$Res>
    extends _$ProfitSharingBudgetCopyWithImpl<$Res, _$ProfitSharingBudgetImpl>
    implements _$$ProfitSharingBudgetImplCopyWith<$Res> {
  __$$ProfitSharingBudgetImplCopyWithImpl(
    _$ProfitSharingBudgetImpl _value,
    $Res Function(_$ProfitSharingBudgetImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of ProfitSharingBudget
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? percentages = null,
    Object? cutOffFrom = null,
    Object? cutOffTo = null,
    Object? total = null,
    Object? weekly = null,
    Object? monthly = null,
  }) {
    return _then(
      _$ProfitSharingBudgetImpl(
        percentages: null == percentages
            ? _value.percentages
            : percentages // ignore: cast_nullable_to_non_nullable
                  as ProfitSharingPercentage,
        cutOffFrom: null == cutOffFrom
            ? _value.cutOffFrom
            : cutOffFrom // ignore: cast_nullable_to_non_nullable
                  as DateTime,
        cutOffTo: null == cutOffTo
            ? _value.cutOffTo
            : cutOffTo // ignore: cast_nullable_to_non_nullable
                  as DateTime,
        total: null == total
            ? _value.total
            : total // ignore: cast_nullable_to_non_nullable
                  as ProfitSharingPeriod,
        weekly: null == weekly
            ? _value._weekly
            : weekly // ignore: cast_nullable_to_non_nullable
                  as List<ProfitSharingPeriod>,
        monthly: null == monthly
            ? _value._monthly
            : monthly // ignore: cast_nullable_to_non_nullable
                  as List<ProfitSharingPeriod>,
      ),
    );
  }
}

/// @nodoc

class _$ProfitSharingBudgetImpl implements _ProfitSharingBudget {
  const _$ProfitSharingBudgetImpl({
    required this.percentages,
    required this.cutOffFrom,
    required this.cutOffTo,
    required this.total,
    required final List<ProfitSharingPeriod> weekly,
    required final List<ProfitSharingPeriod> monthly,
  }) : _weekly = weekly,
       _monthly = monthly;

  @override
  final ProfitSharingPercentage percentages;
  @override
  final DateTime cutOffFrom;
  @override
  final DateTime cutOffTo;
  @override
  final ProfitSharingPeriod total;
  final List<ProfitSharingPeriod> _weekly;
  @override
  List<ProfitSharingPeriod> get weekly {
    if (_weekly is EqualUnmodifiableListView) return _weekly;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_weekly);
  }

  final List<ProfitSharingPeriod> _monthly;
  @override
  List<ProfitSharingPeriod> get monthly {
    if (_monthly is EqualUnmodifiableListView) return _monthly;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_monthly);
  }

  @override
  String toString() {
    return 'ProfitSharingBudget(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 _$ProfitSharingBudgetImpl &&
            (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));
  }

  @override
  int get hashCode => Object.hash(
    runtimeType,
    percentages,
    cutOffFrom,
    cutOffTo,
    total,
    const DeepCollectionEquality().hash(_weekly),
    const DeepCollectionEquality().hash(_monthly),
  );

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

abstract class _ProfitSharingBudget implements ProfitSharingBudget {
  const factory _ProfitSharingBudget({
    required final ProfitSharingPercentage percentages,
    required final DateTime cutOffFrom,
    required final DateTime cutOffTo,
    required final ProfitSharingPeriod total,
    required final List<ProfitSharingPeriod> weekly,
    required final List<ProfitSharingPeriod> monthly,
  }) = _$ProfitSharingBudgetImpl;

  @override
  ProfitSharingPercentage get percentages;
  @override
  DateTime get cutOffFrom;
  @override
  DateTime get cutOffTo;
  @override
  ProfitSharingPeriod get total;
  @override
  List<ProfitSharingPeriod> get weekly;
  @override
  List<ProfitSharingPeriod> get monthly;

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

/// @nodoc
mixin _$ProfitSharingPercentage {
  double get purchase => throw _privateConstructorUsedError;
  double get owner => throw _privateConstructorUsedError;
  double get team => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $ProfitSharingPercentageCopyWith<$Res> {
  factory $ProfitSharingPercentageCopyWith(
    ProfitSharingPercentage value,
    $Res Function(ProfitSharingPercentage) then,
  ) = _$ProfitSharingPercentageCopyWithImpl<$Res, ProfitSharingPercentage>;
  @useResult
  $Res call({double purchase, double owner, double team});
}

/// @nodoc
class _$ProfitSharingPercentageCopyWithImpl<
  $Res,
  $Val extends ProfitSharingPercentage
>
    implements $ProfitSharingPercentageCopyWith<$Res> {
  _$ProfitSharingPercentageCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$ProfitSharingPercentageImplCopyWith<$Res>
    implements $ProfitSharingPercentageCopyWith<$Res> {
  factory _$$ProfitSharingPercentageImplCopyWith(
    _$ProfitSharingPercentageImpl value,
    $Res Function(_$ProfitSharingPercentageImpl) then,
  ) = __$$ProfitSharingPercentageImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({double purchase, double owner, double team});
}

/// @nodoc
class __$$ProfitSharingPercentageImplCopyWithImpl<$Res>
    extends
        _$ProfitSharingPercentageCopyWithImpl<
          $Res,
          _$ProfitSharingPercentageImpl
        >
    implements _$$ProfitSharingPercentageImplCopyWith<$Res> {
  __$$ProfitSharingPercentageImplCopyWithImpl(
    _$ProfitSharingPercentageImpl _value,
    $Res Function(_$ProfitSharingPercentageImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of ProfitSharingPercentage
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? purchase = null,
    Object? owner = null,
    Object? team = null,
  }) {
    return _then(
      _$ProfitSharingPercentageImpl(
        purchase: null == purchase
            ? _value.purchase
            : purchase // ignore: cast_nullable_to_non_nullable
                  as double,
        owner: null == owner
            ? _value.owner
            : owner // ignore: cast_nullable_to_non_nullable
                  as double,
        team: null == team
            ? _value.team
            : team // ignore: cast_nullable_to_non_nullable
                  as double,
      ),
    );
  }
}

/// @nodoc

class _$ProfitSharingPercentageImpl implements _ProfitSharingPercentage {
  const _$ProfitSharingPercentageImpl({
    required this.purchase,
    required this.owner,
    required this.team,
  });

  @override
  final double purchase;
  @override
  final double owner;
  @override
  final double team;

  @override
  String toString() {
    return 'ProfitSharingPercentage(purchase: $purchase, owner: $owner, team: $team)';
  }

  @override
  bool operator ==(Object other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ProfitSharingPercentageImpl &&
            (identical(other.purchase, purchase) ||
                other.purchase == purchase) &&
            (identical(other.owner, owner) || other.owner == owner) &&
            (identical(other.team, team) || other.team == team));
  }

  @override
  int get hashCode => Object.hash(runtimeType, purchase, owner, team);

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

abstract class _ProfitSharingPercentage implements ProfitSharingPercentage {
  const factory _ProfitSharingPercentage({
    required final double purchase,
    required final double owner,
    required final double team,
  }) = _$ProfitSharingPercentageImpl;

  @override
  double get purchase;
  @override
  double get owner;
  @override
  double get team;

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

/// @nodoc
mixin _$ProfitSharingPeriod {
  DateTime get periodStart => throw _privateConstructorUsedError;
  DateTime get periodEnd => throw _privateConstructorUsedError;
  int get revenue => throw _privateConstructorUsedError;
  int get orderCount => throw _privateConstructorUsedError;
  int get limitPurchase => throw _privateConstructorUsedError;
  int get limitOwner => throw _privateConstructorUsedError;
  int get limitTeam => throw _privateConstructorUsedError;
  String get month => throw _privateConstructorUsedError;
  int get weekCount => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $ProfitSharingPeriodCopyWith<$Res> {
  factory $ProfitSharingPeriodCopyWith(
    ProfitSharingPeriod value,
    $Res Function(ProfitSharingPeriod) then,
  ) = _$ProfitSharingPeriodCopyWithImpl<$Res, ProfitSharingPeriod>;
  @useResult
  $Res call({
    DateTime periodStart,
    DateTime periodEnd,
    int revenue,
    int orderCount,
    int limitPurchase,
    int limitOwner,
    int limitTeam,
    String month,
    int weekCount,
  });
}

/// @nodoc
class _$ProfitSharingPeriodCopyWithImpl<$Res, $Val extends ProfitSharingPeriod>
    implements $ProfitSharingPeriodCopyWith<$Res> {
  _$ProfitSharingPeriodCopyWithImpl(this._value, this._then);

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

  /// Create a copy of ProfitSharingPeriod
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? periodStart = null,
    Object? periodEnd = null,
    Object? revenue = null,
    Object? orderCount = null,
    Object? limitPurchase = null,
    Object? limitOwner = null,
    Object? limitTeam = null,
    Object? month = null,
    Object? weekCount = null,
  }) {
    return _then(
      _value.copyWith(
            periodStart: null == periodStart
                ? _value.periodStart
                : periodStart // ignore: cast_nullable_to_non_nullable
                      as DateTime,
            periodEnd: null == periodEnd
                ? _value.periodEnd
                : periodEnd // ignore: cast_nullable_to_non_nullable
                      as DateTime,
            revenue: null == revenue
                ? _value.revenue
                : revenue // ignore: cast_nullable_to_non_nullable
                      as int,
            orderCount: null == orderCount
                ? _value.orderCount
                : orderCount // ignore: cast_nullable_to_non_nullable
                      as int,
            limitPurchase: null == limitPurchase
                ? _value.limitPurchase
                : limitPurchase // ignore: cast_nullable_to_non_nullable
                      as int,
            limitOwner: null == limitOwner
                ? _value.limitOwner
                : limitOwner // ignore: cast_nullable_to_non_nullable
                      as int,
            limitTeam: null == limitTeam
                ? _value.limitTeam
                : limitTeam // ignore: cast_nullable_to_non_nullable
                      as int,
            month: null == month
                ? _value.month
                : month // ignore: cast_nullable_to_non_nullable
                      as String,
            weekCount: null == weekCount
                ? _value.weekCount
                : weekCount // ignore: cast_nullable_to_non_nullable
                      as int,
          )
          as $Val,
    );
  }
}

/// @nodoc
abstract class _$$ProfitSharingPeriodImplCopyWith<$Res>
    implements $ProfitSharingPeriodCopyWith<$Res> {
  factory _$$ProfitSharingPeriodImplCopyWith(
    _$ProfitSharingPeriodImpl value,
    $Res Function(_$ProfitSharingPeriodImpl) then,
  ) = __$$ProfitSharingPeriodImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    DateTime periodStart,
    DateTime periodEnd,
    int revenue,
    int orderCount,
    int limitPurchase,
    int limitOwner,
    int limitTeam,
    String month,
    int weekCount,
  });
}

/// @nodoc
class __$$ProfitSharingPeriodImplCopyWithImpl<$Res>
    extends _$ProfitSharingPeriodCopyWithImpl<$Res, _$ProfitSharingPeriodImpl>
    implements _$$ProfitSharingPeriodImplCopyWith<$Res> {
  __$$ProfitSharingPeriodImplCopyWithImpl(
    _$ProfitSharingPeriodImpl _value,
    $Res Function(_$ProfitSharingPeriodImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of ProfitSharingPeriod
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? periodStart = null,
    Object? periodEnd = null,
    Object? revenue = null,
    Object? orderCount = null,
    Object? limitPurchase = null,
    Object? limitOwner = null,
    Object? limitTeam = null,
    Object? month = null,
    Object? weekCount = null,
  }) {
    return _then(
      _$ProfitSharingPeriodImpl(
        periodStart: null == periodStart
            ? _value.periodStart
            : periodStart // ignore: cast_nullable_to_non_nullable
                  as DateTime,
        periodEnd: null == periodEnd
            ? _value.periodEnd
            : periodEnd // ignore: cast_nullable_to_non_nullable
                  as DateTime,
        revenue: null == revenue
            ? _value.revenue
            : revenue // ignore: cast_nullable_to_non_nullable
                  as int,
        orderCount: null == orderCount
            ? _value.orderCount
            : orderCount // ignore: cast_nullable_to_non_nullable
                  as int,
        limitPurchase: null == limitPurchase
            ? _value.limitPurchase
            : limitPurchase // ignore: cast_nullable_to_non_nullable
                  as int,
        limitOwner: null == limitOwner
            ? _value.limitOwner
            : limitOwner // ignore: cast_nullable_to_non_nullable
                  as int,
        limitTeam: null == limitTeam
            ? _value.limitTeam
            : limitTeam // ignore: cast_nullable_to_non_nullable
                  as int,
        month: null == month
            ? _value.month
            : month // ignore: cast_nullable_to_non_nullable
                  as String,
        weekCount: null == weekCount
            ? _value.weekCount
            : weekCount // ignore: cast_nullable_to_non_nullable
                  as int,
      ),
    );
  }
}

/// @nodoc

class _$ProfitSharingPeriodImpl extends _ProfitSharingPeriod {
  const _$ProfitSharingPeriodImpl({
    required this.periodStart,
    required this.periodEnd,
    required this.revenue,
    required this.orderCount,
    required this.limitPurchase,
    required this.limitOwner,
    required this.limitTeam,
    this.month = '',
    this.weekCount = 0,
  }) : super._();

  @override
  final DateTime periodStart;
  @override
  final DateTime periodEnd;
  @override
  final int revenue;
  @override
  final int orderCount;
  @override
  final int limitPurchase;
  @override
  final int limitOwner;
  @override
  final int limitTeam;
  @override
  @JsonKey()
  final String month;
  @override
  @JsonKey()
  final int weekCount;

  @override
  String toString() {
    return 'ProfitSharingPeriod(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 _$ProfitSharingPeriodImpl &&
            (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));
  }

  @override
  int get hashCode => Object.hash(
    runtimeType,
    periodStart,
    periodEnd,
    revenue,
    orderCount,
    limitPurchase,
    limitOwner,
    limitTeam,
    month,
    weekCount,
  );

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

abstract class _ProfitSharingPeriod extends ProfitSharingPeriod {
  const factory _ProfitSharingPeriod({
    required final DateTime periodStart,
    required final DateTime periodEnd,
    required final int revenue,
    required final int orderCount,
    required final int limitPurchase,
    required final int limitOwner,
    required final int limitTeam,
    final String month,
    final int weekCount,
  }) = _$ProfitSharingPeriodImpl;
  const _ProfitSharingPeriod._() : super._();

  @override
  DateTime get periodStart;
  @override
  DateTime get periodEnd;
  @override
  int get revenue;
  @override
  int get orderCount;
  @override
  int get limitPurchase;
  @override
  int get limitOwner;
  @override
  int get limitTeam;
  @override
  String get month;
  @override
  int get weekCount;

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

/// @nodoc
mixin _$ProfitSharingDetail {
  String get organizationId => throw _privateConstructorUsedError;
  String get outletId => throw _privateConstructorUsedError;
  String get outletName => throw _privateConstructorUsedError;
  DateTime get dateFrom => throw _privateConstructorUsedError;
  DateTime get dateTo => throw _privateConstructorUsedError;
  String get parentCategoryId => throw _privateConstructorUsedError;
  String get parentCategoryName => throw _privateConstructorUsedError;
  ProfitSharingCategory get summary => throw _privateConstructorUsedError;
  List<ProfitSharingSubCategory> get categories =>
      throw _privateConstructorUsedError;
  ProfitSharingBudget get budget => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $ProfitSharingDetailCopyWith<$Res> {
  factory $ProfitSharingDetailCopyWith(
    ProfitSharingDetail value,
    $Res Function(ProfitSharingDetail) then,
  ) = _$ProfitSharingDetailCopyWithImpl<$Res, ProfitSharingDetail>;
  @useResult
  $Res call({
    String organizationId,
    String outletId,
    String outletName,
    DateTime dateFrom,
    DateTime dateTo,
    String parentCategoryId,
    String parentCategoryName,
    ProfitSharingCategory summary,
    List<ProfitSharingSubCategory> categories,
    ProfitSharingBudget budget,
  });

  $ProfitSharingCategoryCopyWith<$Res> get summary;
  $ProfitSharingBudgetCopyWith<$Res> get budget;
}

/// @nodoc
class _$ProfitSharingDetailCopyWithImpl<$Res, $Val extends ProfitSharingDetail>
    implements $ProfitSharingDetailCopyWith<$Res> {
  _$ProfitSharingDetailCopyWithImpl(this._value, this._then);

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

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

  /// Create a copy of ProfitSharingDetail
  /// with the given fields replaced by the non-null parameter values.
  @override
  @pragma('vm:prefer-inline')
  $ProfitSharingCategoryCopyWith<$Res> get summary {
    return $ProfitSharingCategoryCopyWith<$Res>(_value.summary, (value) {
      return _then(_value.copyWith(summary: value) as $Val);
    });
  }

  /// Create a copy of ProfitSharingDetail
  /// with the given fields replaced by the non-null parameter values.
  @override
  @pragma('vm:prefer-inline')
  $ProfitSharingBudgetCopyWith<$Res> get budget {
    return $ProfitSharingBudgetCopyWith<$Res>(_value.budget, (value) {
      return _then(_value.copyWith(budget: value) as $Val);
    });
  }
}

/// @nodoc
abstract class _$$ProfitSharingDetailImplCopyWith<$Res>
    implements $ProfitSharingDetailCopyWith<$Res> {
  factory _$$ProfitSharingDetailImplCopyWith(
    _$ProfitSharingDetailImpl value,
    $Res Function(_$ProfitSharingDetailImpl) then,
  ) = __$$ProfitSharingDetailImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    String organizationId,
    String outletId,
    String outletName,
    DateTime dateFrom,
    DateTime dateTo,
    String parentCategoryId,
    String parentCategoryName,
    ProfitSharingCategory summary,
    List<ProfitSharingSubCategory> categories,
    ProfitSharingBudget budget,
  });

  @override
  $ProfitSharingCategoryCopyWith<$Res> get summary;
  @override
  $ProfitSharingBudgetCopyWith<$Res> get budget;
}

/// @nodoc
class __$$ProfitSharingDetailImplCopyWithImpl<$Res>
    extends _$ProfitSharingDetailCopyWithImpl<$Res, _$ProfitSharingDetailImpl>
    implements _$$ProfitSharingDetailImplCopyWith<$Res> {
  __$$ProfitSharingDetailImplCopyWithImpl(
    _$ProfitSharingDetailImpl _value,
    $Res Function(_$ProfitSharingDetailImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of ProfitSharingDetail
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? organizationId = null,
    Object? outletId = null,
    Object? outletName = null,
    Object? dateFrom = null,
    Object? dateTo = null,
    Object? parentCategoryId = null,
    Object? parentCategoryName = null,
    Object? summary = null,
    Object? categories = null,
    Object? budget = null,
  }) {
    return _then(
      _$ProfitSharingDetailImpl(
        organizationId: null == organizationId
            ? _value.organizationId
            : organizationId // ignore: cast_nullable_to_non_nullable
                  as String,
        outletId: null == outletId
            ? _value.outletId
            : outletId // ignore: cast_nullable_to_non_nullable
                  as String,
        outletName: null == outletName
            ? _value.outletName
            : outletName // ignore: cast_nullable_to_non_nullable
                  as String,
        dateFrom: null == dateFrom
            ? _value.dateFrom
            : dateFrom // ignore: cast_nullable_to_non_nullable
                  as DateTime,
        dateTo: null == dateTo
            ? _value.dateTo
            : dateTo // ignore: cast_nullable_to_non_nullable
                  as DateTime,
        parentCategoryId: null == parentCategoryId
            ? _value.parentCategoryId
            : parentCategoryId // ignore: cast_nullable_to_non_nullable
                  as String,
        parentCategoryName: null == parentCategoryName
            ? _value.parentCategoryName
            : parentCategoryName // ignore: cast_nullable_to_non_nullable
                  as String,
        summary: null == summary
            ? _value.summary
            : summary // ignore: cast_nullable_to_non_nullable
                  as ProfitSharingCategory,
        categories: null == categories
            ? _value._categories
            : categories // ignore: cast_nullable_to_non_nullable
                  as List<ProfitSharingSubCategory>,
        budget: null == budget
            ? _value.budget
            : budget // ignore: cast_nullable_to_non_nullable
                  as ProfitSharingBudget,
      ),
    );
  }
}

/// @nodoc

class _$ProfitSharingDetailImpl implements _ProfitSharingDetail {
  const _$ProfitSharingDetailImpl({
    required this.organizationId,
    required this.outletId,
    required this.outletName,
    required this.dateFrom,
    required this.dateTo,
    required this.parentCategoryId,
    required this.parentCategoryName,
    required this.summary,
    required final List<ProfitSharingSubCategory> categories,
    required this.budget,
  }) : _categories = categories;

  @override
  final String organizationId;
  @override
  final String outletId;
  @override
  final String outletName;
  @override
  final DateTime dateFrom;
  @override
  final DateTime dateTo;
  @override
  final String parentCategoryId;
  @override
  final String parentCategoryName;
  @override
  final ProfitSharingCategory summary;
  final List<ProfitSharingSubCategory> _categories;
  @override
  List<ProfitSharingSubCategory> get categories {
    if (_categories is EqualUnmodifiableListView) return _categories;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_categories);
  }

  @override
  final ProfitSharingBudget budget;

  @override
  String toString() {
    return 'ProfitSharingDetail(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 _$ProfitSharingDetailImpl &&
            (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));
  }

  @override
  int get hashCode => Object.hash(
    runtimeType,
    organizationId,
    outletId,
    outletName,
    dateFrom,
    dateTo,
    parentCategoryId,
    parentCategoryName,
    summary,
    const DeepCollectionEquality().hash(_categories),
    budget,
  );

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

abstract class _ProfitSharingDetail implements ProfitSharingDetail {
  const factory _ProfitSharingDetail({
    required final String organizationId,
    required final String outletId,
    required final String outletName,
    required final DateTime dateFrom,
    required final DateTime dateTo,
    required final String parentCategoryId,
    required final String parentCategoryName,
    required final ProfitSharingCategory summary,
    required final List<ProfitSharingSubCategory> categories,
    required final ProfitSharingBudget budget,
  }) = _$ProfitSharingDetailImpl;

  @override
  String get organizationId;
  @override
  String get outletId;
  @override
  String get outletName;
  @override
  DateTime get dateFrom;
  @override
  DateTime get dateTo;
  @override
  String get parentCategoryId;
  @override
  String get parentCategoryName;
  @override
  ProfitSharingCategory get summary;
  @override
  List<ProfitSharingSubCategory> get categories;
  @override
  ProfitSharingBudget get budget;

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

/// @nodoc
mixin _$ProfitSharingSubCategory {
  String get categoryId => throw _privateConstructorUsedError;
  String get categoryName => throw _privateConstructorUsedError;
  int get totalRevenue => throw _privateConstructorUsedError;
  int get totalQuantity => throw _privateConstructorUsedError;
  int get productCount => throw _privateConstructorUsedError;
  int get orderCount => throw _privateConstructorUsedError;
  int get totalStandardHpp => throw _privateConstructorUsedError;
  int get totalFifoHpp => throw _privateConstructorUsedError;
  int get totalMovingAverageHpp => throw _privateConstructorUsedError;
  List<ProfitSharingProduct> get products => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $ProfitSharingSubCategoryCopyWith<$Res> {
  factory $ProfitSharingSubCategoryCopyWith(
    ProfitSharingSubCategory value,
    $Res Function(ProfitSharingSubCategory) then,
  ) = _$ProfitSharingSubCategoryCopyWithImpl<$Res, ProfitSharingSubCategory>;
  @useResult
  $Res call({
    String categoryId,
    String categoryName,
    int totalRevenue,
    int totalQuantity,
    int productCount,
    int orderCount,
    int totalStandardHpp,
    int totalFifoHpp,
    int totalMovingAverageHpp,
    List<ProfitSharingProduct> products,
  });
}

/// @nodoc
class _$ProfitSharingSubCategoryCopyWithImpl<
  $Res,
  $Val extends ProfitSharingSubCategory
>
    implements $ProfitSharingSubCategoryCopyWith<$Res> {
  _$ProfitSharingSubCategoryCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$ProfitSharingSubCategoryImplCopyWith<$Res>
    implements $ProfitSharingSubCategoryCopyWith<$Res> {
  factory _$$ProfitSharingSubCategoryImplCopyWith(
    _$ProfitSharingSubCategoryImpl value,
    $Res Function(_$ProfitSharingSubCategoryImpl) then,
  ) = __$$ProfitSharingSubCategoryImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    String categoryId,
    String categoryName,
    int totalRevenue,
    int totalQuantity,
    int productCount,
    int orderCount,
    int totalStandardHpp,
    int totalFifoHpp,
    int totalMovingAverageHpp,
    List<ProfitSharingProduct> products,
  });
}

/// @nodoc
class __$$ProfitSharingSubCategoryImplCopyWithImpl<$Res>
    extends
        _$ProfitSharingSubCategoryCopyWithImpl<
          $Res,
          _$ProfitSharingSubCategoryImpl
        >
    implements _$$ProfitSharingSubCategoryImplCopyWith<$Res> {
  __$$ProfitSharingSubCategoryImplCopyWithImpl(
    _$ProfitSharingSubCategoryImpl _value,
    $Res Function(_$ProfitSharingSubCategoryImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of ProfitSharingSubCategory
  /// with the given fields replaced by the non-null parameter values.
  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? categoryId = null,
    Object? categoryName = null,
    Object? totalRevenue = null,
    Object? totalQuantity = null,
    Object? productCount = null,
    Object? orderCount = null,
    Object? totalStandardHpp = null,
    Object? totalFifoHpp = null,
    Object? totalMovingAverageHpp = null,
    Object? products = null,
  }) {
    return _then(
      _$ProfitSharingSubCategoryImpl(
        categoryId: null == categoryId
            ? _value.categoryId
            : categoryId // ignore: cast_nullable_to_non_nullable
                  as String,
        categoryName: null == categoryName
            ? _value.categoryName
            : categoryName // ignore: cast_nullable_to_non_nullable
                  as String,
        totalRevenue: null == totalRevenue
            ? _value.totalRevenue
            : totalRevenue // ignore: cast_nullable_to_non_nullable
                  as int,
        totalQuantity: null == totalQuantity
            ? _value.totalQuantity
            : totalQuantity // ignore: cast_nullable_to_non_nullable
                  as int,
        productCount: null == productCount
            ? _value.productCount
            : productCount // ignore: cast_nullable_to_non_nullable
                  as int,
        orderCount: null == orderCount
            ? _value.orderCount
            : orderCount // ignore: cast_nullable_to_non_nullable
                  as int,
        totalStandardHpp: null == totalStandardHpp
            ? _value.totalStandardHpp
            : totalStandardHpp // ignore: cast_nullable_to_non_nullable
                  as int,
        totalFifoHpp: null == totalFifoHpp
            ? _value.totalFifoHpp
            : totalFifoHpp // ignore: cast_nullable_to_non_nullable
                  as int,
        totalMovingAverageHpp: null == totalMovingAverageHpp
            ? _value.totalMovingAverageHpp
            : totalMovingAverageHpp // ignore: cast_nullable_to_non_nullable
                  as int,
        products: null == products
            ? _value._products
            : products // ignore: cast_nullable_to_non_nullable
                  as List<ProfitSharingProduct>,
      ),
    );
  }
}

/// @nodoc

class _$ProfitSharingSubCategoryImpl extends _ProfitSharingSubCategory {
  const _$ProfitSharingSubCategoryImpl({
    required this.categoryId,
    required this.categoryName,
    required this.totalRevenue,
    required this.totalQuantity,
    required this.productCount,
    required this.orderCount,
    required this.totalStandardHpp,
    required this.totalFifoHpp,
    required this.totalMovingAverageHpp,
    required final List<ProfitSharingProduct> products,
  }) : _products = products,
       super._();

  @override
  final String categoryId;
  @override
  final String categoryName;
  @override
  final int totalRevenue;
  @override
  final int totalQuantity;
  @override
  final int productCount;
  @override
  final int orderCount;
  @override
  final int totalStandardHpp;
  @override
  final int totalFifoHpp;
  @override
  final int totalMovingAverageHpp;
  final List<ProfitSharingProduct> _products;
  @override
  List<ProfitSharingProduct> get products {
    if (_products is EqualUnmodifiableListView) return _products;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_products);
  }

  @override
  String toString() {
    return 'ProfitSharingSubCategory(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 _$ProfitSharingSubCategoryImpl &&
            (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));
  }

  @override
  int get hashCode => Object.hash(
    runtimeType,
    categoryId,
    categoryName,
    totalRevenue,
    totalQuantity,
    productCount,
    orderCount,
    totalStandardHpp,
    totalFifoHpp,
    totalMovingAverageHpp,
    const DeepCollectionEquality().hash(_products),
  );

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

abstract class _ProfitSharingSubCategory extends ProfitSharingSubCategory {
  const factory _ProfitSharingSubCategory({
    required final String categoryId,
    required final String categoryName,
    required final int totalRevenue,
    required final int totalQuantity,
    required final int productCount,
    required final int orderCount,
    required final int totalStandardHpp,
    required final int totalFifoHpp,
    required final int totalMovingAverageHpp,
    required final List<ProfitSharingProduct> products,
  }) = _$ProfitSharingSubCategoryImpl;
  const _ProfitSharingSubCategory._() : super._();

  @override
  String get categoryId;
  @override
  String get categoryName;
  @override
  int get totalRevenue;
  @override
  int get totalQuantity;
  @override
  int get productCount;
  @override
  int get orderCount;
  @override
  int get totalStandardHpp;
  @override
  int get totalFifoHpp;
  @override
  int get totalMovingAverageHpp;
  @override
  List<ProfitSharingProduct> get products;

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

/// @nodoc
mixin _$ProfitSharingProduct {
  String get productId => throw _privateConstructorUsedError;
  String get productName => throw _privateConstructorUsedError;
  String get productSku => throw _privateConstructorUsedError;
  int get productPrice => throw _privateConstructorUsedError;
  int get quantitySold => throw _privateConstructorUsedError;
  int get revenue => throw _privateConstructorUsedError;
  double get averagePrice => throw _privateConstructorUsedError;
  int get orderCount => throw _privateConstructorUsedError;
  double get standardHppPerUnit => throw _privateConstructorUsedError;
  int get standardHppTotal => throw _privateConstructorUsedError;
  double get fifoHppPerUnit => throw _privateConstructorUsedError;
  int get fifoHppTotal => throw _privateConstructorUsedError;
  double get movingAverageHppPerUnit => throw _privateConstructorUsedError;
  int get movingAverageHppTotal => throw _privateConstructorUsedError;

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

/// @nodoc
abstract class $ProfitSharingProductCopyWith<$Res> {
  factory $ProfitSharingProductCopyWith(
    ProfitSharingProduct value,
    $Res Function(ProfitSharingProduct) then,
  ) = _$ProfitSharingProductCopyWithImpl<$Res, ProfitSharingProduct>;
  @useResult
  $Res call({
    String productId,
    String productName,
    String productSku,
    int productPrice,
    int quantitySold,
    int revenue,
    double averagePrice,
    int orderCount,
    double standardHppPerUnit,
    int standardHppTotal,
    double fifoHppPerUnit,
    int fifoHppTotal,
    double movingAverageHppPerUnit,
    int movingAverageHppTotal,
  });
}

/// @nodoc
class _$ProfitSharingProductCopyWithImpl<
  $Res,
  $Val extends ProfitSharingProduct
>
    implements $ProfitSharingProductCopyWith<$Res> {
  _$ProfitSharingProductCopyWithImpl(this._value, this._then);

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

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

/// @nodoc
abstract class _$$ProfitSharingProductImplCopyWith<$Res>
    implements $ProfitSharingProductCopyWith<$Res> {
  factory _$$ProfitSharingProductImplCopyWith(
    _$ProfitSharingProductImpl value,
    $Res Function(_$ProfitSharingProductImpl) then,
  ) = __$$ProfitSharingProductImplCopyWithImpl<$Res>;
  @override
  @useResult
  $Res call({
    String productId,
    String productName,
    String productSku,
    int productPrice,
    int quantitySold,
    int revenue,
    double averagePrice,
    int orderCount,
    double standardHppPerUnit,
    int standardHppTotal,
    double fifoHppPerUnit,
    int fifoHppTotal,
    double movingAverageHppPerUnit,
    int movingAverageHppTotal,
  });
}

/// @nodoc
class __$$ProfitSharingProductImplCopyWithImpl<$Res>
    extends _$ProfitSharingProductCopyWithImpl<$Res, _$ProfitSharingProductImpl>
    implements _$$ProfitSharingProductImplCopyWith<$Res> {
  __$$ProfitSharingProductImplCopyWithImpl(
    _$ProfitSharingProductImpl _value,
    $Res Function(_$ProfitSharingProductImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$ProfitSharingProductImpl extends _ProfitSharingProduct {
  const _$ProfitSharingProductImpl({
    required this.productId,
    required this.productName,
    required this.productSku,
    required this.productPrice,
    required this.quantitySold,
    required this.revenue,
    required this.averagePrice,
    required this.orderCount,
    required this.standardHppPerUnit,
    required this.standardHppTotal,
    required this.fifoHppPerUnit,
    required this.fifoHppTotal,
    required this.movingAverageHppPerUnit,
    required this.movingAverageHppTotal,
  }) : super._();

  @override
  final String productId;
  @override
  final String productName;
  @override
  final String productSku;
  @override
  final int productPrice;
  @override
  final int quantitySold;
  @override
  final int revenue;
  @override
  final double averagePrice;
  @override
  final int orderCount;
  @override
  final double standardHppPerUnit;
  @override
  final int standardHppTotal;
  @override
  final double fifoHppPerUnit;
  @override
  final int fifoHppTotal;
  @override
  final double movingAverageHppPerUnit;
  @override
  final int movingAverageHppTotal;

  @override
  String toString() {
    return 'ProfitSharingProduct(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 _$ProfitSharingProductImpl &&
            (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));
  }

  @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 ProfitSharingProduct
  /// with the given fields replaced by the non-null parameter values.
  @JsonKey(includeFromJson: false, includeToJson: false)
  @override
  @pragma('vm:prefer-inline')
  _$$ProfitSharingProductImplCopyWith<_$ProfitSharingProductImpl>
  get copyWith =>
      __$$ProfitSharingProductImplCopyWithImpl<_$ProfitSharingProductImpl>(
        this,
        _$identity,
      );
}

abstract class _ProfitSharingProduct extends ProfitSharingProduct {
  const factory _ProfitSharingProduct({
    required final String productId,
    required final String productName,
    required final String productSku,
    required final int productPrice,
    required final int quantitySold,
    required final int revenue,
    required final double averagePrice,
    required final int orderCount,
    required final double standardHppPerUnit,
    required final int standardHppTotal,
    required final double fifoHppPerUnit,
    required final int fifoHppTotal,
    required final double movingAverageHppPerUnit,
    required final int movingAverageHppTotal,
  }) = _$ProfitSharingProductImpl;
  const _ProfitSharingProduct._() : super._();

  @override
  String get productId;
  @override
  String get productName;
  @override
  String get productSku;
  @override
  int get productPrice;
  @override
  int get quantitySold;
  @override
  int get revenue;
  @override
  double get averagePrice;
  @override
  int get orderCount;
  @override
  double get standardHppPerUnit;
  @override
  int get standardHppTotal;
  @override
  double get fifoHppPerUnit;
  @override
  int get fifoHppTotal;
  @override
  double get movingAverageHppPerUnit;
  @override
  int get movingAverageHppTotal;

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

/// @nodoc
mixin _$AnalyticFailure {
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(ApiFailure failure) serverError,
    required TResult Function() unexpectedError,
    required TResult Function() empty,
    required TResult Function(String erroMessage) dynamicErrorMessage,
  }) => throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(ApiFailure failure)? serverError,
    TResult? Function()? unexpectedError,
    TResult? Function()? empty,
    TResult? Function(String erroMessage)? dynamicErrorMessage,
  }) => throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(ApiFailure failure)? serverError,
    TResult Function()? unexpectedError,
    TResult Function()? empty,
    TResult Function(String erroMessage)? dynamicErrorMessage,
    required TResult orElse(),
  }) => throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(_ServerError value) serverError,
    required TResult Function(_UnexpectedError value) unexpectedError,
    required TResult Function(_Empty value) empty,
    required TResult Function(_DynamicErrorMessage value) dynamicErrorMessage,
  }) => throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(_ServerError value)? serverError,
    TResult? Function(_UnexpectedError value)? unexpectedError,
    TResult? Function(_Empty value)? empty,
    TResult? Function(_DynamicErrorMessage value)? dynamicErrorMessage,
  }) => throw _privateConstructorUsedError;
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(_ServerError value)? serverError,
    TResult Function(_UnexpectedError value)? unexpectedError,
    TResult Function(_Empty value)? empty,
    TResult Function(_DynamicErrorMessage value)? dynamicErrorMessage,
    required TResult orElse(),
  }) => throw _privateConstructorUsedError;
}

/// @nodoc
abstract class $AnalyticFailureCopyWith<$Res> {
  factory $AnalyticFailureCopyWith(
    AnalyticFailure value,
    $Res Function(AnalyticFailure) then,
  ) = _$AnalyticFailureCopyWithImpl<$Res, AnalyticFailure>;
}

/// @nodoc
class _$AnalyticFailureCopyWithImpl<$Res, $Val extends AnalyticFailure>
    implements $AnalyticFailureCopyWith<$Res> {
  _$AnalyticFailureCopyWithImpl(this._value, this._then);

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

  /// Create a copy of AnalyticFailure
  /// with the given fields replaced by the non-null parameter values.
}

/// @nodoc
abstract class _$$ServerErrorImplCopyWith<$Res> {
  factory _$$ServerErrorImplCopyWith(
    _$ServerErrorImpl value,
    $Res Function(_$ServerErrorImpl) then,
  ) = __$$ServerErrorImplCopyWithImpl<$Res>;
  @useResult
  $Res call({ApiFailure failure});

  $ApiFailureCopyWith<$Res> get failure;
}

/// @nodoc
class __$$ServerErrorImplCopyWithImpl<$Res>
    extends _$AnalyticFailureCopyWithImpl<$Res, _$ServerErrorImpl>
    implements _$$ServerErrorImplCopyWith<$Res> {
  __$$ServerErrorImplCopyWithImpl(
    _$ServerErrorImpl _value,
    $Res Function(_$ServerErrorImpl) _then,
  ) : super(_value, _then);

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

  /// Create a copy of AnalyticFailure
  /// with the given fields replaced by the non-null parameter values.
  @override
  @pragma('vm:prefer-inline')
  $ApiFailureCopyWith<$Res> get failure {
    return $ApiFailureCopyWith<$Res>(_value.failure, (value) {
      return _then(_value.copyWith(failure: value));
    });
  }
}

/// @nodoc

class _$ServerErrorImpl implements _ServerError {
  const _$ServerErrorImpl(this.failure);

  @override
  final ApiFailure failure;

  @override
  String toString() {
    return 'AnalyticFailure.serverError(failure: $failure)';
  }

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

  @override
  int get hashCode => Object.hash(runtimeType, failure);

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(ApiFailure failure) serverError,
    required TResult Function() unexpectedError,
    required TResult Function() empty,
    required TResult Function(String erroMessage) dynamicErrorMessage,
  }) {
    return serverError(failure);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(ApiFailure failure)? serverError,
    TResult? Function()? unexpectedError,
    TResult? Function()? empty,
    TResult? Function(String erroMessage)? dynamicErrorMessage,
  }) {
    return serverError?.call(failure);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(ApiFailure failure)? serverError,
    TResult Function()? unexpectedError,
    TResult Function()? empty,
    TResult Function(String erroMessage)? dynamicErrorMessage,
    required TResult orElse(),
  }) {
    if (serverError != null) {
      return serverError(failure);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(_ServerError value) serverError,
    required TResult Function(_UnexpectedError value) unexpectedError,
    required TResult Function(_Empty value) empty,
    required TResult Function(_DynamicErrorMessage value) dynamicErrorMessage,
  }) {
    return serverError(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(_ServerError value)? serverError,
    TResult? Function(_UnexpectedError value)? unexpectedError,
    TResult? Function(_Empty value)? empty,
    TResult? Function(_DynamicErrorMessage value)? dynamicErrorMessage,
  }) {
    return serverError?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(_ServerError value)? serverError,
    TResult Function(_UnexpectedError value)? unexpectedError,
    TResult Function(_Empty value)? empty,
    TResult Function(_DynamicErrorMessage value)? dynamicErrorMessage,
    required TResult orElse(),
  }) {
    if (serverError != null) {
      return serverError(this);
    }
    return orElse();
  }
}

abstract class _ServerError implements AnalyticFailure {
  const factory _ServerError(final ApiFailure failure) = _$ServerErrorImpl;

  ApiFailure get failure;

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

/// @nodoc
abstract class _$$UnexpectedErrorImplCopyWith<$Res> {
  factory _$$UnexpectedErrorImplCopyWith(
    _$UnexpectedErrorImpl value,
    $Res Function(_$UnexpectedErrorImpl) then,
  ) = __$$UnexpectedErrorImplCopyWithImpl<$Res>;
}

/// @nodoc
class __$$UnexpectedErrorImplCopyWithImpl<$Res>
    extends _$AnalyticFailureCopyWithImpl<$Res, _$UnexpectedErrorImpl>
    implements _$$UnexpectedErrorImplCopyWith<$Res> {
  __$$UnexpectedErrorImplCopyWithImpl(
    _$UnexpectedErrorImpl _value,
    $Res Function(_$UnexpectedErrorImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of AnalyticFailure
  /// with the given fields replaced by the non-null parameter values.
}

/// @nodoc

class _$UnexpectedErrorImpl implements _UnexpectedError {
  const _$UnexpectedErrorImpl();

  @override
  String toString() {
    return 'AnalyticFailure.unexpectedError()';
  }

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

  @override
  int get hashCode => runtimeType.hashCode;

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(ApiFailure failure) serverError,
    required TResult Function() unexpectedError,
    required TResult Function() empty,
    required TResult Function(String erroMessage) dynamicErrorMessage,
  }) {
    return unexpectedError();
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(ApiFailure failure)? serverError,
    TResult? Function()? unexpectedError,
    TResult? Function()? empty,
    TResult? Function(String erroMessage)? dynamicErrorMessage,
  }) {
    return unexpectedError?.call();
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(ApiFailure failure)? serverError,
    TResult Function()? unexpectedError,
    TResult Function()? empty,
    TResult Function(String erroMessage)? dynamicErrorMessage,
    required TResult orElse(),
  }) {
    if (unexpectedError != null) {
      return unexpectedError();
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(_ServerError value) serverError,
    required TResult Function(_UnexpectedError value) unexpectedError,
    required TResult Function(_Empty value) empty,
    required TResult Function(_DynamicErrorMessage value) dynamicErrorMessage,
  }) {
    return unexpectedError(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(_ServerError value)? serverError,
    TResult? Function(_UnexpectedError value)? unexpectedError,
    TResult? Function(_Empty value)? empty,
    TResult? Function(_DynamicErrorMessage value)? dynamicErrorMessage,
  }) {
    return unexpectedError?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(_ServerError value)? serverError,
    TResult Function(_UnexpectedError value)? unexpectedError,
    TResult Function(_Empty value)? empty,
    TResult Function(_DynamicErrorMessage value)? dynamicErrorMessage,
    required TResult orElse(),
  }) {
    if (unexpectedError != null) {
      return unexpectedError(this);
    }
    return orElse();
  }
}

abstract class _UnexpectedError implements AnalyticFailure {
  const factory _UnexpectedError() = _$UnexpectedErrorImpl;
}

/// @nodoc
abstract class _$$EmptyImplCopyWith<$Res> {
  factory _$$EmptyImplCopyWith(
    _$EmptyImpl value,
    $Res Function(_$EmptyImpl) then,
  ) = __$$EmptyImplCopyWithImpl<$Res>;
}

/// @nodoc
class __$$EmptyImplCopyWithImpl<$Res>
    extends _$AnalyticFailureCopyWithImpl<$Res, _$EmptyImpl>
    implements _$$EmptyImplCopyWith<$Res> {
  __$$EmptyImplCopyWithImpl(
    _$EmptyImpl _value,
    $Res Function(_$EmptyImpl) _then,
  ) : super(_value, _then);

  /// Create a copy of AnalyticFailure
  /// with the given fields replaced by the non-null parameter values.
}

/// @nodoc

class _$EmptyImpl implements _Empty {
  const _$EmptyImpl();

  @override
  String toString() {
    return 'AnalyticFailure.empty()';
  }

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

  @override
  int get hashCode => runtimeType.hashCode;

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(ApiFailure failure) serverError,
    required TResult Function() unexpectedError,
    required TResult Function() empty,
    required TResult Function(String erroMessage) dynamicErrorMessage,
  }) {
    return empty();
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(ApiFailure failure)? serverError,
    TResult? Function()? unexpectedError,
    TResult? Function()? empty,
    TResult? Function(String erroMessage)? dynamicErrorMessage,
  }) {
    return empty?.call();
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(ApiFailure failure)? serverError,
    TResult Function()? unexpectedError,
    TResult Function()? empty,
    TResult Function(String erroMessage)? dynamicErrorMessage,
    required TResult orElse(),
  }) {
    if (empty != null) {
      return empty();
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(_ServerError value) serverError,
    required TResult Function(_UnexpectedError value) unexpectedError,
    required TResult Function(_Empty value) empty,
    required TResult Function(_DynamicErrorMessage value) dynamicErrorMessage,
  }) {
    return empty(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(_ServerError value)? serverError,
    TResult? Function(_UnexpectedError value)? unexpectedError,
    TResult? Function(_Empty value)? empty,
    TResult? Function(_DynamicErrorMessage value)? dynamicErrorMessage,
  }) {
    return empty?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(_ServerError value)? serverError,
    TResult Function(_UnexpectedError value)? unexpectedError,
    TResult Function(_Empty value)? empty,
    TResult Function(_DynamicErrorMessage value)? dynamicErrorMessage,
    required TResult orElse(),
  }) {
    if (empty != null) {
      return empty(this);
    }
    return orElse();
  }
}

abstract class _Empty implements AnalyticFailure {
  const factory _Empty() = _$EmptyImpl;
}

/// @nodoc
abstract class _$$DynamicErrorMessageImplCopyWith<$Res> {
  factory _$$DynamicErrorMessageImplCopyWith(
    _$DynamicErrorMessageImpl value,
    $Res Function(_$DynamicErrorMessageImpl) then,
  ) = __$$DynamicErrorMessageImplCopyWithImpl<$Res>;
  @useResult
  $Res call({String erroMessage});
}

/// @nodoc
class __$$DynamicErrorMessageImplCopyWithImpl<$Res>
    extends _$AnalyticFailureCopyWithImpl<$Res, _$DynamicErrorMessageImpl>
    implements _$$DynamicErrorMessageImplCopyWith<$Res> {
  __$$DynamicErrorMessageImplCopyWithImpl(
    _$DynamicErrorMessageImpl _value,
    $Res Function(_$DynamicErrorMessageImpl) _then,
  ) : super(_value, _then);

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

/// @nodoc

class _$DynamicErrorMessageImpl implements _DynamicErrorMessage {
  const _$DynamicErrorMessageImpl(this.erroMessage);

  @override
  final String erroMessage;

  @override
  String toString() {
    return 'AnalyticFailure.dynamicErrorMessage(erroMessage: $erroMessage)';
  }

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

  @override
  int get hashCode => Object.hash(runtimeType, erroMessage);

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

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(ApiFailure failure) serverError,
    required TResult Function() unexpectedError,
    required TResult Function() empty,
    required TResult Function(String erroMessage) dynamicErrorMessage,
  }) {
    return dynamicErrorMessage(erroMessage);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(ApiFailure failure)? serverError,
    TResult? Function()? unexpectedError,
    TResult? Function()? empty,
    TResult? Function(String erroMessage)? dynamicErrorMessage,
  }) {
    return dynamicErrorMessage?.call(erroMessage);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(ApiFailure failure)? serverError,
    TResult Function()? unexpectedError,
    TResult Function()? empty,
    TResult Function(String erroMessage)? dynamicErrorMessage,
    required TResult orElse(),
  }) {
    if (dynamicErrorMessage != null) {
      return dynamicErrorMessage(erroMessage);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult extends Object?>({
    required TResult Function(_ServerError value) serverError,
    required TResult Function(_UnexpectedError value) unexpectedError,
    required TResult Function(_Empty value) empty,
    required TResult Function(_DynamicErrorMessage value) dynamicErrorMessage,
  }) {
    return dynamicErrorMessage(this);
  }

  @override
  @optionalTypeArgs
  TResult? mapOrNull<TResult extends Object?>({
    TResult? Function(_ServerError value)? serverError,
    TResult? Function(_UnexpectedError value)? unexpectedError,
    TResult? Function(_Empty value)? empty,
    TResult? Function(_DynamicErrorMessage value)? dynamicErrorMessage,
  }) {
    return dynamicErrorMessage?.call(this);
  }

  @override
  @optionalTypeArgs
  TResult maybeMap<TResult extends Object?>({
    TResult Function(_ServerError value)? serverError,
    TResult Function(_UnexpectedError value)? unexpectedError,
    TResult Function(_Empty value)? empty,
    TResult Function(_DynamicErrorMessage value)? dynamicErrorMessage,
    required TResult orElse(),
  }) {
    if (dynamicErrorMessage != null) {
      return dynamicErrorMessage(this);
    }
    return orElse();
  }
}

abstract class _DynamicErrorMessage implements AnalyticFailure {
  const factory _DynamicErrorMessage(final String erroMessage) =
      _$DynamicErrorMessageImpl;

  String get erroMessage;

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