Compare commits
No commits in common. "bc95336a193c1c06719bbcbeb893f6a8f71b2a63" and "65ba81f311bbed978ca444922a33c4c5bd4da14f" have entirely different histories.
bc95336a19
...
65ba81f311
@ -11,6 +11,6 @@ class InventoryAnalyticLoaderState with _$InventoryAnalyticLoaderState {
|
|||||||
factory InventoryAnalyticLoaderState.initial() =>
|
factory InventoryAnalyticLoaderState.initial() =>
|
||||||
InventoryAnalyticLoaderState(
|
InventoryAnalyticLoaderState(
|
||||||
inventoryAnalytic: InventoryAnalytic.empty(),
|
inventoryAnalytic: InventoryAnalytic.empty(),
|
||||||
failureOptionInventoryAnalytic: none(),
|
failureOptionInventoryAnalytic: None(),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,55 +0,0 @@
|
|||||||
import 'package:dartz/dartz.dart';
|
|
||||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
|
||||||
import 'package:freezed_annotation/freezed_annotation.dart';
|
|
||||||
import 'package:injectable/injectable.dart';
|
|
||||||
|
|
||||||
import '../../../domain/analytic/analytic.dart';
|
|
||||||
import '../../../domain/analytic/repositories/i_analytic_repository.dart';
|
|
||||||
|
|
||||||
part 'payment_method_analytic_loader_event.dart';
|
|
||||||
part 'payment_method_analytic_loader_state.dart';
|
|
||||||
part 'payment_method_analytic_loader_bloc.freezed.dart';
|
|
||||||
|
|
||||||
@injectable
|
|
||||||
class PaymentMethodAnalyticLoaderBloc
|
|
||||||
extends
|
|
||||||
Bloc<
|
|
||||||
PaymentMethodAnalyticLoaderEvent,
|
|
||||||
PaymentMethodAnalyticLoaderState
|
|
||||||
> {
|
|
||||||
final IAnalyticRepository _repository;
|
|
||||||
PaymentMethodAnalyticLoaderBloc(this._repository)
|
|
||||||
: super(PaymentMethodAnalyticLoaderState.initial()) {
|
|
||||||
on<PaymentMethodAnalyticLoaderEvent>(_onPaymentMethodAnalyticLoaderEvent);
|
|
||||||
}
|
|
||||||
|
|
||||||
Future<void> _onPaymentMethodAnalyticLoaderEvent(
|
|
||||||
PaymentMethodAnalyticLoaderEvent event,
|
|
||||||
Emitter<PaymentMethodAnalyticLoaderState> emit,
|
|
||||||
) {
|
|
||||||
return event.map(
|
|
||||||
fetched: (e) async {
|
|
||||||
emit(
|
|
||||||
state.copyWith(
|
|
||||||
isFetching: true,
|
|
||||||
failureOptionPaymentMethodAnalytic: none(),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
|
|
||||||
final result = await _repository.getPaymentMethod(
|
|
||||||
dateFrom: DateTime.now().subtract(const Duration(days: 30)),
|
|
||||||
dateTo: DateTime.now(),
|
|
||||||
);
|
|
||||||
|
|
||||||
var data = result.fold(
|
|
||||||
(f) =>
|
|
||||||
state.copyWith(failureOptionPaymentMethodAnalytic: optionOf(f)),
|
|
||||||
(paymentMethodAnalytic) =>
|
|
||||||
state.copyWith(paymentMethodAnalytic: paymentMethodAnalytic),
|
|
||||||
);
|
|
||||||
|
|
||||||
emit(data.copyWith(isFetching: false));
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,410 +0,0 @@
|
|||||||
// 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 'payment_method_analytic_loader_bloc.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 _$PaymentMethodAnalyticLoaderEvent {
|
|
||||||
@optionalTypeArgs
|
|
||||||
TResult when<TResult extends Object?>({
|
|
||||||
required TResult Function() fetched,
|
|
||||||
}) => throw _privateConstructorUsedError;
|
|
||||||
@optionalTypeArgs
|
|
||||||
TResult? whenOrNull<TResult extends Object?>({
|
|
||||||
TResult? Function()? fetched,
|
|
||||||
}) => throw _privateConstructorUsedError;
|
|
||||||
@optionalTypeArgs
|
|
||||||
TResult maybeWhen<TResult extends Object?>({
|
|
||||||
TResult Function()? fetched,
|
|
||||||
required TResult orElse(),
|
|
||||||
}) => throw _privateConstructorUsedError;
|
|
||||||
@optionalTypeArgs
|
|
||||||
TResult map<TResult extends Object?>({
|
|
||||||
required TResult Function(_Fetched value) fetched,
|
|
||||||
}) => throw _privateConstructorUsedError;
|
|
||||||
@optionalTypeArgs
|
|
||||||
TResult? mapOrNull<TResult extends Object?>({
|
|
||||||
TResult? Function(_Fetched value)? fetched,
|
|
||||||
}) => throw _privateConstructorUsedError;
|
|
||||||
@optionalTypeArgs
|
|
||||||
TResult maybeMap<TResult extends Object?>({
|
|
||||||
TResult Function(_Fetched value)? fetched,
|
|
||||||
required TResult orElse(),
|
|
||||||
}) => throw _privateConstructorUsedError;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// @nodoc
|
|
||||||
abstract class $PaymentMethodAnalyticLoaderEventCopyWith<$Res> {
|
|
||||||
factory $PaymentMethodAnalyticLoaderEventCopyWith(
|
|
||||||
PaymentMethodAnalyticLoaderEvent value,
|
|
||||||
$Res Function(PaymentMethodAnalyticLoaderEvent) then,
|
|
||||||
) =
|
|
||||||
_$PaymentMethodAnalyticLoaderEventCopyWithImpl<
|
|
||||||
$Res,
|
|
||||||
PaymentMethodAnalyticLoaderEvent
|
|
||||||
>;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// @nodoc
|
|
||||||
class _$PaymentMethodAnalyticLoaderEventCopyWithImpl<
|
|
||||||
$Res,
|
|
||||||
$Val extends PaymentMethodAnalyticLoaderEvent
|
|
||||||
>
|
|
||||||
implements $PaymentMethodAnalyticLoaderEventCopyWith<$Res> {
|
|
||||||
_$PaymentMethodAnalyticLoaderEventCopyWithImpl(this._value, this._then);
|
|
||||||
|
|
||||||
// ignore: unused_field
|
|
||||||
final $Val _value;
|
|
||||||
// ignore: unused_field
|
|
||||||
final $Res Function($Val) _then;
|
|
||||||
|
|
||||||
/// Create a copy of PaymentMethodAnalyticLoaderEvent
|
|
||||||
/// with the given fields replaced by the non-null parameter values.
|
|
||||||
}
|
|
||||||
|
|
||||||
/// @nodoc
|
|
||||||
abstract class _$$FetchedImplCopyWith<$Res> {
|
|
||||||
factory _$$FetchedImplCopyWith(
|
|
||||||
_$FetchedImpl value,
|
|
||||||
$Res Function(_$FetchedImpl) then,
|
|
||||||
) = __$$FetchedImplCopyWithImpl<$Res>;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// @nodoc
|
|
||||||
class __$$FetchedImplCopyWithImpl<$Res>
|
|
||||||
extends _$PaymentMethodAnalyticLoaderEventCopyWithImpl<$Res, _$FetchedImpl>
|
|
||||||
implements _$$FetchedImplCopyWith<$Res> {
|
|
||||||
__$$FetchedImplCopyWithImpl(
|
|
||||||
_$FetchedImpl _value,
|
|
||||||
$Res Function(_$FetchedImpl) _then,
|
|
||||||
) : super(_value, _then);
|
|
||||||
|
|
||||||
/// Create a copy of PaymentMethodAnalyticLoaderEvent
|
|
||||||
/// with the given fields replaced by the non-null parameter values.
|
|
||||||
}
|
|
||||||
|
|
||||||
/// @nodoc
|
|
||||||
|
|
||||||
class _$FetchedImpl implements _Fetched {
|
|
||||||
const _$FetchedImpl();
|
|
||||||
|
|
||||||
@override
|
|
||||||
String toString() {
|
|
||||||
return 'PaymentMethodAnalyticLoaderEvent.fetched()';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
bool operator ==(Object other) {
|
|
||||||
return identical(this, other) ||
|
|
||||||
(other.runtimeType == runtimeType && other is _$FetchedImpl);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
int get hashCode => runtimeType.hashCode;
|
|
||||||
|
|
||||||
@override
|
|
||||||
@optionalTypeArgs
|
|
||||||
TResult when<TResult extends Object?>({required TResult Function() fetched}) {
|
|
||||||
return fetched();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
@optionalTypeArgs
|
|
||||||
TResult? whenOrNull<TResult extends Object?>({TResult? Function()? fetched}) {
|
|
||||||
return fetched?.call();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
@optionalTypeArgs
|
|
||||||
TResult maybeWhen<TResult extends Object?>({
|
|
||||||
TResult Function()? fetched,
|
|
||||||
required TResult orElse(),
|
|
||||||
}) {
|
|
||||||
if (fetched != null) {
|
|
||||||
return fetched();
|
|
||||||
}
|
|
||||||
return orElse();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
@optionalTypeArgs
|
|
||||||
TResult map<TResult extends Object?>({
|
|
||||||
required TResult Function(_Fetched value) fetched,
|
|
||||||
}) {
|
|
||||||
return fetched(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
@optionalTypeArgs
|
|
||||||
TResult? mapOrNull<TResult extends Object?>({
|
|
||||||
TResult? Function(_Fetched value)? fetched,
|
|
||||||
}) {
|
|
||||||
return fetched?.call(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
@optionalTypeArgs
|
|
||||||
TResult maybeMap<TResult extends Object?>({
|
|
||||||
TResult Function(_Fetched value)? fetched,
|
|
||||||
required TResult orElse(),
|
|
||||||
}) {
|
|
||||||
if (fetched != null) {
|
|
||||||
return fetched(this);
|
|
||||||
}
|
|
||||||
return orElse();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
abstract class _Fetched implements PaymentMethodAnalyticLoaderEvent {
|
|
||||||
const factory _Fetched() = _$FetchedImpl;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// @nodoc
|
|
||||||
mixin _$PaymentMethodAnalyticLoaderState {
|
|
||||||
PaymentMethodAnalytic get paymentMethodAnalytic =>
|
|
||||||
throw _privateConstructorUsedError;
|
|
||||||
Option<AnalyticFailure> get failureOptionPaymentMethodAnalytic =>
|
|
||||||
throw _privateConstructorUsedError;
|
|
||||||
bool get isFetching => throw _privateConstructorUsedError;
|
|
||||||
|
|
||||||
/// Create a copy of PaymentMethodAnalyticLoaderState
|
|
||||||
/// with the given fields replaced by the non-null parameter values.
|
|
||||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
|
||||||
$PaymentMethodAnalyticLoaderStateCopyWith<PaymentMethodAnalyticLoaderState>
|
|
||||||
get copyWith => throw _privateConstructorUsedError;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// @nodoc
|
|
||||||
abstract class $PaymentMethodAnalyticLoaderStateCopyWith<$Res> {
|
|
||||||
factory $PaymentMethodAnalyticLoaderStateCopyWith(
|
|
||||||
PaymentMethodAnalyticLoaderState value,
|
|
||||||
$Res Function(PaymentMethodAnalyticLoaderState) then,
|
|
||||||
) =
|
|
||||||
_$PaymentMethodAnalyticLoaderStateCopyWithImpl<
|
|
||||||
$Res,
|
|
||||||
PaymentMethodAnalyticLoaderState
|
|
||||||
>;
|
|
||||||
@useResult
|
|
||||||
$Res call({
|
|
||||||
PaymentMethodAnalytic paymentMethodAnalytic,
|
|
||||||
Option<AnalyticFailure> failureOptionPaymentMethodAnalytic,
|
|
||||||
bool isFetching,
|
|
||||||
});
|
|
||||||
|
|
||||||
$PaymentMethodAnalyticCopyWith<$Res> get paymentMethodAnalytic;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// @nodoc
|
|
||||||
class _$PaymentMethodAnalyticLoaderStateCopyWithImpl<
|
|
||||||
$Res,
|
|
||||||
$Val extends PaymentMethodAnalyticLoaderState
|
|
||||||
>
|
|
||||||
implements $PaymentMethodAnalyticLoaderStateCopyWith<$Res> {
|
|
||||||
_$PaymentMethodAnalyticLoaderStateCopyWithImpl(this._value, this._then);
|
|
||||||
|
|
||||||
// ignore: unused_field
|
|
||||||
final $Val _value;
|
|
||||||
// ignore: unused_field
|
|
||||||
final $Res Function($Val) _then;
|
|
||||||
|
|
||||||
/// Create a copy of PaymentMethodAnalyticLoaderState
|
|
||||||
/// with the given fields replaced by the non-null parameter values.
|
|
||||||
@pragma('vm:prefer-inline')
|
|
||||||
@override
|
|
||||||
$Res call({
|
|
||||||
Object? paymentMethodAnalytic = null,
|
|
||||||
Object? failureOptionPaymentMethodAnalytic = null,
|
|
||||||
Object? isFetching = null,
|
|
||||||
}) {
|
|
||||||
return _then(
|
|
||||||
_value.copyWith(
|
|
||||||
paymentMethodAnalytic: null == paymentMethodAnalytic
|
|
||||||
? _value.paymentMethodAnalytic
|
|
||||||
: paymentMethodAnalytic // ignore: cast_nullable_to_non_nullable
|
|
||||||
as PaymentMethodAnalytic,
|
|
||||||
failureOptionPaymentMethodAnalytic:
|
|
||||||
null == failureOptionPaymentMethodAnalytic
|
|
||||||
? _value.failureOptionPaymentMethodAnalytic
|
|
||||||
: failureOptionPaymentMethodAnalytic // ignore: cast_nullable_to_non_nullable
|
|
||||||
as Option<AnalyticFailure>,
|
|
||||||
isFetching: null == isFetching
|
|
||||||
? _value.isFetching
|
|
||||||
: isFetching // ignore: cast_nullable_to_non_nullable
|
|
||||||
as bool,
|
|
||||||
)
|
|
||||||
as $Val,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Create a copy of PaymentMethodAnalyticLoaderState
|
|
||||||
/// with the given fields replaced by the non-null parameter values.
|
|
||||||
@override
|
|
||||||
@pragma('vm:prefer-inline')
|
|
||||||
$PaymentMethodAnalyticCopyWith<$Res> get paymentMethodAnalytic {
|
|
||||||
return $PaymentMethodAnalyticCopyWith<$Res>(_value.paymentMethodAnalytic, (
|
|
||||||
value,
|
|
||||||
) {
|
|
||||||
return _then(_value.copyWith(paymentMethodAnalytic: value) as $Val);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// @nodoc
|
|
||||||
abstract class _$$PaymentMethodAnalyticLoaderStateImplCopyWith<$Res>
|
|
||||||
implements $PaymentMethodAnalyticLoaderStateCopyWith<$Res> {
|
|
||||||
factory _$$PaymentMethodAnalyticLoaderStateImplCopyWith(
|
|
||||||
_$PaymentMethodAnalyticLoaderStateImpl value,
|
|
||||||
$Res Function(_$PaymentMethodAnalyticLoaderStateImpl) then,
|
|
||||||
) = __$$PaymentMethodAnalyticLoaderStateImplCopyWithImpl<$Res>;
|
|
||||||
@override
|
|
||||||
@useResult
|
|
||||||
$Res call({
|
|
||||||
PaymentMethodAnalytic paymentMethodAnalytic,
|
|
||||||
Option<AnalyticFailure> failureOptionPaymentMethodAnalytic,
|
|
||||||
bool isFetching,
|
|
||||||
});
|
|
||||||
|
|
||||||
@override
|
|
||||||
$PaymentMethodAnalyticCopyWith<$Res> get paymentMethodAnalytic;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// @nodoc
|
|
||||||
class __$$PaymentMethodAnalyticLoaderStateImplCopyWithImpl<$Res>
|
|
||||||
extends
|
|
||||||
_$PaymentMethodAnalyticLoaderStateCopyWithImpl<
|
|
||||||
$Res,
|
|
||||||
_$PaymentMethodAnalyticLoaderStateImpl
|
|
||||||
>
|
|
||||||
implements _$$PaymentMethodAnalyticLoaderStateImplCopyWith<$Res> {
|
|
||||||
__$$PaymentMethodAnalyticLoaderStateImplCopyWithImpl(
|
|
||||||
_$PaymentMethodAnalyticLoaderStateImpl _value,
|
|
||||||
$Res Function(_$PaymentMethodAnalyticLoaderStateImpl) _then,
|
|
||||||
) : super(_value, _then);
|
|
||||||
|
|
||||||
/// Create a copy of PaymentMethodAnalyticLoaderState
|
|
||||||
/// with the given fields replaced by the non-null parameter values.
|
|
||||||
@pragma('vm:prefer-inline')
|
|
||||||
@override
|
|
||||||
$Res call({
|
|
||||||
Object? paymentMethodAnalytic = null,
|
|
||||||
Object? failureOptionPaymentMethodAnalytic = null,
|
|
||||||
Object? isFetching = null,
|
|
||||||
}) {
|
|
||||||
return _then(
|
|
||||||
_$PaymentMethodAnalyticLoaderStateImpl(
|
|
||||||
paymentMethodAnalytic: null == paymentMethodAnalytic
|
|
||||||
? _value.paymentMethodAnalytic
|
|
||||||
: paymentMethodAnalytic // ignore: cast_nullable_to_non_nullable
|
|
||||||
as PaymentMethodAnalytic,
|
|
||||||
failureOptionPaymentMethodAnalytic:
|
|
||||||
null == failureOptionPaymentMethodAnalytic
|
|
||||||
? _value.failureOptionPaymentMethodAnalytic
|
|
||||||
: failureOptionPaymentMethodAnalytic // ignore: cast_nullable_to_non_nullable
|
|
||||||
as Option<AnalyticFailure>,
|
|
||||||
isFetching: null == isFetching
|
|
||||||
? _value.isFetching
|
|
||||||
: isFetching // ignore: cast_nullable_to_non_nullable
|
|
||||||
as bool,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// @nodoc
|
|
||||||
|
|
||||||
class _$PaymentMethodAnalyticLoaderStateImpl
|
|
||||||
implements _PaymentMethodAnalyticLoaderState {
|
|
||||||
const _$PaymentMethodAnalyticLoaderStateImpl({
|
|
||||||
required this.paymentMethodAnalytic,
|
|
||||||
required this.failureOptionPaymentMethodAnalytic,
|
|
||||||
this.isFetching = false,
|
|
||||||
});
|
|
||||||
|
|
||||||
@override
|
|
||||||
final PaymentMethodAnalytic paymentMethodAnalytic;
|
|
||||||
@override
|
|
||||||
final Option<AnalyticFailure> failureOptionPaymentMethodAnalytic;
|
|
||||||
@override
|
|
||||||
@JsonKey()
|
|
||||||
final bool isFetching;
|
|
||||||
|
|
||||||
@override
|
|
||||||
String toString() {
|
|
||||||
return 'PaymentMethodAnalyticLoaderState(paymentMethodAnalytic: $paymentMethodAnalytic, failureOptionPaymentMethodAnalytic: $failureOptionPaymentMethodAnalytic, isFetching: $isFetching)';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
bool operator ==(Object other) {
|
|
||||||
return identical(this, other) ||
|
|
||||||
(other.runtimeType == runtimeType &&
|
|
||||||
other is _$PaymentMethodAnalyticLoaderStateImpl &&
|
|
||||||
(identical(other.paymentMethodAnalytic, paymentMethodAnalytic) ||
|
|
||||||
other.paymentMethodAnalytic == paymentMethodAnalytic) &&
|
|
||||||
(identical(
|
|
||||||
other.failureOptionPaymentMethodAnalytic,
|
|
||||||
failureOptionPaymentMethodAnalytic,
|
|
||||||
) ||
|
|
||||||
other.failureOptionPaymentMethodAnalytic ==
|
|
||||||
failureOptionPaymentMethodAnalytic) &&
|
|
||||||
(identical(other.isFetching, isFetching) ||
|
|
||||||
other.isFetching == isFetching));
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
int get hashCode => Object.hash(
|
|
||||||
runtimeType,
|
|
||||||
paymentMethodAnalytic,
|
|
||||||
failureOptionPaymentMethodAnalytic,
|
|
||||||
isFetching,
|
|
||||||
);
|
|
||||||
|
|
||||||
/// Create a copy of PaymentMethodAnalyticLoaderState
|
|
||||||
/// with the given fields replaced by the non-null parameter values.
|
|
||||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
|
||||||
@override
|
|
||||||
@pragma('vm:prefer-inline')
|
|
||||||
_$$PaymentMethodAnalyticLoaderStateImplCopyWith<
|
|
||||||
_$PaymentMethodAnalyticLoaderStateImpl
|
|
||||||
>
|
|
||||||
get copyWith =>
|
|
||||||
__$$PaymentMethodAnalyticLoaderStateImplCopyWithImpl<
|
|
||||||
_$PaymentMethodAnalyticLoaderStateImpl
|
|
||||||
>(this, _$identity);
|
|
||||||
}
|
|
||||||
|
|
||||||
abstract class _PaymentMethodAnalyticLoaderState
|
|
||||||
implements PaymentMethodAnalyticLoaderState {
|
|
||||||
const factory _PaymentMethodAnalyticLoaderState({
|
|
||||||
required final PaymentMethodAnalytic paymentMethodAnalytic,
|
|
||||||
required final Option<AnalyticFailure> failureOptionPaymentMethodAnalytic,
|
|
||||||
final bool isFetching,
|
|
||||||
}) = _$PaymentMethodAnalyticLoaderStateImpl;
|
|
||||||
|
|
||||||
@override
|
|
||||||
PaymentMethodAnalytic get paymentMethodAnalytic;
|
|
||||||
@override
|
|
||||||
Option<AnalyticFailure> get failureOptionPaymentMethodAnalytic;
|
|
||||||
@override
|
|
||||||
bool get isFetching;
|
|
||||||
|
|
||||||
/// Create a copy of PaymentMethodAnalyticLoaderState
|
|
||||||
/// with the given fields replaced by the non-null parameter values.
|
|
||||||
@override
|
|
||||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
|
||||||
_$$PaymentMethodAnalyticLoaderStateImplCopyWith<
|
|
||||||
_$PaymentMethodAnalyticLoaderStateImpl
|
|
||||||
>
|
|
||||||
get copyWith => throw _privateConstructorUsedError;
|
|
||||||
}
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
part of 'payment_method_analytic_loader_bloc.dart';
|
|
||||||
|
|
||||||
@freezed
|
|
||||||
class PaymentMethodAnalyticLoaderEvent with _$PaymentMethodAnalyticLoaderEvent {
|
|
||||||
const factory PaymentMethodAnalyticLoaderEvent.fetched() = _Fetched;
|
|
||||||
}
|
|
||||||
@ -1,16 +0,0 @@
|
|||||||
part of 'payment_method_analytic_loader_bloc.dart';
|
|
||||||
|
|
||||||
@freezed
|
|
||||||
class PaymentMethodAnalyticLoaderState with _$PaymentMethodAnalyticLoaderState {
|
|
||||||
const factory PaymentMethodAnalyticLoaderState({
|
|
||||||
required PaymentMethodAnalytic paymentMethodAnalytic,
|
|
||||||
required Option<AnalyticFailure> failureOptionPaymentMethodAnalytic,
|
|
||||||
@Default(false) bool isFetching,
|
|
||||||
}) = _PaymentMethodAnalyticLoaderState;
|
|
||||||
|
|
||||||
factory PaymentMethodAnalyticLoaderState.initial() =>
|
|
||||||
PaymentMethodAnalyticLoaderState(
|
|
||||||
paymentMethodAnalytic: PaymentMethodAnalytic.empty(),
|
|
||||||
failureOptionPaymentMethodAnalytic: none(),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
@ -1,49 +0,0 @@
|
|||||||
import 'package:dartz/dartz.dart';
|
|
||||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
|
||||||
import 'package:freezed_annotation/freezed_annotation.dart';
|
|
||||||
import 'package:injectable/injectable.dart';
|
|
||||||
|
|
||||||
import '../../../domain/analytic/analytic.dart';
|
|
||||||
import '../../../domain/analytic/repositories/i_analytic_repository.dart';
|
|
||||||
|
|
||||||
part 'product_analytic_loader_event.dart';
|
|
||||||
part 'product_analytic_loader_state.dart';
|
|
||||||
part 'product_analytic_loader_bloc.freezed.dart';
|
|
||||||
|
|
||||||
@injectable
|
|
||||||
class ProductAnalyticLoaderBloc
|
|
||||||
extends Bloc<ProductAnalyticLoaderEvent, ProductAnalyticLoaderState> {
|
|
||||||
final IAnalyticRepository _repository;
|
|
||||||
ProductAnalyticLoaderBloc(this._repository)
|
|
||||||
: super(ProductAnalyticLoaderState.initial()) {
|
|
||||||
on<ProductAnalyticLoaderEvent>(_onProductAnalyticLoaderEvent);
|
|
||||||
}
|
|
||||||
|
|
||||||
Future<void> _onProductAnalyticLoaderEvent(
|
|
||||||
ProductAnalyticLoaderEvent event,
|
|
||||||
Emitter<ProductAnalyticLoaderState> emit,
|
|
||||||
) {
|
|
||||||
return event.map(
|
|
||||||
fetched: (e) async {
|
|
||||||
emit(
|
|
||||||
state.copyWith(
|
|
||||||
isFetching: true,
|
|
||||||
failureOptionProductAnalytic: none(),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
|
|
||||||
final result = await _repository.getProduct(
|
|
||||||
dateFrom: DateTime.now().subtract(const Duration(days: 30)),
|
|
||||||
dateTo: DateTime.now(),
|
|
||||||
);
|
|
||||||
|
|
||||||
var data = result.fold(
|
|
||||||
(f) => state.copyWith(failureOptionProductAnalytic: optionOf(f)),
|
|
||||||
(productAnalytic) => state.copyWith(productAnalytic: productAnalytic),
|
|
||||||
);
|
|
||||||
|
|
||||||
emit(data.copyWith(isFetching: false));
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,400 +0,0 @@
|
|||||||
// 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 'product_analytic_loader_bloc.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 _$ProductAnalyticLoaderEvent {
|
|
||||||
@optionalTypeArgs
|
|
||||||
TResult when<TResult extends Object?>({
|
|
||||||
required TResult Function() fetched,
|
|
||||||
}) => throw _privateConstructorUsedError;
|
|
||||||
@optionalTypeArgs
|
|
||||||
TResult? whenOrNull<TResult extends Object?>({
|
|
||||||
TResult? Function()? fetched,
|
|
||||||
}) => throw _privateConstructorUsedError;
|
|
||||||
@optionalTypeArgs
|
|
||||||
TResult maybeWhen<TResult extends Object?>({
|
|
||||||
TResult Function()? fetched,
|
|
||||||
required TResult orElse(),
|
|
||||||
}) => throw _privateConstructorUsedError;
|
|
||||||
@optionalTypeArgs
|
|
||||||
TResult map<TResult extends Object?>({
|
|
||||||
required TResult Function(_Fetched value) fetched,
|
|
||||||
}) => throw _privateConstructorUsedError;
|
|
||||||
@optionalTypeArgs
|
|
||||||
TResult? mapOrNull<TResult extends Object?>({
|
|
||||||
TResult? Function(_Fetched value)? fetched,
|
|
||||||
}) => throw _privateConstructorUsedError;
|
|
||||||
@optionalTypeArgs
|
|
||||||
TResult maybeMap<TResult extends Object?>({
|
|
||||||
TResult Function(_Fetched value)? fetched,
|
|
||||||
required TResult orElse(),
|
|
||||||
}) => throw _privateConstructorUsedError;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// @nodoc
|
|
||||||
abstract class $ProductAnalyticLoaderEventCopyWith<$Res> {
|
|
||||||
factory $ProductAnalyticLoaderEventCopyWith(
|
|
||||||
ProductAnalyticLoaderEvent value,
|
|
||||||
$Res Function(ProductAnalyticLoaderEvent) then,
|
|
||||||
) =
|
|
||||||
_$ProductAnalyticLoaderEventCopyWithImpl<
|
|
||||||
$Res,
|
|
||||||
ProductAnalyticLoaderEvent
|
|
||||||
>;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// @nodoc
|
|
||||||
class _$ProductAnalyticLoaderEventCopyWithImpl<
|
|
||||||
$Res,
|
|
||||||
$Val extends ProductAnalyticLoaderEvent
|
|
||||||
>
|
|
||||||
implements $ProductAnalyticLoaderEventCopyWith<$Res> {
|
|
||||||
_$ProductAnalyticLoaderEventCopyWithImpl(this._value, this._then);
|
|
||||||
|
|
||||||
// ignore: unused_field
|
|
||||||
final $Val _value;
|
|
||||||
// ignore: unused_field
|
|
||||||
final $Res Function($Val) _then;
|
|
||||||
|
|
||||||
/// Create a copy of ProductAnalyticLoaderEvent
|
|
||||||
/// with the given fields replaced by the non-null parameter values.
|
|
||||||
}
|
|
||||||
|
|
||||||
/// @nodoc
|
|
||||||
abstract class _$$FetchedImplCopyWith<$Res> {
|
|
||||||
factory _$$FetchedImplCopyWith(
|
|
||||||
_$FetchedImpl value,
|
|
||||||
$Res Function(_$FetchedImpl) then,
|
|
||||||
) = __$$FetchedImplCopyWithImpl<$Res>;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// @nodoc
|
|
||||||
class __$$FetchedImplCopyWithImpl<$Res>
|
|
||||||
extends _$ProductAnalyticLoaderEventCopyWithImpl<$Res, _$FetchedImpl>
|
|
||||||
implements _$$FetchedImplCopyWith<$Res> {
|
|
||||||
__$$FetchedImplCopyWithImpl(
|
|
||||||
_$FetchedImpl _value,
|
|
||||||
$Res Function(_$FetchedImpl) _then,
|
|
||||||
) : super(_value, _then);
|
|
||||||
|
|
||||||
/// Create a copy of ProductAnalyticLoaderEvent
|
|
||||||
/// with the given fields replaced by the non-null parameter values.
|
|
||||||
}
|
|
||||||
|
|
||||||
/// @nodoc
|
|
||||||
|
|
||||||
class _$FetchedImpl implements _Fetched {
|
|
||||||
const _$FetchedImpl();
|
|
||||||
|
|
||||||
@override
|
|
||||||
String toString() {
|
|
||||||
return 'ProductAnalyticLoaderEvent.fetched()';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
bool operator ==(Object other) {
|
|
||||||
return identical(this, other) ||
|
|
||||||
(other.runtimeType == runtimeType && other is _$FetchedImpl);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
int get hashCode => runtimeType.hashCode;
|
|
||||||
|
|
||||||
@override
|
|
||||||
@optionalTypeArgs
|
|
||||||
TResult when<TResult extends Object?>({required TResult Function() fetched}) {
|
|
||||||
return fetched();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
@optionalTypeArgs
|
|
||||||
TResult? whenOrNull<TResult extends Object?>({TResult? Function()? fetched}) {
|
|
||||||
return fetched?.call();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
@optionalTypeArgs
|
|
||||||
TResult maybeWhen<TResult extends Object?>({
|
|
||||||
TResult Function()? fetched,
|
|
||||||
required TResult orElse(),
|
|
||||||
}) {
|
|
||||||
if (fetched != null) {
|
|
||||||
return fetched();
|
|
||||||
}
|
|
||||||
return orElse();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
@optionalTypeArgs
|
|
||||||
TResult map<TResult extends Object?>({
|
|
||||||
required TResult Function(_Fetched value) fetched,
|
|
||||||
}) {
|
|
||||||
return fetched(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
@optionalTypeArgs
|
|
||||||
TResult? mapOrNull<TResult extends Object?>({
|
|
||||||
TResult? Function(_Fetched value)? fetched,
|
|
||||||
}) {
|
|
||||||
return fetched?.call(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
@optionalTypeArgs
|
|
||||||
TResult maybeMap<TResult extends Object?>({
|
|
||||||
TResult Function(_Fetched value)? fetched,
|
|
||||||
required TResult orElse(),
|
|
||||||
}) {
|
|
||||||
if (fetched != null) {
|
|
||||||
return fetched(this);
|
|
||||||
}
|
|
||||||
return orElse();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
abstract class _Fetched implements ProductAnalyticLoaderEvent {
|
|
||||||
const factory _Fetched() = _$FetchedImpl;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// @nodoc
|
|
||||||
mixin _$ProductAnalyticLoaderState {
|
|
||||||
ProductAnalytic get productAnalytic => throw _privateConstructorUsedError;
|
|
||||||
Option<AnalyticFailure> get failureOptionProductAnalytic =>
|
|
||||||
throw _privateConstructorUsedError;
|
|
||||||
bool get isFetching => throw _privateConstructorUsedError;
|
|
||||||
|
|
||||||
/// Create a copy of ProductAnalyticLoaderState
|
|
||||||
/// with the given fields replaced by the non-null parameter values.
|
|
||||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
|
||||||
$ProductAnalyticLoaderStateCopyWith<ProductAnalyticLoaderState>
|
|
||||||
get copyWith => throw _privateConstructorUsedError;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// @nodoc
|
|
||||||
abstract class $ProductAnalyticLoaderStateCopyWith<$Res> {
|
|
||||||
factory $ProductAnalyticLoaderStateCopyWith(
|
|
||||||
ProductAnalyticLoaderState value,
|
|
||||||
$Res Function(ProductAnalyticLoaderState) then,
|
|
||||||
) =
|
|
||||||
_$ProductAnalyticLoaderStateCopyWithImpl<
|
|
||||||
$Res,
|
|
||||||
ProductAnalyticLoaderState
|
|
||||||
>;
|
|
||||||
@useResult
|
|
||||||
$Res call({
|
|
||||||
ProductAnalytic productAnalytic,
|
|
||||||
Option<AnalyticFailure> failureOptionProductAnalytic,
|
|
||||||
bool isFetching,
|
|
||||||
});
|
|
||||||
|
|
||||||
$ProductAnalyticCopyWith<$Res> get productAnalytic;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// @nodoc
|
|
||||||
class _$ProductAnalyticLoaderStateCopyWithImpl<
|
|
||||||
$Res,
|
|
||||||
$Val extends ProductAnalyticLoaderState
|
|
||||||
>
|
|
||||||
implements $ProductAnalyticLoaderStateCopyWith<$Res> {
|
|
||||||
_$ProductAnalyticLoaderStateCopyWithImpl(this._value, this._then);
|
|
||||||
|
|
||||||
// ignore: unused_field
|
|
||||||
final $Val _value;
|
|
||||||
// ignore: unused_field
|
|
||||||
final $Res Function($Val) _then;
|
|
||||||
|
|
||||||
/// Create a copy of ProductAnalyticLoaderState
|
|
||||||
/// with the given fields replaced by the non-null parameter values.
|
|
||||||
@pragma('vm:prefer-inline')
|
|
||||||
@override
|
|
||||||
$Res call({
|
|
||||||
Object? productAnalytic = null,
|
|
||||||
Object? failureOptionProductAnalytic = null,
|
|
||||||
Object? isFetching = null,
|
|
||||||
}) {
|
|
||||||
return _then(
|
|
||||||
_value.copyWith(
|
|
||||||
productAnalytic: null == productAnalytic
|
|
||||||
? _value.productAnalytic
|
|
||||||
: productAnalytic // ignore: cast_nullable_to_non_nullable
|
|
||||||
as ProductAnalytic,
|
|
||||||
failureOptionProductAnalytic: null == failureOptionProductAnalytic
|
|
||||||
? _value.failureOptionProductAnalytic
|
|
||||||
: failureOptionProductAnalytic // ignore: cast_nullable_to_non_nullable
|
|
||||||
as Option<AnalyticFailure>,
|
|
||||||
isFetching: null == isFetching
|
|
||||||
? _value.isFetching
|
|
||||||
: isFetching // ignore: cast_nullable_to_non_nullable
|
|
||||||
as bool,
|
|
||||||
)
|
|
||||||
as $Val,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Create a copy of ProductAnalyticLoaderState
|
|
||||||
/// with the given fields replaced by the non-null parameter values.
|
|
||||||
@override
|
|
||||||
@pragma('vm:prefer-inline')
|
|
||||||
$ProductAnalyticCopyWith<$Res> get productAnalytic {
|
|
||||||
return $ProductAnalyticCopyWith<$Res>(_value.productAnalytic, (value) {
|
|
||||||
return _then(_value.copyWith(productAnalytic: value) as $Val);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// @nodoc
|
|
||||||
abstract class _$$ProductAnalyticLoaderStateImplCopyWith<$Res>
|
|
||||||
implements $ProductAnalyticLoaderStateCopyWith<$Res> {
|
|
||||||
factory _$$ProductAnalyticLoaderStateImplCopyWith(
|
|
||||||
_$ProductAnalyticLoaderStateImpl value,
|
|
||||||
$Res Function(_$ProductAnalyticLoaderStateImpl) then,
|
|
||||||
) = __$$ProductAnalyticLoaderStateImplCopyWithImpl<$Res>;
|
|
||||||
@override
|
|
||||||
@useResult
|
|
||||||
$Res call({
|
|
||||||
ProductAnalytic productAnalytic,
|
|
||||||
Option<AnalyticFailure> failureOptionProductAnalytic,
|
|
||||||
bool isFetching,
|
|
||||||
});
|
|
||||||
|
|
||||||
@override
|
|
||||||
$ProductAnalyticCopyWith<$Res> get productAnalytic;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// @nodoc
|
|
||||||
class __$$ProductAnalyticLoaderStateImplCopyWithImpl<$Res>
|
|
||||||
extends
|
|
||||||
_$ProductAnalyticLoaderStateCopyWithImpl<
|
|
||||||
$Res,
|
|
||||||
_$ProductAnalyticLoaderStateImpl
|
|
||||||
>
|
|
||||||
implements _$$ProductAnalyticLoaderStateImplCopyWith<$Res> {
|
|
||||||
__$$ProductAnalyticLoaderStateImplCopyWithImpl(
|
|
||||||
_$ProductAnalyticLoaderStateImpl _value,
|
|
||||||
$Res Function(_$ProductAnalyticLoaderStateImpl) _then,
|
|
||||||
) : super(_value, _then);
|
|
||||||
|
|
||||||
/// Create a copy of ProductAnalyticLoaderState
|
|
||||||
/// with the given fields replaced by the non-null parameter values.
|
|
||||||
@pragma('vm:prefer-inline')
|
|
||||||
@override
|
|
||||||
$Res call({
|
|
||||||
Object? productAnalytic = null,
|
|
||||||
Object? failureOptionProductAnalytic = null,
|
|
||||||
Object? isFetching = null,
|
|
||||||
}) {
|
|
||||||
return _then(
|
|
||||||
_$ProductAnalyticLoaderStateImpl(
|
|
||||||
productAnalytic: null == productAnalytic
|
|
||||||
? _value.productAnalytic
|
|
||||||
: productAnalytic // ignore: cast_nullable_to_non_nullable
|
|
||||||
as ProductAnalytic,
|
|
||||||
failureOptionProductAnalytic: null == failureOptionProductAnalytic
|
|
||||||
? _value.failureOptionProductAnalytic
|
|
||||||
: failureOptionProductAnalytic // ignore: cast_nullable_to_non_nullable
|
|
||||||
as Option<AnalyticFailure>,
|
|
||||||
isFetching: null == isFetching
|
|
||||||
? _value.isFetching
|
|
||||||
: isFetching // ignore: cast_nullable_to_non_nullable
|
|
||||||
as bool,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// @nodoc
|
|
||||||
|
|
||||||
class _$ProductAnalyticLoaderStateImpl implements _ProductAnalyticLoaderState {
|
|
||||||
const _$ProductAnalyticLoaderStateImpl({
|
|
||||||
required this.productAnalytic,
|
|
||||||
required this.failureOptionProductAnalytic,
|
|
||||||
this.isFetching = false,
|
|
||||||
});
|
|
||||||
|
|
||||||
@override
|
|
||||||
final ProductAnalytic productAnalytic;
|
|
||||||
@override
|
|
||||||
final Option<AnalyticFailure> failureOptionProductAnalytic;
|
|
||||||
@override
|
|
||||||
@JsonKey()
|
|
||||||
final bool isFetching;
|
|
||||||
|
|
||||||
@override
|
|
||||||
String toString() {
|
|
||||||
return 'ProductAnalyticLoaderState(productAnalytic: $productAnalytic, failureOptionProductAnalytic: $failureOptionProductAnalytic, isFetching: $isFetching)';
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
bool operator ==(Object other) {
|
|
||||||
return identical(this, other) ||
|
|
||||||
(other.runtimeType == runtimeType &&
|
|
||||||
other is _$ProductAnalyticLoaderStateImpl &&
|
|
||||||
(identical(other.productAnalytic, productAnalytic) ||
|
|
||||||
other.productAnalytic == productAnalytic) &&
|
|
||||||
(identical(
|
|
||||||
other.failureOptionProductAnalytic,
|
|
||||||
failureOptionProductAnalytic,
|
|
||||||
) ||
|
|
||||||
other.failureOptionProductAnalytic ==
|
|
||||||
failureOptionProductAnalytic) &&
|
|
||||||
(identical(other.isFetching, isFetching) ||
|
|
||||||
other.isFetching == isFetching));
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
int get hashCode => Object.hash(
|
|
||||||
runtimeType,
|
|
||||||
productAnalytic,
|
|
||||||
failureOptionProductAnalytic,
|
|
||||||
isFetching,
|
|
||||||
);
|
|
||||||
|
|
||||||
/// Create a copy of ProductAnalyticLoaderState
|
|
||||||
/// with the given fields replaced by the non-null parameter values.
|
|
||||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
|
||||||
@override
|
|
||||||
@pragma('vm:prefer-inline')
|
|
||||||
_$$ProductAnalyticLoaderStateImplCopyWith<_$ProductAnalyticLoaderStateImpl>
|
|
||||||
get copyWith =>
|
|
||||||
__$$ProductAnalyticLoaderStateImplCopyWithImpl<
|
|
||||||
_$ProductAnalyticLoaderStateImpl
|
|
||||||
>(this, _$identity);
|
|
||||||
}
|
|
||||||
|
|
||||||
abstract class _ProductAnalyticLoaderState
|
|
||||||
implements ProductAnalyticLoaderState {
|
|
||||||
const factory _ProductAnalyticLoaderState({
|
|
||||||
required final ProductAnalytic productAnalytic,
|
|
||||||
required final Option<AnalyticFailure> failureOptionProductAnalytic,
|
|
||||||
final bool isFetching,
|
|
||||||
}) = _$ProductAnalyticLoaderStateImpl;
|
|
||||||
|
|
||||||
@override
|
|
||||||
ProductAnalytic get productAnalytic;
|
|
||||||
@override
|
|
||||||
Option<AnalyticFailure> get failureOptionProductAnalytic;
|
|
||||||
@override
|
|
||||||
bool get isFetching;
|
|
||||||
|
|
||||||
/// Create a copy of ProductAnalyticLoaderState
|
|
||||||
/// with the given fields replaced by the non-null parameter values.
|
|
||||||
@override
|
|
||||||
@JsonKey(includeFromJson: false, includeToJson: false)
|
|
||||||
_$$ProductAnalyticLoaderStateImplCopyWith<_$ProductAnalyticLoaderStateImpl>
|
|
||||||
get copyWith => throw _privateConstructorUsedError;
|
|
||||||
}
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
part of 'product_analytic_loader_bloc.dart';
|
|
||||||
|
|
||||||
@freezed
|
|
||||||
class ProductAnalyticLoaderEvent with _$ProductAnalyticLoaderEvent {
|
|
||||||
const factory ProductAnalyticLoaderEvent.fetched() = _Fetched;
|
|
||||||
}
|
|
||||||
@ -1,15 +0,0 @@
|
|||||||
part of 'product_analytic_loader_bloc.dart';
|
|
||||||
|
|
||||||
@freezed
|
|
||||||
class ProductAnalyticLoaderState with _$ProductAnalyticLoaderState {
|
|
||||||
const factory ProductAnalyticLoaderState({
|
|
||||||
required ProductAnalytic productAnalytic,
|
|
||||||
required Option<AnalyticFailure> failureOptionProductAnalytic,
|
|
||||||
@Default(false) bool isFetching,
|
|
||||||
}) = _ProductAnalyticLoaderState;
|
|
||||||
|
|
||||||
factory ProductAnalyticLoaderState.initial() => ProductAnalyticLoaderState(
|
|
||||||
productAnalytic: ProductAnalytic.empty(),
|
|
||||||
failureOptionProductAnalytic: none(),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
@ -8,9 +8,6 @@ class ApiPath {
|
|||||||
static const String profitLossAnalytic = '/api/v1/analytics/profit-loss';
|
static const String profitLossAnalytic = '/api/v1/analytics/profit-loss';
|
||||||
static const String categoryAnalytic = '/api/v1/analytics/categories';
|
static const String categoryAnalytic = '/api/v1/analytics/categories';
|
||||||
static const String dashboardAnalytic = '/api/v1/analytics/dashboard';
|
static const String dashboardAnalytic = '/api/v1/analytics/dashboard';
|
||||||
static const String productAnalytic = '/api/v1/analytics/products';
|
|
||||||
static const String paymentMethodAnalytic =
|
|
||||||
'/api/v1/analytics/paymentMethods';
|
|
||||||
|
|
||||||
// Inventory
|
// Inventory
|
||||||
static const String inventoryReportDetail =
|
static const String inventoryReportDetail =
|
||||||
|
|||||||
@ -9,6 +9,4 @@ part 'entities/profit_loss_analytic_entity.dart';
|
|||||||
part 'entities/category_analytic_entity.dart';
|
part 'entities/category_analytic_entity.dart';
|
||||||
part 'entities/inventory_analytic_entity.dart';
|
part 'entities/inventory_analytic_entity.dart';
|
||||||
part 'entities/dashboard_analytic_entity.dart';
|
part 'entities/dashboard_analytic_entity.dart';
|
||||||
part 'entities/product_analytic_entity.dart';
|
|
||||||
part 'entities/payment_method_analytic_entity.dart';
|
|
||||||
part 'failures/analytic_failure.dart';
|
part 'failures/analytic_failure.dart';
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -1,64 +0,0 @@
|
|||||||
part of '../analytic.dart';
|
|
||||||
|
|
||||||
@freezed
|
|
||||||
class PaymentMethodAnalytic with _$PaymentMethodAnalytic {
|
|
||||||
const factory PaymentMethodAnalytic({
|
|
||||||
required String organizationId,
|
|
||||||
required String outletId,
|
|
||||||
required String dateFrom,
|
|
||||||
required String dateTo,
|
|
||||||
required String groupBy,
|
|
||||||
required PaymentMethodSummary summary,
|
|
||||||
required List<PaymentMethodItem> data,
|
|
||||||
}) = _PaymentMethodAnalytic;
|
|
||||||
|
|
||||||
factory PaymentMethodAnalytic.empty() => PaymentMethodAnalytic(
|
|
||||||
organizationId: '',
|
|
||||||
outletId: '',
|
|
||||||
dateFrom: '',
|
|
||||||
dateTo: '',
|
|
||||||
groupBy: '',
|
|
||||||
summary: PaymentMethodSummary.empty(),
|
|
||||||
data: [],
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@freezed
|
|
||||||
class PaymentMethodItem with _$PaymentMethodItem {
|
|
||||||
const factory PaymentMethodItem({
|
|
||||||
required String paymentMethodId,
|
|
||||||
required String paymentMethodName,
|
|
||||||
required String paymentMethodType,
|
|
||||||
required num totalAmount,
|
|
||||||
required int orderCount,
|
|
||||||
required int paymentCount,
|
|
||||||
required double percentage,
|
|
||||||
}) = _PaymentMethodItem;
|
|
||||||
|
|
||||||
factory PaymentMethodItem.empty() => const PaymentMethodItem(
|
|
||||||
paymentMethodId: '',
|
|
||||||
paymentMethodName: '',
|
|
||||||
paymentMethodType: '',
|
|
||||||
totalAmount: 0,
|
|
||||||
orderCount: 0,
|
|
||||||
paymentCount: 0,
|
|
||||||
percentage: 0.0,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@freezed
|
|
||||||
class PaymentMethodSummary with _$PaymentMethodSummary {
|
|
||||||
const factory PaymentMethodSummary({
|
|
||||||
required num totalAmount,
|
|
||||||
required int totalOrders,
|
|
||||||
required int totalPayments,
|
|
||||||
required double averageOrderValue,
|
|
||||||
}) = _PaymentMethodSummary;
|
|
||||||
|
|
||||||
factory PaymentMethodSummary.empty() => const PaymentMethodSummary(
|
|
||||||
totalAmount: 0,
|
|
||||||
totalOrders: 0,
|
|
||||||
totalPayments: 0,
|
|
||||||
averageOrderValue: 0.0,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
@ -1,45 +0,0 @@
|
|||||||
part of '../analytic.dart';
|
|
||||||
|
|
||||||
@freezed
|
|
||||||
class ProductAnalytic with _$ProductAnalytic {
|
|
||||||
const factory ProductAnalytic({
|
|
||||||
required String organizationId,
|
|
||||||
required String outletId,
|
|
||||||
required String dateFrom,
|
|
||||||
required String dateTo,
|
|
||||||
required List<ProductAnalyticData> data,
|
|
||||||
}) = _ProductAnalytic;
|
|
||||||
|
|
||||||
factory ProductAnalytic.empty() => const ProductAnalytic(
|
|
||||||
organizationId: '',
|
|
||||||
outletId: '',
|
|
||||||
dateFrom: '',
|
|
||||||
dateTo: '',
|
|
||||||
data: [],
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@freezed
|
|
||||||
class ProductAnalyticData with _$ProductAnalyticData {
|
|
||||||
const factory ProductAnalyticData({
|
|
||||||
required String productId,
|
|
||||||
required String productName,
|
|
||||||
required String categoryId,
|
|
||||||
required String categoryName,
|
|
||||||
required int quantitySold,
|
|
||||||
required double revenue,
|
|
||||||
required double averagePrice,
|
|
||||||
required int orderCount,
|
|
||||||
}) = _ProductAnalyticData;
|
|
||||||
|
|
||||||
factory ProductAnalyticData.empty() => const ProductAnalyticData(
|
|
||||||
productId: '',
|
|
||||||
productName: '',
|
|
||||||
categoryId: '',
|
|
||||||
categoryName: '',
|
|
||||||
quantitySold: 0,
|
|
||||||
revenue: 0.0,
|
|
||||||
averagePrice: 0.0,
|
|
||||||
orderCount: 0,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
@ -27,14 +27,4 @@ abstract class IAnalyticRepository {
|
|||||||
required DateTime dateFrom,
|
required DateTime dateFrom,
|
||||||
required DateTime dateTo,
|
required DateTime dateTo,
|
||||||
});
|
});
|
||||||
|
|
||||||
Future<Either<AnalyticFailure, ProductAnalytic>> getProduct({
|
|
||||||
required DateTime dateFrom,
|
|
||||||
required DateTime dateTo,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<Either<AnalyticFailure, PaymentMethodAnalytic>> getPaymentMethod({
|
|
||||||
required DateTime dateFrom,
|
|
||||||
required DateTime dateTo,
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,5 +10,3 @@ part 'dto/profit_loss_analytic_dto.dart';
|
|||||||
part 'dto/category_analytic_dto.dart';
|
part 'dto/category_analytic_dto.dart';
|
||||||
part 'dto/inventory_analytic_dto.dart';
|
part 'dto/inventory_analytic_dto.dart';
|
||||||
part 'dto/dashboard_analytic_dto.dart';
|
part 'dto/dashboard_analytic_dto.dart';
|
||||||
part 'dto/product_analytic_dto.dart';
|
|
||||||
part 'dto/payment_method_analytic_dto.dart';
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -517,123 +517,3 @@ Map<String, dynamic> _$$DashboardRecentSaleDtoImplToJson(
|
|||||||
'discount': instance.discount,
|
'discount': instance.discount,
|
||||||
'net_sales': instance.netSales,
|
'net_sales': instance.netSales,
|
||||||
};
|
};
|
||||||
|
|
||||||
_$ProductAnalyticDtoImpl _$$ProductAnalyticDtoImplFromJson(
|
|
||||||
Map<String, dynamic> json,
|
|
||||||
) => _$ProductAnalyticDtoImpl(
|
|
||||||
organizationId: json['organization_id'] as String,
|
|
||||||
outletId: json['outlet_id'] as String,
|
|
||||||
dateFrom: json['date_from'] as String,
|
|
||||||
dateTo: json['date_to'] as String,
|
|
||||||
data: (json['data'] as List<dynamic>)
|
|
||||||
.map((e) => ProductAnalyticDataDto.fromJson(e as Map<String, dynamic>))
|
|
||||||
.toList(),
|
|
||||||
);
|
|
||||||
|
|
||||||
Map<String, dynamic> _$$ProductAnalyticDtoImplToJson(
|
|
||||||
_$ProductAnalyticDtoImpl instance,
|
|
||||||
) => <String, dynamic>{
|
|
||||||
'organization_id': instance.organizationId,
|
|
||||||
'outlet_id': instance.outletId,
|
|
||||||
'date_from': instance.dateFrom,
|
|
||||||
'date_to': instance.dateTo,
|
|
||||||
'data': instance.data,
|
|
||||||
};
|
|
||||||
|
|
||||||
_$ProductAnalyticDataDtoImpl _$$ProductAnalyticDataDtoImplFromJson(
|
|
||||||
Map<String, dynamic> json,
|
|
||||||
) => _$ProductAnalyticDataDtoImpl(
|
|
||||||
productId: json['product_id'] as String,
|
|
||||||
productName: json['product_name'] as String,
|
|
||||||
categoryId: json['category_id'] as String,
|
|
||||||
categoryName: json['category_name'] as String,
|
|
||||||
quantitySold: (json['quantity_sold'] as num).toInt(),
|
|
||||||
revenue: (json['revenue'] as num).toDouble(),
|
|
||||||
averagePrice: (json['average_price'] as num).toDouble(),
|
|
||||||
orderCount: (json['order_count'] as num).toInt(),
|
|
||||||
);
|
|
||||||
|
|
||||||
Map<String, dynamic> _$$ProductAnalyticDataDtoImplToJson(
|
|
||||||
_$ProductAnalyticDataDtoImpl instance,
|
|
||||||
) => <String, dynamic>{
|
|
||||||
'product_id': instance.productId,
|
|
||||||
'product_name': instance.productName,
|
|
||||||
'category_id': instance.categoryId,
|
|
||||||
'category_name': instance.categoryName,
|
|
||||||
'quantity_sold': instance.quantitySold,
|
|
||||||
'revenue': instance.revenue,
|
|
||||||
'average_price': instance.averagePrice,
|
|
||||||
'order_count': instance.orderCount,
|
|
||||||
};
|
|
||||||
|
|
||||||
_$PaymentMethodAnalyticDtoImpl _$$PaymentMethodAnalyticDtoImplFromJson(
|
|
||||||
Map<String, dynamic> json,
|
|
||||||
) => _$PaymentMethodAnalyticDtoImpl(
|
|
||||||
organizationId: json['organization_id'] as String?,
|
|
||||||
outletId: json['outlet_id'] as String?,
|
|
||||||
dateFrom: json['date_from'] as String?,
|
|
||||||
dateTo: json['date_to'] as String?,
|
|
||||||
groupBy: json['group_by'] as String?,
|
|
||||||
summary: json['summary'] == null
|
|
||||||
? null
|
|
||||||
: PaymentMethodSummaryDto.fromJson(
|
|
||||||
json['summary'] as Map<String, dynamic>,
|
|
||||||
),
|
|
||||||
data: (json['data'] as List<dynamic>?)
|
|
||||||
?.map((e) => PaymentMethodItemDto.fromJson(e as Map<String, dynamic>))
|
|
||||||
.toList(),
|
|
||||||
);
|
|
||||||
|
|
||||||
Map<String, dynamic> _$$PaymentMethodAnalyticDtoImplToJson(
|
|
||||||
_$PaymentMethodAnalyticDtoImpl instance,
|
|
||||||
) => <String, dynamic>{
|
|
||||||
'organization_id': instance.organizationId,
|
|
||||||
'outlet_id': instance.outletId,
|
|
||||||
'date_from': instance.dateFrom,
|
|
||||||
'date_to': instance.dateTo,
|
|
||||||
'group_by': instance.groupBy,
|
|
||||||
'summary': instance.summary,
|
|
||||||
'data': instance.data,
|
|
||||||
};
|
|
||||||
|
|
||||||
_$PaymentMethodItemDtoImpl _$$PaymentMethodItemDtoImplFromJson(
|
|
||||||
Map<String, dynamic> json,
|
|
||||||
) => _$PaymentMethodItemDtoImpl(
|
|
||||||
paymentMethodId: json['payment_method_id'] as String?,
|
|
||||||
paymentMethodName: json['payment_method_name'] as String?,
|
|
||||||
paymentMethodType: json['payment_method_type'] as String?,
|
|
||||||
totalAmount: json['total_amount'] as num?,
|
|
||||||
orderCount: (json['order_count'] as num?)?.toInt(),
|
|
||||||
paymentCount: (json['payment_count'] as num?)?.toInt(),
|
|
||||||
percentage: (json['percentage'] as num?)?.toDouble(),
|
|
||||||
);
|
|
||||||
|
|
||||||
Map<String, dynamic> _$$PaymentMethodItemDtoImplToJson(
|
|
||||||
_$PaymentMethodItemDtoImpl instance,
|
|
||||||
) => <String, dynamic>{
|
|
||||||
'payment_method_id': instance.paymentMethodId,
|
|
||||||
'payment_method_name': instance.paymentMethodName,
|
|
||||||
'payment_method_type': instance.paymentMethodType,
|
|
||||||
'total_amount': instance.totalAmount,
|
|
||||||
'order_count': instance.orderCount,
|
|
||||||
'payment_count': instance.paymentCount,
|
|
||||||
'percentage': instance.percentage,
|
|
||||||
};
|
|
||||||
|
|
||||||
_$PaymentMethodSummaryDtoImpl _$$PaymentMethodSummaryDtoImplFromJson(
|
|
||||||
Map<String, dynamic> json,
|
|
||||||
) => _$PaymentMethodSummaryDtoImpl(
|
|
||||||
totalAmount: json['total_amount'] as num?,
|
|
||||||
totalOrders: (json['total_orders'] as num?)?.toInt(),
|
|
||||||
totalPayments: (json['total_payments'] as num?)?.toInt(),
|
|
||||||
averageOrderValue: (json['average_order_value'] as num?)?.toDouble(),
|
|
||||||
);
|
|
||||||
|
|
||||||
Map<String, dynamic> _$$PaymentMethodSummaryDtoImplToJson(
|
|
||||||
_$PaymentMethodSummaryDtoImpl instance,
|
|
||||||
) => <String, dynamic>{
|
|
||||||
'total_amount': instance.totalAmount,
|
|
||||||
'total_orders': instance.totalOrders,
|
|
||||||
'total_payments': instance.totalPayments,
|
|
||||||
'average_order_value': instance.averageOrderValue,
|
|
||||||
};
|
|
||||||
|
|||||||
@ -154,60 +154,4 @@ class AnalyticRemoteDataProvider {
|
|||||||
return DC.error(AnalyticFailure.serverError(e));
|
return DC.error(AnalyticFailure.serverError(e));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<DC<AnalyticFailure, ProductAnalyticDto>> fetchProduct({
|
|
||||||
required String outletId,
|
|
||||||
required DateTime dateFrom,
|
|
||||||
required DateTime dateTo,
|
|
||||||
}) async {
|
|
||||||
try {
|
|
||||||
final response = await _apiClient.get(
|
|
||||||
ApiPath.productAnalytic,
|
|
||||||
params: {
|
|
||||||
'date_from': dateFrom.toServerDate,
|
|
||||||
'date_to': dateTo.toServerDate,
|
|
||||||
},
|
|
||||||
headers: getAuthorizationHeader(),
|
|
||||||
);
|
|
||||||
|
|
||||||
if (response.data['data'] == null) {
|
|
||||||
return DC.error(AnalyticFailure.empty());
|
|
||||||
}
|
|
||||||
|
|
||||||
final dto = ProductAnalyticDto.fromJson(response.data['data']);
|
|
||||||
|
|
||||||
return DC.data(dto);
|
|
||||||
} on ApiFailure catch (e, s) {
|
|
||||||
log('fetchProductError', name: _logName, error: e, stackTrace: s);
|
|
||||||
return DC.error(AnalyticFailure.serverError(e));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Future<DC<AnalyticFailure, PaymentMethodAnalyticDto>> fetchPaymentMethod({
|
|
||||||
required String outletId,
|
|
||||||
required DateTime dateFrom,
|
|
||||||
required DateTime dateTo,
|
|
||||||
}) async {
|
|
||||||
try {
|
|
||||||
final response = await _apiClient.get(
|
|
||||||
ApiPath.paymentMethodAnalytic,
|
|
||||||
params: {
|
|
||||||
'date_from': dateFrom.toServerDate,
|
|
||||||
'date_to': dateTo.toServerDate,
|
|
||||||
},
|
|
||||||
headers: getAuthorizationHeader(),
|
|
||||||
);
|
|
||||||
|
|
||||||
if (response.data['data'] == null) {
|
|
||||||
return DC.error(AnalyticFailure.empty());
|
|
||||||
}
|
|
||||||
|
|
||||||
final dto = PaymentMethodAnalyticDto.fromJson(response.data['data']);
|
|
||||||
|
|
||||||
return DC.data(dto);
|
|
||||||
} on ApiFailure catch (e, s) {
|
|
||||||
log('fetchPaymentMethodError', name: _logName, error: e, stackTrace: s);
|
|
||||||
return DC.error(AnalyticFailure.serverError(e));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,85 +0,0 @@
|
|||||||
part of '../analytic_dtos.dart';
|
|
||||||
|
|
||||||
@freezed
|
|
||||||
class PaymentMethodAnalyticDto with _$PaymentMethodAnalyticDto {
|
|
||||||
const PaymentMethodAnalyticDto._();
|
|
||||||
|
|
||||||
const factory PaymentMethodAnalyticDto({
|
|
||||||
@JsonKey(name: 'organization_id') String? organizationId,
|
|
||||||
@JsonKey(name: 'outlet_id') String? outletId,
|
|
||||||
@JsonKey(name: 'date_from') String? dateFrom,
|
|
||||||
@JsonKey(name: 'date_to') String? dateTo,
|
|
||||||
@JsonKey(name: 'group_by') String? groupBy,
|
|
||||||
@JsonKey(name: 'summary') PaymentMethodSummaryDto? summary,
|
|
||||||
@JsonKey(name: 'data') List<PaymentMethodItemDto>? data,
|
|
||||||
}) = _PaymentMethodAnalyticDto;
|
|
||||||
|
|
||||||
factory PaymentMethodAnalyticDto.fromJson(Map<String, dynamic> json) =>
|
|
||||||
_$PaymentMethodAnalyticDtoFromJson(json);
|
|
||||||
|
|
||||||
PaymentMethodAnalytic toDomain() {
|
|
||||||
return PaymentMethodAnalytic(
|
|
||||||
organizationId: organizationId ?? '',
|
|
||||||
outletId: outletId ?? '',
|
|
||||||
dateFrom: dateFrom ?? '',
|
|
||||||
dateTo: dateTo ?? '',
|
|
||||||
groupBy: groupBy ?? '',
|
|
||||||
summary: summary?.toDomain() ?? PaymentMethodSummary.empty(),
|
|
||||||
data: data?.map((e) => e.toDomain()).toList() ?? [],
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@freezed
|
|
||||||
class PaymentMethodItemDto with _$PaymentMethodItemDto {
|
|
||||||
const PaymentMethodItemDto._();
|
|
||||||
|
|
||||||
const factory PaymentMethodItemDto({
|
|
||||||
@JsonKey(name: 'payment_method_id') String? paymentMethodId,
|
|
||||||
@JsonKey(name: 'payment_method_name') String? paymentMethodName,
|
|
||||||
@JsonKey(name: 'payment_method_type') String? paymentMethodType,
|
|
||||||
@JsonKey(name: 'total_amount') num? totalAmount,
|
|
||||||
@JsonKey(name: 'order_count') int? orderCount,
|
|
||||||
@JsonKey(name: 'payment_count') int? paymentCount,
|
|
||||||
@JsonKey(name: 'percentage') double? percentage,
|
|
||||||
}) = _PaymentMethodItemDto;
|
|
||||||
|
|
||||||
factory PaymentMethodItemDto.fromJson(Map<String, dynamic> json) =>
|
|
||||||
_$PaymentMethodItemDtoFromJson(json);
|
|
||||||
|
|
||||||
PaymentMethodItem toDomain() {
|
|
||||||
return PaymentMethodItem(
|
|
||||||
paymentMethodId: paymentMethodId ?? '',
|
|
||||||
paymentMethodName: paymentMethodName ?? '',
|
|
||||||
paymentMethodType: paymentMethodType ?? '',
|
|
||||||
totalAmount: totalAmount ?? 0,
|
|
||||||
orderCount: orderCount ?? 0,
|
|
||||||
paymentCount: paymentCount ?? 0,
|
|
||||||
percentage: percentage ?? 0.0,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@freezed
|
|
||||||
class PaymentMethodSummaryDto with _$PaymentMethodSummaryDto {
|
|
||||||
const PaymentMethodSummaryDto._();
|
|
||||||
|
|
||||||
const factory PaymentMethodSummaryDto({
|
|
||||||
@JsonKey(name: 'total_amount') num? totalAmount,
|
|
||||||
@JsonKey(name: 'total_orders') int? totalOrders,
|
|
||||||
@JsonKey(name: 'total_payments') int? totalPayments,
|
|
||||||
@JsonKey(name: 'average_order_value') double? averageOrderValue,
|
|
||||||
}) = _PaymentMethodSummaryDto;
|
|
||||||
|
|
||||||
factory PaymentMethodSummaryDto.fromJson(Map<String, dynamic> json) =>
|
|
||||||
_$PaymentMethodSummaryDtoFromJson(json);
|
|
||||||
|
|
||||||
PaymentMethodSummary toDomain() {
|
|
||||||
return PaymentMethodSummary(
|
|
||||||
totalAmount: totalAmount ?? 0,
|
|
||||||
totalOrders: totalOrders ?? 0,
|
|
||||||
totalPayments: totalPayments ?? 0,
|
|
||||||
averageOrderValue: averageOrderValue ?? 0.0,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,55 +0,0 @@
|
|||||||
part of '../analytic_dtos.dart';
|
|
||||||
|
|
||||||
@freezed
|
|
||||||
class ProductAnalyticDto with _$ProductAnalyticDto {
|
|
||||||
const ProductAnalyticDto._();
|
|
||||||
|
|
||||||
const factory ProductAnalyticDto({
|
|
||||||
@JsonKey(name: 'organization_id') required String organizationId,
|
|
||||||
@JsonKey(name: 'outlet_id') required String outletId,
|
|
||||||
@JsonKey(name: 'date_from') required String dateFrom,
|
|
||||||
@JsonKey(name: 'date_to') required String dateTo,
|
|
||||||
required List<ProductAnalyticDataDto> data,
|
|
||||||
}) = _ProductAnalyticDto;
|
|
||||||
|
|
||||||
factory ProductAnalyticDto.fromJson(Map<String, dynamic> json) =>
|
|
||||||
_$ProductAnalyticDtoFromJson(json);
|
|
||||||
|
|
||||||
ProductAnalytic toDomain() => ProductAnalytic(
|
|
||||||
organizationId: organizationId,
|
|
||||||
outletId: outletId,
|
|
||||||
dateFrom: dateFrom,
|
|
||||||
dateTo: dateTo,
|
|
||||||
data: data.map((e) => e.toDomain()).toList(),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@freezed
|
|
||||||
class ProductAnalyticDataDto with _$ProductAnalyticDataDto {
|
|
||||||
const ProductAnalyticDataDto._();
|
|
||||||
|
|
||||||
const factory ProductAnalyticDataDto({
|
|
||||||
@JsonKey(name: 'product_id') required String productId,
|
|
||||||
@JsonKey(name: 'product_name') required String productName,
|
|
||||||
@JsonKey(name: 'category_id') required String categoryId,
|
|
||||||
@JsonKey(name: 'category_name') required String categoryName,
|
|
||||||
@JsonKey(name: 'quantity_sold') required int quantitySold,
|
|
||||||
required double revenue,
|
|
||||||
@JsonKey(name: 'average_price') required double averagePrice,
|
|
||||||
@JsonKey(name: 'order_count') required int orderCount,
|
|
||||||
}) = _ProductAnalyticDataDto;
|
|
||||||
|
|
||||||
factory ProductAnalyticDataDto.fromJson(Map<String, dynamic> json) =>
|
|
||||||
_$ProductAnalyticDataDtoFromJson(json);
|
|
||||||
|
|
||||||
ProductAnalyticData toDomain() => ProductAnalyticData(
|
|
||||||
productId: productId,
|
|
||||||
productName: productName,
|
|
||||||
categoryId: categoryId,
|
|
||||||
categoryName: categoryName,
|
|
||||||
quantitySold: quantitySold,
|
|
||||||
revenue: revenue,
|
|
||||||
averagePrice: averagePrice,
|
|
||||||
orderCount: orderCount,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
@ -142,58 +142,4 @@ class AnalyticRepository implements IAnalyticRepository {
|
|||||||
return left(const AnalyticFailure.unexpectedError());
|
return left(const AnalyticFailure.unexpectedError());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
|
||||||
Future<Either<AnalyticFailure, ProductAnalytic>> getProduct({
|
|
||||||
required DateTime dateFrom,
|
|
||||||
required DateTime dateTo,
|
|
||||||
}) async {
|
|
||||||
try {
|
|
||||||
User currentUser = await _authLocalDataProvider.currentUser();
|
|
||||||
|
|
||||||
final result = await _dataProvider.fetchProduct(
|
|
||||||
outletId: currentUser.outletId,
|
|
||||||
dateFrom: dateFrom,
|
|
||||||
dateTo: dateTo,
|
|
||||||
);
|
|
||||||
|
|
||||||
if (result.hasError) {
|
|
||||||
return left(result.error!);
|
|
||||||
}
|
|
||||||
|
|
||||||
final auth = result.data!.toDomain();
|
|
||||||
|
|
||||||
return right(auth);
|
|
||||||
} catch (e, s) {
|
|
||||||
log('getProductError', name: _logName, error: e, stackTrace: s);
|
|
||||||
return left(const AnalyticFailure.unexpectedError());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<Either<AnalyticFailure, PaymentMethodAnalytic>> getPaymentMethod({
|
|
||||||
required DateTime dateFrom,
|
|
||||||
required DateTime dateTo,
|
|
||||||
}) async {
|
|
||||||
try {
|
|
||||||
User currentUser = await _authLocalDataProvider.currentUser();
|
|
||||||
|
|
||||||
final result = await _dataProvider.fetchPaymentMethod(
|
|
||||||
outletId: currentUser.outletId,
|
|
||||||
dateFrom: dateFrom,
|
|
||||||
dateTo: dateTo,
|
|
||||||
);
|
|
||||||
|
|
||||||
if (result.hasError) {
|
|
||||||
return left(result.error!);
|
|
||||||
}
|
|
||||||
|
|
||||||
final auth = result.data!.toDomain();
|
|
||||||
|
|
||||||
return right(auth);
|
|
||||||
} catch (e, s) {
|
|
||||||
log('getPaymentMethodError', name: _logName, error: e, stackTrace: s);
|
|
||||||
return left(const AnalyticFailure.unexpectedError());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,10 +15,6 @@ import 'package:apskel_owner_flutter/application/analytic/dashboard_analytic_loa
|
|||||||
as _i516;
|
as _i516;
|
||||||
import 'package:apskel_owner_flutter/application/analytic/inventory_analytic_loader/inventory_analytic_loader_bloc.dart'
|
import 'package:apskel_owner_flutter/application/analytic/inventory_analytic_loader/inventory_analytic_loader_bloc.dart'
|
||||||
as _i785;
|
as _i785;
|
||||||
import 'package:apskel_owner_flutter/application/analytic/payment_method_analytic_loader/payment_method_analytic_loader_bloc.dart'
|
|
||||||
as _i552;
|
|
||||||
import 'package:apskel_owner_flutter/application/analytic/product_analytic_loader/product_analytic_loader_bloc.dart'
|
|
||||||
as _i221;
|
|
||||||
import 'package:apskel_owner_flutter/application/analytic/profit_loss_loader/profit_loss_loader_bloc.dart'
|
import 'package:apskel_owner_flutter/application/analytic/profit_loss_loader/profit_loss_loader_bloc.dart'
|
||||||
as _i11;
|
as _i11;
|
||||||
import 'package:apskel_owner_flutter/application/analytic/sales_loader/sales_loader_bloc.dart'
|
import 'package:apskel_owner_flutter/application/analytic/sales_loader/sales_loader_bloc.dart'
|
||||||
@ -183,14 +179,6 @@ extension GetItInjectableX on _i174.GetIt {
|
|||||||
gh.factory<_i516.DashboardAnalyticLoaderBloc>(
|
gh.factory<_i516.DashboardAnalyticLoaderBloc>(
|
||||||
() => _i516.DashboardAnalyticLoaderBloc(gh<_i477.IAnalyticRepository>()),
|
() => _i516.DashboardAnalyticLoaderBloc(gh<_i477.IAnalyticRepository>()),
|
||||||
);
|
);
|
||||||
gh.factory<_i221.ProductAnalyticLoaderBloc>(
|
|
||||||
() => _i221.ProductAnalyticLoaderBloc(gh<_i477.IAnalyticRepository>()),
|
|
||||||
);
|
|
||||||
gh.factory<_i552.PaymentMethodAnalyticLoaderBloc>(
|
|
||||||
() => _i552.PaymentMethodAnalyticLoaderBloc(
|
|
||||||
gh<_i477.IAnalyticRepository>(),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
gh.factory<_i775.LoginFormBloc>(
|
gh.factory<_i775.LoginFormBloc>(
|
||||||
() => _i775.LoginFormBloc(gh<_i49.IAuthRepository>()),
|
() => _i775.LoginFormBloc(gh<_i49.IAuthRepository>()),
|
||||||
);
|
);
|
||||||
|
|||||||
@ -409,7 +409,7 @@ class _ProfileHeaderState extends State<ProfileHeader>
|
|||||||
size: 16,
|
size: 16,
|
||||||
color: AppColor.textWhite.withOpacity(0.9),
|
color: AppColor.textWhite.withOpacity(0.9),
|
||||||
),
|
),
|
||||||
const SpaceWidth(6),
|
const SpaceHeight(6),
|
||||||
Text(
|
Text(
|
||||||
widget.user.role.toTitleCase,
|
widget.user.role.toTitleCase,
|
||||||
style: AppStyle.md.copyWith(
|
style: AppStyle.md.copyWith(
|
||||||
|
|||||||
@ -311,7 +311,7 @@ class ReportRoute extends _i18.PageRouteInfo<void> {
|
|||||||
static _i18.PageInfo page = _i18.PageInfo(
|
static _i18.PageInfo page = _i18.PageInfo(
|
||||||
name,
|
name,
|
||||||
builder: (data) {
|
builder: (data) {
|
||||||
return _i18.WrappedRoute(child: const _i13.ReportPage());
|
return const _i13.ReportPage();
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user