From e11ef1990c06589ef8bf65a99887d48b0e2748a9 Mon Sep 17 00:00:00 2001 From: "mr.mojtaba" Date: Mon, 12 May 2025 16:55:55 +0330 Subject: [PATCH] chore : change app archticle --- {packages => features}/auth/lib/auth.dart | 0 features/auth/lib/data/di/auth_di.dart | 8 + .../local}/user_local/user_local_model.dart | 0 .../local}/user_local/user_local_model.g.dart | 0 .../login_request/login_request_model.dart | 8 +- .../login_request_model.freezed.dart | 40 +- .../login_request/login_request_model.g.dart | 8 +- .../response/auth/auth_response_model.dart | 20 + .../captcha/captcha_response_model.dart | 17 + .../data/repositories/auth_repository.dart | 21 + .../repositories/auth_repository_imp.dart | 81 +++ .../lib}/presentation/pages/auth/logic.dart | 0 .../lib}/presentation/pages/auth/view.dart | 0 .../presentation/pages/modules/logic.dart | 0 .../lib}/presentation/pages/modules/view.dart | 0 .../auth/lib}/presentation/routes/pages.dart | 7 +- .../auth/lib}/presentation/routes/paths.dart | 0 .../lib/presentation/action/logic.dart | 2 +- .../add_mobile_inspector/view.dart | 2 +- .../presentation/add_supervision/logic.dart | 3 +- .../presentation/add_supervision/view.dart | 2 +- .../lib/presentation/filter/logic.dart | 5 +- .../lib/presentation/filter/view.dart | 4 +- .../registration_of_violation/view.dart | 5 +- .../lib/presentation/root/logic.dart | 10 +- .../lib/presentation/root/view.dart | 4 +- .../lib/presentation/routes/app_pages.dart | 36 +- features/inspection/pubspec.lock | 649 ------------------ features/inspection/pubspec.yaml | 13 - lib/presentation/pages/splash/logic.dart | 2 +- lib/presentation/routes/app_pages.dart | 2 +- packages/auth/.gitignore | 7 - packages/auth/CHANGELOG.md | 3 - packages/auth/README.md | 39 -- packages/auth/analysis_options.yaml | 30 - packages/auth/example/auth_example.dart | 5 - packages/auth/lib/hive_registrar.g.dart | 18 - .../dto/auth_response/auth_response_dto.dart | 23 - .../auth_response_dto.freezed.dart | 160 ----- .../auth_response/auth_response_dto.g.dart | 21 - .../domain/entity/auth_response_entity.dart | 12 - .../domain/repositories/auth_repository.dart | 7 - packages/auth/pubspec.yaml | 33 - packages/auth/test/auth_test.dart | 8 - packages/core/lib/core.dart | 46 +- .../lib/infrastructure/remote/dio_remote.dart | 104 ++- .../infrastructure/remote/dio_response.dart | 7 +- .../remote/interfaces/i_http_client.dart | 73 +- .../remote/interfaces/i_http_response.dart | 2 +- .../widget/buttons/outline_elevated_icon.dart | 3 - .../draggable_bottom_sheet.dart | 2 +- packages/core/lib/utils/README.md | 6 + .../utils.dart => utils/logger_utils.dart} | 0 packages/core/lib/utils/safe_call_utils.dart | 71 ++ pubspec.lock | 427 +++++++++++- pubspec.yaml | 64 +- 56 files changed, 873 insertions(+), 1247 deletions(-) rename {packages => features}/auth/lib/auth.dart (100%) create mode 100644 features/auth/lib/data/di/auth_di.dart rename {packages/auth/lib/src/data/models => features/auth/lib/data/models/local}/user_local/user_local_model.dart (100%) rename {packages/auth/lib/src/data/models => features/auth/lib/data/models/local}/user_local/user_local_model.g.dart (100%) rename {packages/auth/lib/src/data/models => features/auth/lib/data/models/request}/login_request/login_request_model.dart (78%) rename {packages/auth/lib/src/data/models => features/auth/lib/data/models/request}/login_request/login_request_model.freezed.dart (74%) rename {packages/auth/lib/src/data/models => features/auth/lib/data/models/request}/login_request/login_request_model.g.dart (77%) create mode 100644 features/auth/lib/data/models/response/auth/auth_response_model.dart create mode 100644 features/auth/lib/data/models/response/captcha/captcha_response_model.dart create mode 100644 features/auth/lib/data/repositories/auth_repository.dart create mode 100644 features/auth/lib/data/repositories/auth_repository_imp.dart rename {packages/auth/lib/src => features/auth/lib}/presentation/pages/auth/logic.dart (100%) rename {packages/auth/lib/src => features/auth/lib}/presentation/pages/auth/view.dart (100%) rename {packages/auth/lib/src => features/auth/lib}/presentation/pages/modules/logic.dart (100%) rename {packages/auth/lib/src => features/auth/lib}/presentation/pages/modules/view.dart (100%) rename {packages/auth/lib/src => features/auth/lib}/presentation/routes/pages.dart (79%) rename {packages/auth/lib/src => features/auth/lib}/presentation/routes/paths.dart (100%) delete mode 100644 features/inspection/pubspec.lock delete mode 100644 features/inspection/pubspec.yaml delete mode 100644 packages/auth/.gitignore delete mode 100644 packages/auth/CHANGELOG.md delete mode 100644 packages/auth/README.md delete mode 100644 packages/auth/analysis_options.yaml delete mode 100644 packages/auth/example/auth_example.dart delete mode 100644 packages/auth/lib/hive_registrar.g.dart delete mode 100644 packages/auth/lib/src/data/dto/auth_response/auth_response_dto.dart delete mode 100644 packages/auth/lib/src/data/dto/auth_response/auth_response_dto.freezed.dart delete mode 100644 packages/auth/lib/src/data/dto/auth_response/auth_response_dto.g.dart delete mode 100644 packages/auth/lib/src/domain/entity/auth_response_entity.dart delete mode 100644 packages/auth/lib/src/domain/repositories/auth_repository.dart delete mode 100644 packages/auth/pubspec.yaml delete mode 100644 packages/auth/test/auth_test.dart create mode 100644 packages/core/lib/utils/README.md rename packages/core/lib/{data/utils.dart => utils/logger_utils.dart} (100%) create mode 100644 packages/core/lib/utils/safe_call_utils.dart diff --git a/packages/auth/lib/auth.dart b/features/auth/lib/auth.dart similarity index 100% rename from packages/auth/lib/auth.dart rename to features/auth/lib/auth.dart diff --git a/features/auth/lib/data/di/auth_di.dart b/features/auth/lib/data/di/auth_di.dart new file mode 100644 index 0000000..7e9c760 --- /dev/null +++ b/features/auth/lib/data/di/auth_di.dart @@ -0,0 +1,8 @@ +import 'package:rasadyar_core/core.dart'; + + + +GetIt diAuth = GetIt.instance; + + + diff --git a/packages/auth/lib/src/data/models/user_local/user_local_model.dart b/features/auth/lib/data/models/local/user_local/user_local_model.dart similarity index 100% rename from packages/auth/lib/src/data/models/user_local/user_local_model.dart rename to features/auth/lib/data/models/local/user_local/user_local_model.dart diff --git a/packages/auth/lib/src/data/models/user_local/user_local_model.g.dart b/features/auth/lib/data/models/local/user_local/user_local_model.g.dart similarity index 100% rename from packages/auth/lib/src/data/models/user_local/user_local_model.g.dart rename to features/auth/lib/data/models/local/user_local/user_local_model.g.dart diff --git a/packages/auth/lib/src/data/models/login_request/login_request_model.dart b/features/auth/lib/data/models/request/login_request/login_request_model.dart similarity index 78% rename from packages/auth/lib/src/data/models/login_request/login_request_model.dart rename to features/auth/lib/data/models/request/login_request/login_request_model.dart index 0e4791c..3794525 100644 --- a/packages/auth/lib/src/data/models/login_request/login_request_model.dart +++ b/features/auth/lib/data/models/request/login_request/login_request_model.dart @@ -6,10 +6,10 @@ part 'login_request_model.g.dart'; @freezed abstract class LoginRequestModel with _$LoginRequestModel { const factory LoginRequestModel({ - required String username, - required String password, - required String captchaCode, - required String captchaKey, + String? username, + String? password, + String? captchaCode, + String? captchaKey, }) = _LoginRequestModel; factory LoginRequestModel.fromJson(Map json) => diff --git a/packages/auth/lib/src/data/models/login_request/login_request_model.freezed.dart b/features/auth/lib/data/models/request/login_request/login_request_model.freezed.dart similarity index 74% rename from packages/auth/lib/src/data/models/login_request/login_request_model.freezed.dart rename to features/auth/lib/data/models/request/login_request/login_request_model.freezed.dart index bf3b549..c9f60aa 100644 --- a/packages/auth/lib/src/data/models/login_request/login_request_model.freezed.dart +++ b/features/auth/lib/data/models/request/login_request/login_request_model.freezed.dart @@ -16,7 +16,7 @@ T _$identity(T value) => value; /// @nodoc mixin _$LoginRequestModel { - String get username; String get password; String get captchaCode; String get captchaKey; + String? get username; String? get password; String? get captchaCode; String? get captchaKey; /// Create a copy of LoginRequestModel /// with the given fields replaced by the non-null parameter values. @JsonKey(includeFromJson: false, includeToJson: false) @@ -49,7 +49,7 @@ abstract mixin class $LoginRequestModelCopyWith<$Res> { factory $LoginRequestModelCopyWith(LoginRequestModel value, $Res Function(LoginRequestModel) _then) = _$LoginRequestModelCopyWithImpl; @useResult $Res call({ - String username, String password, String captchaCode, String captchaKey + String? username, String? password, String? captchaCode, String? captchaKey }); @@ -66,13 +66,13 @@ class _$LoginRequestModelCopyWithImpl<$Res> /// Create a copy of LoginRequestModel /// with the given fields replaced by the non-null parameter values. -@pragma('vm:prefer-inline') @override $Res call({Object? username = null,Object? password = null,Object? captchaCode = null,Object? captchaKey = null,}) { +@pragma('vm:prefer-inline') @override $Res call({Object? username = freezed,Object? password = freezed,Object? captchaCode = freezed,Object? captchaKey = freezed,}) { return _then(_self.copyWith( -username: null == username ? _self.username : username // ignore: cast_nullable_to_non_nullable -as String,password: null == password ? _self.password : password // ignore: cast_nullable_to_non_nullable -as String,captchaCode: null == captchaCode ? _self.captchaCode : captchaCode // ignore: cast_nullable_to_non_nullable -as String,captchaKey: null == captchaKey ? _self.captchaKey : captchaKey // ignore: cast_nullable_to_non_nullable -as String, +username: freezed == username ? _self.username : username // ignore: cast_nullable_to_non_nullable +as String?,password: freezed == password ? _self.password : password // ignore: cast_nullable_to_non_nullable +as String?,captchaCode: freezed == captchaCode ? _self.captchaCode : captchaCode // ignore: cast_nullable_to_non_nullable +as String?,captchaKey: freezed == captchaKey ? _self.captchaKey : captchaKey // ignore: cast_nullable_to_non_nullable +as String?, )); } @@ -83,13 +83,13 @@ as String, @JsonSerializable() class _LoginRequestModel extends LoginRequestModel { - const _LoginRequestModel({required this.username, required this.password, required this.captchaCode, required this.captchaKey}): super._(); + const _LoginRequestModel({this.username, this.password, this.captchaCode, this.captchaKey}): super._(); factory _LoginRequestModel.fromJson(Map json) => _$LoginRequestModelFromJson(json); -@override final String username; -@override final String password; -@override final String captchaCode; -@override final String captchaKey; +@override final String? username; +@override final String? password; +@override final String? captchaCode; +@override final String? captchaKey; /// Create a copy of LoginRequestModel /// with the given fields replaced by the non-null parameter values. @@ -124,7 +124,7 @@ abstract mixin class _$LoginRequestModelCopyWith<$Res> implements $LoginRequestM factory _$LoginRequestModelCopyWith(_LoginRequestModel value, $Res Function(_LoginRequestModel) _then) = __$LoginRequestModelCopyWithImpl; @override @useResult $Res call({ - String username, String password, String captchaCode, String captchaKey + String? username, String? password, String? captchaCode, String? captchaKey }); @@ -141,13 +141,13 @@ class __$LoginRequestModelCopyWithImpl<$Res> /// Create a copy of LoginRequestModel /// with the given fields replaced by the non-null parameter values. -@override @pragma('vm:prefer-inline') $Res call({Object? username = null,Object? password = null,Object? captchaCode = null,Object? captchaKey = null,}) { +@override @pragma('vm:prefer-inline') $Res call({Object? username = freezed,Object? password = freezed,Object? captchaCode = freezed,Object? captchaKey = freezed,}) { return _then(_LoginRequestModel( -username: null == username ? _self.username : username // ignore: cast_nullable_to_non_nullable -as String,password: null == password ? _self.password : password // ignore: cast_nullable_to_non_nullable -as String,captchaCode: null == captchaCode ? _self.captchaCode : captchaCode // ignore: cast_nullable_to_non_nullable -as String,captchaKey: null == captchaKey ? _self.captchaKey : captchaKey // ignore: cast_nullable_to_non_nullable -as String, +username: freezed == username ? _self.username : username // ignore: cast_nullable_to_non_nullable +as String?,password: freezed == password ? _self.password : password // ignore: cast_nullable_to_non_nullable +as String?,captchaCode: freezed == captchaCode ? _self.captchaCode : captchaCode // ignore: cast_nullable_to_non_nullable +as String?,captchaKey: freezed == captchaKey ? _self.captchaKey : captchaKey // ignore: cast_nullable_to_non_nullable +as String?, )); } diff --git a/packages/auth/lib/src/data/models/login_request/login_request_model.g.dart b/features/auth/lib/data/models/request/login_request/login_request_model.g.dart similarity index 77% rename from packages/auth/lib/src/data/models/login_request/login_request_model.g.dart rename to features/auth/lib/data/models/request/login_request/login_request_model.g.dart index e92c1b4..f10c8a6 100644 --- a/packages/auth/lib/src/data/models/login_request/login_request_model.g.dart +++ b/features/auth/lib/data/models/request/login_request/login_request_model.g.dart @@ -8,10 +8,10 @@ part of 'login_request_model.dart'; _LoginRequestModel _$LoginRequestModelFromJson(Map json) => _LoginRequestModel( - username: json['username'] as String, - password: json['password'] as String, - captchaCode: json['captchaCode'] as String, - captchaKey: json['captchaKey'] as String, + username: json['username'] as String?, + password: json['password'] as String?, + captchaCode: json['captchaCode'] as String?, + captchaKey: json['captchaKey'] as String?, ); Map _$LoginRequestModelToJson(_LoginRequestModel instance) => diff --git a/features/auth/lib/data/models/response/auth/auth_response_model.dart b/features/auth/lib/data/models/response/auth/auth_response_model.dart new file mode 100644 index 0000000..c13cb0e --- /dev/null +++ b/features/auth/lib/data/models/response/auth/auth_response_model.dart @@ -0,0 +1,20 @@ + + +import 'package:freezed_annotation/freezed_annotation.dart'; + +part 'auth_response_model.freezed.dart'; +part 'auth_response_model.g.dart'; + +@freezed +abstract class AuthResponseModel with _$AuthResponseModel { + const factory AuthResponseModel({ + String? refresh, + String? access, + @JsonKey(name: 'otp_status') bool? otpStatus, + }) = _AuthResponseModel; + + factory AuthResponseModel.fromJson(Map json) => + _$AuthResponseModelFromJson(json); + +} + diff --git a/features/auth/lib/data/models/response/captcha/captcha_response_model.dart b/features/auth/lib/data/models/response/captcha/captcha_response_model.dart new file mode 100644 index 0000000..2b2f986 --- /dev/null +++ b/features/auth/lib/data/models/response/captcha/captcha_response_model.dart @@ -0,0 +1,17 @@ +import 'package:freezed_annotation/freezed_annotation.dart'; + +part 'captcha_response_model.freezed.dart'; +part 'captcha_response_model.g.dart'; + +@freezed +abstract class CaptchaResponseModel with _$CaptchaResponseModel { + const factory CaptchaResponseModel({ + String? captchaKey, + String? captchaImage, + String? imageType, + String? imageDecode, + }) = _CaptchaResponseModel; + + factory CaptchaResponseModel.fromJson(Map json) => + _$CaptchaResponseModelFromJson(json); +} diff --git a/features/auth/lib/data/repositories/auth_repository.dart b/features/auth/lib/data/repositories/auth_repository.dart new file mode 100644 index 0000000..1fecfa5 --- /dev/null +++ b/features/auth/lib/data/repositories/auth_repository.dart @@ -0,0 +1,21 @@ + + +import '../models/response/auth/auth_response_model.dart'; +import '../models/response/captcha/captcha_response_model.dart'; + +abstract class AuthRepository { + Future login({ + required Map authRequest, + }); + + Future captcha(); + + Future logout(); + + + Future loginWithRefreshToken({ + required Map authRequest, + }); + + +} diff --git a/features/auth/lib/data/repositories/auth_repository_imp.dart b/features/auth/lib/data/repositories/auth_repository_imp.dart new file mode 100644 index 0000000..6486f4d --- /dev/null +++ b/features/auth/lib/data/repositories/auth_repository_imp.dart @@ -0,0 +1,81 @@ +import 'package:rasadyar_core/core.dart'; + +import '../models/response/auth/auth_response_model.dart'; +import '../models/response/captcha/captcha_response_model.dart'; +import 'auth_repository.dart'; + +class AuthRepositoryImpl implements AuthRepository { + final DioRemote _httpClient; + final String _BASE_URL = 'auth/api/v1/'; + + AuthRepositoryImpl(this._httpClient); + + @override + Future login({ + required Map authRequest, + }) async { + final response = await safeCall>( + call: + () async => await _httpClient.post( + '$_BASE_URL/login/', + data: authRequest, + headers: {'Content-Type': 'application/json'}, + ), + onSuccess: (response) { + iLog(response); + }, + onError: (error, trace) { + throw Exception('Error during sign in: $error'); + }, + ); + + return response?.data; + } + + @override + Future captcha() async { + final response = await safeCall>( + call: + () async => await _httpClient.post( + '$_BASE_URL/login/', + headers: {'Content-Type': 'application/json'}, + ), + onSuccess: (response) { + iLog(response); + }, + onError: (error, trace) { + throw Exception('Error during sign in: $error'); + }, + ); + + return response?.data; + } + + @override + Future loginWithRefreshToken({ + required Map authRequest, + }) async { + final response = await safeCall>( + call: + () async => await _httpClient.post( + '$_BASE_URL/login/', + data: authRequest, + headers: {'Content-Type': 'application/json'}, + ), + onSuccess: (response) { + iLog(response); + }, + onError: (error, trace) { + throw Exception('Error during sign in: $error'); + }, + ); + + return response?.data; + } + + @override + Future logout() { + // TODO: implement logout + throw UnimplementedError(); + } +} diff --git a/packages/auth/lib/src/presentation/pages/auth/logic.dart b/features/auth/lib/presentation/pages/auth/logic.dart similarity index 100% rename from packages/auth/lib/src/presentation/pages/auth/logic.dart rename to features/auth/lib/presentation/pages/auth/logic.dart diff --git a/packages/auth/lib/src/presentation/pages/auth/view.dart b/features/auth/lib/presentation/pages/auth/view.dart similarity index 100% rename from packages/auth/lib/src/presentation/pages/auth/view.dart rename to features/auth/lib/presentation/pages/auth/view.dart diff --git a/packages/auth/lib/src/presentation/pages/modules/logic.dart b/features/auth/lib/presentation/pages/modules/logic.dart similarity index 100% rename from packages/auth/lib/src/presentation/pages/modules/logic.dart rename to features/auth/lib/presentation/pages/modules/logic.dart diff --git a/packages/auth/lib/src/presentation/pages/modules/view.dart b/features/auth/lib/presentation/pages/modules/view.dart similarity index 100% rename from packages/auth/lib/src/presentation/pages/modules/view.dart rename to features/auth/lib/presentation/pages/modules/view.dart diff --git a/packages/auth/lib/src/presentation/routes/pages.dart b/features/auth/lib/presentation/routes/pages.dart similarity index 79% rename from packages/auth/lib/src/presentation/routes/pages.dart rename to features/auth/lib/presentation/routes/pages.dart index 614b28d..4b12ffa 100644 --- a/packages/auth/lib/src/presentation/routes/pages.dart +++ b/features/auth/lib/presentation/routes/pages.dart @@ -1,7 +1,8 @@ -import 'package:auth/src/presentation/pages/auth/logic.dart'; -import 'package:auth/src/presentation/pages/auth/view.dart'; import 'package:rasadyar_core/core.dart'; +import '../pages/auth/logic.dart'; +import '../pages/auth/view.dart'; + part 'paths.dart'; sealed class AuthPages { @@ -15,6 +16,8 @@ sealed class AuthPages { Get.lazyPut(() => AuthLogic()); }), ), + + GetPage( name: AuthPaths.auth, page: () => AuthPage(), diff --git a/packages/auth/lib/src/presentation/routes/paths.dart b/features/auth/lib/presentation/routes/paths.dart similarity index 100% rename from packages/auth/lib/src/presentation/routes/paths.dart rename to features/auth/lib/presentation/routes/paths.dart diff --git a/features/inspection/lib/presentation/action/logic.dart b/features/inspection/lib/presentation/action/logic.dart index 34a4ec6..14cf098 100644 --- a/features/inspection/lib/presentation/action/logic.dart +++ b/features/inspection/lib/presentation/action/logic.dart @@ -1,5 +1,5 @@ import 'package:rasadyar_core/core.dart'; -import 'package:rasadyar_core/data/utils.dart'; + class ActionLogic extends GetxController with GetTickerProviderStateMixin { late Rx slidController; diff --git a/features/inspection/lib/presentation/add_mobile_inspector/view.dart b/features/inspection/lib/presentation/add_mobile_inspector/view.dart index d6b1a0d..47ebdf8 100644 --- a/features/inspection/lib/presentation/add_mobile_inspector/view.dart +++ b/features/inspection/lib/presentation/add_mobile_inspector/view.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; -import 'package:inspection/presentation/routes/app_routes.dart'; import 'package:rasadyar_core/core.dart'; import 'package:rasadyar_core/presentation/widget/buttons/fab.dart'; +import '../routes/app_routes.dart'; import 'logic.dart'; class AddMobileInspectorPage extends GetView { diff --git a/features/inspection/lib/presentation/add_supervision/logic.dart b/features/inspection/lib/presentation/add_supervision/logic.dart index 4aee4ec..57352cc 100644 --- a/features/inspection/lib/presentation/add_supervision/logic.dart +++ b/features/inspection/lib/presentation/add_supervision/logic.dart @@ -1,7 +1,8 @@ import 'package:flutter/material.dart'; -import 'package:inspection/presentation/routes/app_routes.dart'; import 'package:rasadyar_core/core.dart'; +import '../routes/app_routes.dart'; + class AddSupervisionLogic extends GetxController { RxInt selectedSegment = 0.obs; RxInt violationSegmentsSelected = 0.obs; diff --git a/features/inspection/lib/presentation/add_supervision/view.dart b/features/inspection/lib/presentation/add_supervision/view.dart index eb989cb..17d1e52 100644 --- a/features/inspection/lib/presentation/add_supervision/view.dart +++ b/features/inspection/lib/presentation/add_supervision/view.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:inspection/inspection.dart'; +import '../routes/app_routes.dart'; import 'package:rasadyar_core/core.dart'; import 'logic.dart'; diff --git a/features/inspection/lib/presentation/filter/logic.dart b/features/inspection/lib/presentation/filter/logic.dart index a8610fd..2d18e9b 100644 --- a/features/inspection/lib/presentation/filter/logic.dart +++ b/features/inspection/lib/presentation/filter/logic.dart @@ -1,10 +1,11 @@ import 'dart:async'; import 'package:flutter/material.dart'; -import 'package:inspection/data/utils/marker_generator.dart'; -import 'package:inspection/presentation/filter/view.dart'; import 'package:rasadyar_core/core.dart'; +import '../../data/utils/marker_generator.dart'; +import 'view.dart'; + class InspectorFilterLogic extends GetxController with GetTickerProviderStateMixin { Rx currentLocation = LatLng(35.824891, 50.948025).obs; diff --git a/features/inspection/lib/presentation/filter/view.dart b/features/inspection/lib/presentation/filter/view.dart index 1046873..82ee88a 100644 --- a/features/inspection/lib/presentation/filter/view.dart +++ b/features/inspection/lib/presentation/filter/view.dart @@ -1,7 +1,6 @@ import 'package:flutter/material.dart'; -import 'package:inspection/presentation/routes/app_routes.dart'; +import '../routes/app_routes.dart'; import 'package:rasadyar_core/core.dart'; -import 'package:rasadyar_core/data/utils.dart'; import 'package:rasadyar_core/presentation/widget/buttons/fab.dart'; import 'logic.dart'; @@ -509,7 +508,6 @@ Widget selectedLocationWidget({ required VoidCallback trigger, required VoidCallback toggle, }) { - eLog(showHint); if (showHint) { trigger.call(); } diff --git a/features/inspection/lib/presentation/registration_of_violation/view.dart b/features/inspection/lib/presentation/registration_of_violation/view.dart index d823a60..39d20ee 100644 --- a/features/inspection/lib/presentation/registration_of_violation/view.dart +++ b/features/inspection/lib/presentation/registration_of_violation/view.dart @@ -1,9 +1,10 @@ import 'package:flutter/material.dart'; -import 'package:inspection/presentation/registration_of_violation/logic.dart'; -import 'package:inspection/presentation/routes/app_routes.dart'; import 'package:rasadyar_core/core.dart'; import 'package:rasadyar_core/presentation/widget/buttons/fab.dart'; +import '../routes/app_routes.dart'; +import 'logic.dart'; + class RegistrationOfViolationPage extends GetView { const RegistrationOfViolationPage({super.key}); diff --git a/features/inspection/lib/presentation/root/logic.dart b/features/inspection/lib/presentation/root/logic.dart index bc88796..9a24ed9 100644 --- a/features/inspection/lib/presentation/root/logic.dart +++ b/features/inspection/lib/presentation/root/logic.dart @@ -1,9 +1,10 @@ import 'package:flutter/material.dart'; -import 'package:inspection/presentation/action/view.dart'; -import 'package:inspection/presentation/filter/view.dart'; -import 'package:inspection/presentation/profile/view.dart'; import 'package:rasadyar_core/core.dart'; -import 'package:rasadyar_core/data/utils.dart'; + +import '../action/view.dart'; +import '../filter/view.dart'; +import '../profile/view.dart'; + enum ErrorLocationType { serviceDisabled, permissionDenied, none } @@ -50,7 +51,6 @@ class RootLogic extends GetxController { } } catch (e) { - eLog(e); return await Geolocator.openLocationSettings(); } } diff --git a/features/inspection/lib/presentation/root/view.dart b/features/inspection/lib/presentation/root/view.dart index 356a1d6..1609912 100644 --- a/features/inspection/lib/presentation/root/view.dart +++ b/features/inspection/lib/presentation/root/view.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:rasadyar_core/core.dart'; -import 'package:rasadyar_core/data/utils.dart'; + import 'logic.dart'; @@ -25,7 +25,7 @@ class RootPage extends GetView { textStyle: AppFonts.yekan16, onPressed: () async { var service = await controller.locationServiceEnabled(); - eLog(service); + if (service) { controller.errorLocationType.remove( ErrorLocationType.serviceDisabled, diff --git a/features/inspection/lib/presentation/routes/app_pages.dart b/features/inspection/lib/presentation/routes/app_pages.dart index aeb25c4..59006ef 100644 --- a/features/inspection/lib/presentation/routes/app_pages.dart +++ b/features/inspection/lib/presentation/routes/app_pages.dart @@ -1,21 +1,23 @@ import 'package:rasadyar_core/core.dart'; -import 'package:inspection/presentation/action/logic.dart'; -import 'package:inspection/presentation/add_mobile_inspector/logic.dart'; -import 'package:inspection/presentation/add_mobile_inspector/view.dart'; -import 'package:inspection/presentation/add_supervision/logic.dart'; -import 'package:inspection/presentation/add_supervision/view.dart'; -import 'package:inspection/presentation/display_information/logic.dart'; -import 'package:inspection/presentation/display_information/view.dart'; -import 'package:inspection/presentation/filter/logic.dart'; -import 'package:inspection/presentation/location_details/logic.dart'; -import 'package:inspection/presentation/location_details/view.dart'; -import 'package:inspection/presentation/profile/logic.dart'; -import 'package:inspection/presentation/profile/view.dart'; -import 'package:inspection/presentation/registration_of_violation/logic.dart'; -import 'package:inspection/presentation/registration_of_violation/view.dart'; -import 'package:inspection/presentation/root/logic.dart'; -import 'package:inspection/presentation/root/view.dart'; -import 'package:inspection/presentation/routes/app_routes.dart'; + +import '../action/logic.dart'; +import '../add_mobile_inspector/logic.dart'; +import '../add_mobile_inspector/view.dart'; +import '../add_supervision/logic.dart'; +import '../add_supervision/view.dart'; +import '../display_information/logic.dart'; +import '../display_information/view.dart'; +import '../filter/logic.dart'; +import '../location_details/logic.dart'; +import '../location_details/view.dart'; +import '../profile/logic.dart'; +import '../profile/view.dart'; +import '../registration_of_violation/logic.dart'; +import '../registration_of_violation/view.dart'; +import '../root/logic.dart'; +import '../root/view.dart'; +import 'app_routes.dart'; + sealed class InspectionPages { InspectionPages._(); diff --git a/features/inspection/pubspec.lock b/features/inspection/pubspec.lock deleted file mode 100644 index 276fc68..0000000 --- a/features/inspection/pubspec.lock +++ /dev/null @@ -1,649 +0,0 @@ -# Generated by pub -# See https://dart.dev/tools/pub/glossary#lockfile -packages: - args: - dependency: transitive - description: - name: args - sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04 - url: "https://pub.dev" - source: hosted - version: "2.7.0" - async: - dependency: transitive - description: - name: async - sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb" - url: "https://pub.dev" - source: hosted - version: "2.13.0" - characters: - dependency: transitive - description: - name: characters - sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 - url: "https://pub.dev" - source: hosted - version: "1.4.0" - clock: - dependency: transitive - description: - name: clock - sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b - url: "https://pub.dev" - source: hosted - version: "1.1.2" - collection: - dependency: transitive - description: - name: collection - sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" - url: "https://pub.dev" - source: hosted - version: "1.19.1" - crypto: - dependency: transitive - description: - name: crypto - sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855" - url: "https://pub.dev" - source: hosted - version: "3.0.6" - cupertino_icons: - dependency: transitive - description: - name: cupertino_icons - sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6 - url: "https://pub.dev" - source: hosted - version: "1.0.8" - dart_earcut: - dependency: transitive - description: - name: dart_earcut - sha256: e485001bfc05dcbc437d7bfb666316182e3522d4c3f9668048e004d0eb2ce43b - url: "https://pub.dev" - source: hosted - version: "1.2.0" - dartx: - dependency: transitive - description: - name: dartx - sha256: "8b25435617027257d43e6508b5fe061012880ddfdaa75a71d607c3de2a13d244" - url: "https://pub.dev" - source: hosted - version: "1.2.0" - ffi: - dependency: transitive - description: - name: ffi - sha256: "289279317b4b16eb2bb7e271abccd4bf84ec9bdcbe999e278a94b804f5630418" - url: "https://pub.dev" - source: hosted - version: "2.1.4" - fixnum: - dependency: transitive - description: - name: fixnum - sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be - url: "https://pub.dev" - source: hosted - version: "1.1.1" - flutter: - dependency: "direct main" - description: flutter - source: sdk - version: "0.0.0" - flutter_localizations: - dependency: transitive - description: flutter - source: sdk - version: "0.0.0" - flutter_map: - dependency: transitive - description: - name: flutter_map - sha256: f7d0379477274f323c3f3bc12d369a2b42eb86d1e7bd2970ae1ea3cff782449a - url: "https://pub.dev" - source: hosted - version: "8.1.1" - flutter_map_animations: - dependency: transitive - description: - name: flutter_map_animations - sha256: bf583863561861aaaf4854ae7ed8940d79bea7d32918bf7a85d309b25235a09e - url: "https://pub.dev" - source: hosted - version: "0.9.0" - flutter_rating_bar: - dependency: transitive - description: - name: flutter_rating_bar - sha256: d2af03469eac832c591a1eba47c91ecc871fe5708e69967073c043b2d775ed93 - url: "https://pub.dev" - source: hosted - version: "4.0.1" - flutter_slidable: - dependency: transitive - description: - name: flutter_slidable - sha256: ab7dbb16f783307c9d7762ede2593ce32c220ba2ba0fd540a3db8e9a3acba71a - url: "https://pub.dev" - source: hosted - version: "4.0.0" - flutter_svg: - dependency: transitive - description: - name: flutter_svg - sha256: d44bf546b13025ec7353091516f6881f1d4c633993cb109c3916c3a0159dadf1 - url: "https://pub.dev" - source: hosted - version: "2.1.0" - flutter_web_plugins: - dependency: transitive - description: flutter - source: sdk - version: "0.0.0" - font_awesome_flutter: - dependency: transitive - description: - name: font_awesome_flutter - sha256: d3a89184101baec7f4600d58840a764d2ef760fe1c5a20ef9e6b0e9b24a07a3a - url: "https://pub.dev" - source: hosted - version: "10.8.0" - freezed_annotation: - dependency: transitive - description: - name: freezed_annotation - sha256: c87ff004c8aa6af2d531668b46a4ea379f7191dc6dfa066acd53d506da6e044b - url: "https://pub.dev" - source: hosted - version: "3.0.0" - geolocator: - dependency: transitive - description: - name: geolocator - sha256: e7ebfa04ce451daf39b5499108c973189a71a919aa53c1204effda1c5b93b822 - url: "https://pub.dev" - source: hosted - version: "14.0.0" - geolocator_android: - dependency: transitive - description: - name: geolocator_android - sha256: "114072db5d1dce0ec0b36af2697f55c133bc89a2c8dd513e137c0afe59696ed4" - url: "https://pub.dev" - source: hosted - version: "5.0.1+1" - geolocator_apple: - dependency: transitive - description: - name: geolocator_apple - sha256: dbdd8789d5aaf14cf69f74d4925ad1336b4433a6efdf2fce91e8955dc921bf22 - url: "https://pub.dev" - source: hosted - version: "2.3.13" - geolocator_platform_interface: - dependency: transitive - description: - name: geolocator_platform_interface - sha256: "30cb64f0b9adcc0fb36f628b4ebf4f731a2961a0ebd849f4b56200205056fe67" - url: "https://pub.dev" - source: hosted - version: "4.2.6" - geolocator_web: - dependency: transitive - description: - name: geolocator_web - sha256: b1ae9bdfd90f861fde8fd4f209c37b953d65e92823cb73c7dee1fa021b06f172 - url: "https://pub.dev" - source: hosted - version: "4.1.3" - geolocator_windows: - dependency: transitive - description: - name: geolocator_windows - sha256: "175435404d20278ffd220de83c2ca293b73db95eafbdc8131fe8609be1421eb6" - url: "https://pub.dev" - source: hosted - version: "0.2.5" - get: - dependency: transitive - description: - name: get - sha256: c79eeb4339f1f3deffd9ec912f8a923834bec55f7b49c9e882b8fef2c139d425 - url: "https://pub.dev" - source: hosted - version: "4.7.2" - get_it: - dependency: transitive - description: - name: get_it - sha256: f126a3e286b7f5b578bf436d5592968706c4c1de28a228b870ce375d9f743103 - url: "https://pub.dev" - source: hosted - version: "8.0.3" - hive_ce: - dependency: transitive - description: - name: hive_ce - sha256: fdc19336f03ecd01dbc1d1afe69d87ed9336bdf996c5374a25f9c21ef5f2989e - url: "https://pub.dev" - source: hosted - version: "2.11.1" - hive_ce_flutter: - dependency: transitive - description: - name: hive_ce_flutter - sha256: "5eaf57a5af980eda63ddaa8c34d618dc446f76fe79410f2a283522744291c05c" - url: "https://pub.dev" - source: hosted - version: "2.3.0" - http: - dependency: transitive - description: - name: http - sha256: fe7ab022b76f3034adc518fb6ea04a82387620e19977665ea18d30a1cf43442f - url: "https://pub.dev" - source: hosted - version: "1.3.0" - http_parser: - dependency: transitive - description: - name: http_parser - sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" - url: "https://pub.dev" - source: hosted - version: "4.1.2" - intl: - dependency: transitive - description: - name: intl - sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf - url: "https://pub.dev" - source: hosted - version: "0.19.0" - isolate_channel: - dependency: transitive - description: - name: isolate_channel - sha256: bafedfbcc1e9796ada179b5dac7043b33eb85d35204b089ca37d480d9c0068df - url: "https://pub.dev" - source: hosted - version: "0.2.2" - json_annotation: - dependency: transitive - description: - name: json_annotation - sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" - url: "https://pub.dev" - source: hosted - version: "4.9.0" - latlong2: - dependency: transitive - description: - name: latlong2 - sha256: "98227922caf49e6056f91b6c56945ea1c7b166f28ffcd5fb8e72fc0b453cc8fe" - url: "https://pub.dev" - source: hosted - version: "0.9.1" - lists: - dependency: transitive - description: - name: lists - sha256: "4ca5c19ae4350de036a7e996cdd1ee39c93ac0a2b840f4915459b7d0a7d4ab27" - url: "https://pub.dev" - source: hosted - version: "1.0.1" - logger: - dependency: transitive - description: - name: logger - sha256: be4b23575aac7ebf01f225a241eb7f6b5641eeaf43c6a8613510fc2f8cf187d1 - url: "https://pub.dev" - source: hosted - version: "2.5.0" - material_color_utilities: - dependency: transitive - description: - name: material_color_utilities - sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec - url: "https://pub.dev" - source: hosted - version: "0.11.1" - meta: - dependency: transitive - description: - name: meta - sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c - url: "https://pub.dev" - source: hosted - version: "1.16.0" - mgrs_dart: - dependency: transitive - description: - name: mgrs_dart - sha256: fb89ae62f05fa0bb90f70c31fc870bcbcfd516c843fb554452ab3396f78586f7 - url: "https://pub.dev" - source: hosted - version: "2.0.0" - path: - dependency: transitive - description: - name: path - sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" - url: "https://pub.dev" - source: hosted - version: "1.9.1" - path_parsing: - dependency: transitive - description: - name: path_parsing - sha256: "883402936929eac138ee0a45da5b0f2c80f89913e6dc3bf77eb65b84b409c6ca" - url: "https://pub.dev" - source: hosted - version: "1.1.0" - path_provider: - dependency: transitive - description: - name: path_provider - sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd" - url: "https://pub.dev" - source: hosted - version: "2.1.5" - path_provider_android: - dependency: transitive - description: - name: path_provider_android - sha256: d0d310befe2c8ab9e7f393288ccbb11b60c019c6b5afc21973eeee4dda2b35e9 - url: "https://pub.dev" - source: hosted - version: "2.2.17" - path_provider_foundation: - dependency: transitive - description: - name: path_provider_foundation - sha256: "4843174df4d288f5e29185bd6e72a6fbdf5a4a4602717eed565497429f179942" - url: "https://pub.dev" - source: hosted - version: "2.4.1" - path_provider_linux: - dependency: transitive - description: - name: path_provider_linux - sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 - url: "https://pub.dev" - source: hosted - version: "2.2.1" - path_provider_platform_interface: - dependency: transitive - description: - name: path_provider_platform_interface - sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" - url: "https://pub.dev" - source: hosted - version: "2.1.2" - path_provider_windows: - dependency: transitive - description: - name: path_provider_windows - sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 - url: "https://pub.dev" - source: hosted - version: "2.3.0" - permission_handler: - dependency: transitive - description: - name: permission_handler - sha256: "2d070d8684b68efb580a5997eb62f675e8a885ef0be6e754fb9ef489c177470f" - url: "https://pub.dev" - source: hosted - version: "12.0.0+1" - permission_handler_android: - dependency: transitive - description: - name: permission_handler_android - sha256: "1e3bc410ca1bf84662104b100eb126e066cb55791b7451307f9708d4007350e6" - url: "https://pub.dev" - source: hosted - version: "13.0.1" - permission_handler_apple: - dependency: transitive - description: - name: permission_handler_apple - sha256: f000131e755c54cf4d84a5d8bd6e4149e262cc31c5a8b1d698de1ac85fa41023 - url: "https://pub.dev" - source: hosted - version: "9.4.7" - permission_handler_html: - dependency: transitive - description: - name: permission_handler_html - sha256: "38f000e83355abb3392140f6bc3030660cfaef189e1f87824facb76300b4ff24" - url: "https://pub.dev" - source: hosted - version: "0.1.3+5" - permission_handler_platform_interface: - dependency: transitive - description: - name: permission_handler_platform_interface - sha256: eb99b295153abce5d683cac8c02e22faab63e50679b937fa1bf67d58bb282878 - url: "https://pub.dev" - source: hosted - version: "4.3.0" - permission_handler_windows: - dependency: transitive - description: - name: permission_handler_windows - sha256: "1a790728016f79a41216d88672dbc5df30e686e811ad4e698bfc51f76ad91f1e" - url: "https://pub.dev" - source: hosted - version: "0.2.1" - persian_datetime_picker: - dependency: transitive - description: - name: persian_datetime_picker - sha256: "7ccbfd3a68dc89d405550f624e9fa590c914fed2aa2d48973c4f4400baab2e06" - url: "https://pub.dev" - source: hosted - version: "3.1.0" - petitparser: - dependency: transitive - description: - name: petitparser - sha256: "07c8f0b1913bcde1ff0d26e57ace2f3012ccbf2b204e070290dad3bb22797646" - url: "https://pub.dev" - source: hosted - version: "6.1.0" - platform: - dependency: transitive - description: - name: platform - sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984" - url: "https://pub.dev" - source: hosted - version: "3.1.6" - plugin_platform_interface: - dependency: transitive - description: - name: plugin_platform_interface - sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" - url: "https://pub.dev" - source: hosted - version: "2.1.8" - polylabel: - dependency: transitive - description: - name: polylabel - sha256: "41b9099afb2aa6c1730bdd8a0fab1400d287694ec7615dd8516935fa3144214b" - url: "https://pub.dev" - source: hosted - version: "1.0.1" - proj4dart: - dependency: transitive - description: - name: proj4dart - sha256: c8a659ac9b6864aa47c171e78d41bbe6f5e1d7bd790a5814249e6b68bc44324e - url: "https://pub.dev" - source: hosted - version: "2.1.0" - rasadyar_core: - dependency: "direct main" - description: - path: "../../packages/core" - relative: true - source: path - version: "1.0.0+1" - rxdart: - dependency: transitive - description: - name: rxdart - sha256: "5c3004a4a8dbb94bd4bf5412a4def4acdaa12e12f269737a5751369e12d1a962" - url: "https://pub.dev" - source: hosted - version: "0.28.0" - shamsi_date: - dependency: transitive - description: - name: shamsi_date - sha256: b6c79ff34ddfb1e9e4761347f18e30afdd7d16cc3db77defd5a40e2d93894c51 - url: "https://pub.dev" - source: hosted - version: "1.1.0" - sky_engine: - dependency: transitive - description: flutter - source: sdk - version: "0.0.0" - source_span: - dependency: transitive - description: - name: source_span - sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c" - url: "https://pub.dev" - source: hosted - version: "1.10.1" - sprintf: - dependency: transitive - description: - name: sprintf - sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23" - url: "https://pub.dev" - source: hosted - version: "7.0.0" - string_scanner: - dependency: transitive - description: - name: string_scanner - sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" - url: "https://pub.dev" - source: hosted - version: "1.4.1" - term_glyph: - dependency: transitive - description: - name: term_glyph - sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" - url: "https://pub.dev" - source: hosted - version: "1.2.2" - time: - dependency: transitive - description: - name: time - sha256: "370572cf5d1e58adcb3e354c47515da3f7469dac3a95b447117e728e7be6f461" - url: "https://pub.dev" - source: hosted - version: "2.1.5" - typed_data: - dependency: transitive - description: - name: typed_data - sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 - url: "https://pub.dev" - source: hosted - version: "1.4.0" - unicode: - dependency: transitive - description: - name: unicode - sha256: "0f69e46593d65245774d4f17125c6084d2c20b4e473a983f6e21b7d7762218f1" - url: "https://pub.dev" - source: hosted - version: "0.3.1" - uuid: - dependency: transitive - description: - name: uuid - sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff - url: "https://pub.dev" - source: hosted - version: "4.5.1" - vector_graphics: - dependency: transitive - description: - name: vector_graphics - sha256: "44cc7104ff32563122a929e4620cf3efd584194eec6d1d913eb5ba593dbcf6de" - url: "https://pub.dev" - source: hosted - version: "1.1.18" - vector_graphics_codec: - dependency: transitive - description: - name: vector_graphics_codec - sha256: "99fd9fbd34d9f9a32efd7b6a6aae14125d8237b10403b422a6a6dfeac2806146" - url: "https://pub.dev" - source: hosted - version: "1.1.13" - vector_graphics_compiler: - dependency: transitive - description: - name: vector_graphics_compiler - sha256: "1b4b9e706a10294258727674a340ae0d6e64a7231980f9f9a3d12e4b42407aad" - url: "https://pub.dev" - source: hosted - version: "1.1.16" - vector_math: - dependency: transitive - description: - name: vector_math - sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" - url: "https://pub.dev" - source: hosted - version: "2.1.4" - web: - dependency: transitive - description: - name: web - sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" - url: "https://pub.dev" - source: hosted - version: "1.1.1" - wkt_parser: - dependency: transitive - description: - name: wkt_parser - sha256: "8a555fc60de3116c00aad67891bcab20f81a958e4219cc106e3c037aa3937f13" - url: "https://pub.dev" - source: hosted - version: "2.0.0" - xdg_directories: - dependency: transitive - description: - name: xdg_directories - sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15" - url: "https://pub.dev" - source: hosted - version: "1.1.0" - xml: - dependency: transitive - description: - name: xml - sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 - url: "https://pub.dev" - source: hosted - version: "6.5.0" -sdks: - dart: ">=3.7.2 <4.0.0" - flutter: ">=3.27.0" diff --git a/features/inspection/pubspec.yaml b/features/inspection/pubspec.yaml deleted file mode 100644 index 22e85bd..0000000 --- a/features/inspection/pubspec.yaml +++ /dev/null @@ -1,13 +0,0 @@ -name: inspection -description: "inspection module for rasadyar" -publish_to: 'none' -version: 1.0.1 - -environment: - sdk: ^3.7.2 - -dependencies: - flutter: - sdk: flutter - rasadyar_core: - path: ./../../packages/core \ No newline at end of file diff --git a/lib/presentation/pages/splash/logic.dart b/lib/presentation/pages/splash/logic.dart index 7542f46..5f98668 100644 --- a/lib/presentation/pages/splash/logic.dart +++ b/lib/presentation/pages/splash/logic.dart @@ -1,7 +1,7 @@ import 'package:flutter/animation.dart'; import 'package:get/get.dart'; import 'package:rasadyar_app/presentation/routes/app_pages.dart'; -import 'package:inspection/inspection.dart'; +import ''; class SplashLogic extends GetxController with GetTickerProviderStateMixin { late final AnimationController scaleController; diff --git a/lib/presentation/routes/app_pages.dart b/lib/presentation/routes/app_pages.dart index ab5cb96..4910184 100644 --- a/lib/presentation/routes/app_pages.dart +++ b/lib/presentation/routes/app_pages.dart @@ -1,5 +1,5 @@ import 'package:get/get.dart'; -import 'package:inspection/presentation/routes/app_pages.dart'; + import 'package:rasadyar_app/presentation/pages/auth/auth_with_use_and_pass/logic.dart'; import 'package:rasadyar_app/presentation/pages/auth/auth_with_use_and_pass/view.dart'; import 'package:rasadyar_app/presentation/pages/splash/logic.dart'; diff --git a/packages/auth/.gitignore b/packages/auth/.gitignore deleted file mode 100644 index 3cceda5..0000000 --- a/packages/auth/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -# https://dart.dev/guides/libraries/private-files -# Created by `dart pub` -.dart_tool/ - -# Avoid committing pubspec.lock for library packages; see -# https://dart.dev/guides/libraries/private-files#pubspeclock. -pubspec.lock diff --git a/packages/auth/CHANGELOG.md b/packages/auth/CHANGELOG.md deleted file mode 100644 index effe43c..0000000 --- a/packages/auth/CHANGELOG.md +++ /dev/null @@ -1,3 +0,0 @@ -## 1.0.0 - -- Initial version. diff --git a/packages/auth/README.md b/packages/auth/README.md deleted file mode 100644 index 8831761..0000000 --- a/packages/auth/README.md +++ /dev/null @@ -1,39 +0,0 @@ - - -TODO: Put a short description of the package here that helps potential users -know whether this package might be useful for them. - -## Features - -TODO: List what your package can do. Maybe include images, gifs, or videos. - -## Getting started - -TODO: List prerequisites and provide or point to information on how to -start using the package. - -## Usage - -TODO: Include short and useful examples for package users. Add longer examples -to `/example` folder. - -```dart -const like = 'sample'; -``` - -## Additional information - -TODO: Tell users more about the package: where to find more information, how to -contribute to the package, how to file issues, what response they can expect -from the package authors, and more. diff --git a/packages/auth/analysis_options.yaml b/packages/auth/analysis_options.yaml deleted file mode 100644 index dee8927..0000000 --- a/packages/auth/analysis_options.yaml +++ /dev/null @@ -1,30 +0,0 @@ -# This file configures the static analysis results for your project (errors, -# warnings, and lints). -# -# This enables the 'recommended' set of lints from `package:lints`. -# This set helps identify many issues that may lead to problems when running -# or consuming Dart code, and enforces writing Dart using a single, idiomatic -# style and format. -# -# If you want a smaller set of lints you can change this to specify -# 'package:lints/core.yaml'. These are just the most critical lints -# (the recommended set includes the core lints). -# The core lints are also what is used by pub.dev for scoring packages. - -include: package:lints/recommended.yaml - -# Uncomment the following section to specify additional rules. - -# linter: -# rules: -# - camel_case_types - -# analyzer: -# exclude: -# - path/to/excluded/files/** - -# For more information about the core and recommended set of lints, see -# https://dart.dev/go/core-lints - -# For additional information about configuring this file, see -# https://dart.dev/guides/language/analysis-options diff --git a/packages/auth/example/auth_example.dart b/packages/auth/example/auth_example.dart deleted file mode 100644 index 9733c86..0000000 --- a/packages/auth/example/auth_example.dart +++ /dev/null @@ -1,5 +0,0 @@ -import 'package:auth/auth.dart'; - -void main() { - -} diff --git a/packages/auth/lib/hive_registrar.g.dart b/packages/auth/lib/hive_registrar.g.dart deleted file mode 100644 index 74cb88e..0000000 --- a/packages/auth/lib/hive_registrar.g.dart +++ /dev/null @@ -1,18 +0,0 @@ -// Generated by Hive CE -// Do not modify -// Check in to version control - -import 'package:hive_ce/hive.dart'; -import 'package:auth/src/data/models/user_local/user_local_model.dart'; - -extension HiveRegistrar on HiveInterface { - void registerAdapters() { - registerAdapter(UserLocalModelAdapter()); - } -} - -extension IsolatedHiveRegistrar on IsolatedHiveInterface { - void registerAdapters() { - registerAdapter(UserLocalModelAdapter()); - } -} diff --git a/packages/auth/lib/src/data/dto/auth_response/auth_response_dto.dart b/packages/auth/lib/src/data/dto/auth_response/auth_response_dto.dart deleted file mode 100644 index 1f259f5..0000000 --- a/packages/auth/lib/src/data/dto/auth_response/auth_response_dto.dart +++ /dev/null @@ -1,23 +0,0 @@ -import 'package:auth/src/domain/entity/auth_response_entity.dart'; -import 'package:freezed_annotation/freezed_annotation.dart'; - -part 'auth_response_dto.freezed.dart'; -part 'auth_response_dto.g.dart'; - -@freezed -abstract class AuthResponseDto with _$AuthResponseDto { - const factory AuthResponseDto({ - String? refresh, - String? access, - @JsonKey(name: 'otp_status') bool? otpStatus, - }) = _AuthResponseDto; - - factory AuthResponseDto.fromJson(Map json) => - _$AuthResponseDtoFromJson(json); - - AuthResponseEntity toEntity() => AuthResponseEntity( - access: access, - otpStatus: otpStatus, - refresh: refresh, - ); -} diff --git a/packages/auth/lib/src/data/dto/auth_response/auth_response_dto.freezed.dart b/packages/auth/lib/src/data/dto/auth_response/auth_response_dto.freezed.dart deleted file mode 100644 index 23e681f..0000000 --- a/packages/auth/lib/src/data/dto/auth_response/auth_response_dto.freezed.dart +++ /dev/null @@ -1,160 +0,0 @@ -// dart format width=80 -// 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 'auth_response_dto.dart'; - -// ************************************************************************** -// FreezedGenerator -// ************************************************************************** - -// dart format off -T _$identity(T value) => value; - -/// @nodoc -mixin _$AuthResponseDto { - - String? get refresh; String? get access;@JsonKey(name: 'otp_status') bool? get otpStatus; -/// Create a copy of AuthResponseDto -/// with the given fields replaced by the non-null parameter values. -@JsonKey(includeFromJson: false, includeToJson: false) -@pragma('vm:prefer-inline') -$AuthResponseDtoCopyWith get copyWith => _$AuthResponseDtoCopyWithImpl(this as AuthResponseDto, _$identity); - - /// Serializes this AuthResponseDto to a JSON map. - Map toJson(); - - -@override -bool operator ==(Object other) { - return identical(this, other) || (other.runtimeType == runtimeType&&other is AuthResponseDto&&(identical(other.refresh, refresh) || other.refresh == refresh)&&(identical(other.access, access) || other.access == access)&&(identical(other.otpStatus, otpStatus) || other.otpStatus == otpStatus)); -} - -@JsonKey(includeFromJson: false, includeToJson: false) -@override -int get hashCode => Object.hash(runtimeType,refresh,access,otpStatus); - -@override -String toString() { - return 'AuthResponseDto(refresh: $refresh, access: $access, otpStatus: $otpStatus)'; -} - - -} - -/// @nodoc -abstract mixin class $AuthResponseDtoCopyWith<$Res> { - factory $AuthResponseDtoCopyWith(AuthResponseDto value, $Res Function(AuthResponseDto) _then) = _$AuthResponseDtoCopyWithImpl; -@useResult -$Res call({ - String? refresh, String? access,@JsonKey(name: 'otp_status') bool? otpStatus -}); - - - - -} -/// @nodoc -class _$AuthResponseDtoCopyWithImpl<$Res> - implements $AuthResponseDtoCopyWith<$Res> { - _$AuthResponseDtoCopyWithImpl(this._self, this._then); - - final AuthResponseDto _self; - final $Res Function(AuthResponseDto) _then; - -/// Create a copy of AuthResponseDto -/// with the given fields replaced by the non-null parameter values. -@pragma('vm:prefer-inline') @override $Res call({Object? refresh = freezed,Object? access = freezed,Object? otpStatus = freezed,}) { - return _then(_self.copyWith( -refresh: freezed == refresh ? _self.refresh : refresh // ignore: cast_nullable_to_non_nullable -as String?,access: freezed == access ? _self.access : access // ignore: cast_nullable_to_non_nullable -as String?,otpStatus: freezed == otpStatus ? _self.otpStatus : otpStatus // ignore: cast_nullable_to_non_nullable -as bool?, - )); -} - -} - - -/// @nodoc -@JsonSerializable() - -class _AuthResponseDto implements AuthResponseDto { - const _AuthResponseDto({this.refresh, this.access, @JsonKey(name: 'otp_status') this.otpStatus}); - factory _AuthResponseDto.fromJson(Map json) => _$AuthResponseDtoFromJson(json); - -@override final String? refresh; -@override final String? access; -@override@JsonKey(name: 'otp_status') final bool? otpStatus; - -/// Create a copy of AuthResponseDto -/// with the given fields replaced by the non-null parameter values. -@override @JsonKey(includeFromJson: false, includeToJson: false) -@pragma('vm:prefer-inline') -_$AuthResponseDtoCopyWith<_AuthResponseDto> get copyWith => __$AuthResponseDtoCopyWithImpl<_AuthResponseDto>(this, _$identity); - -@override -Map toJson() { - return _$AuthResponseDtoToJson(this, ); -} - -@override -bool operator ==(Object other) { - return identical(this, other) || (other.runtimeType == runtimeType&&other is _AuthResponseDto&&(identical(other.refresh, refresh) || other.refresh == refresh)&&(identical(other.access, access) || other.access == access)&&(identical(other.otpStatus, otpStatus) || other.otpStatus == otpStatus)); -} - -@JsonKey(includeFromJson: false, includeToJson: false) -@override -int get hashCode => Object.hash(runtimeType,refresh,access,otpStatus); - -@override -String toString() { - return 'AuthResponseDto(refresh: $refresh, access: $access, otpStatus: $otpStatus)'; -} - - @override - AuthResponseEntity toEntity() { - // TODO: implement toEntity - throw UnimplementedError(); - } - - -} - -/// @nodoc -abstract mixin class _$AuthResponseDtoCopyWith<$Res> implements $AuthResponseDtoCopyWith<$Res> { - factory _$AuthResponseDtoCopyWith(_AuthResponseDto value, $Res Function(_AuthResponseDto) _then) = __$AuthResponseDtoCopyWithImpl; -@override @useResult -$Res call({ - String? refresh, String? access,@JsonKey(name: 'otp_status') bool? otpStatus -}); - - - - -} -/// @nodoc -class __$AuthResponseDtoCopyWithImpl<$Res> - implements _$AuthResponseDtoCopyWith<$Res> { - __$AuthResponseDtoCopyWithImpl(this._self, this._then); - - final _AuthResponseDto _self; - final $Res Function(_AuthResponseDto) _then; - -/// Create a copy of AuthResponseDto -/// with the given fields replaced by the non-null parameter values. -@override @pragma('vm:prefer-inline') $Res call({Object? refresh = freezed,Object? access = freezed,Object? otpStatus = freezed,}) { - return _then(_AuthResponseDto( -refresh: freezed == refresh ? _self.refresh : refresh // ignore: cast_nullable_to_non_nullable -as String?,access: freezed == access ? _self.access : access // ignore: cast_nullable_to_non_nullable -as String?,otpStatus: freezed == otpStatus ? _self.otpStatus : otpStatus // ignore: cast_nullable_to_non_nullable -as bool?, - )); -} - - -} - -// dart format on diff --git a/packages/auth/lib/src/data/dto/auth_response/auth_response_dto.g.dart b/packages/auth/lib/src/data/dto/auth_response/auth_response_dto.g.dart deleted file mode 100644 index cbe0276..0000000 --- a/packages/auth/lib/src/data/dto/auth_response/auth_response_dto.g.dart +++ /dev/null @@ -1,21 +0,0 @@ -// GENERATED CODE - DO NOT MODIFY BY HAND - -part of 'auth_response_dto.dart'; - -// ************************************************************************** -// JsonSerializableGenerator -// ************************************************************************** - -_AuthResponseDto _$AuthResponseDtoFromJson(Map json) => - _AuthResponseDto( - refresh: json['refresh'] as String?, - access: json['access'] as String?, - otpStatus: json['otp_status'] as bool?, - ); - -Map _$AuthResponseDtoToJson(_AuthResponseDto instance) => - { - 'refresh': instance.refresh, - 'access': instance.access, - 'otp_status': instance.otpStatus, - }; diff --git a/packages/auth/lib/src/domain/entity/auth_response_entity.dart b/packages/auth/lib/src/domain/entity/auth_response_entity.dart deleted file mode 100644 index a2cf7a9..0000000 --- a/packages/auth/lib/src/domain/entity/auth_response_entity.dart +++ /dev/null @@ -1,12 +0,0 @@ -class AuthResponseEntity { - final String? access; - final String? refresh; - final bool? otpStatus; - - AuthResponseEntity({this.access, this.refresh, this.otpStatus}); - - @override - String toString() { - return 'AuthResponseEntity{accessToken: $access, refreshToken: $refresh, expiresIn: $otpStatus}'; - } -} diff --git a/packages/auth/lib/src/domain/repositories/auth_repository.dart b/packages/auth/lib/src/domain/repositories/auth_repository.dart deleted file mode 100644 index 1d7748c..0000000 --- a/packages/auth/lib/src/domain/repositories/auth_repository.dart +++ /dev/null @@ -1,7 +0,0 @@ -import 'package:auth/src/domain/entity/auth_response_entity.dart'; - -abstract class AuthRepository { - Future signIn({ - required Map authRequest, - }); -} diff --git a/packages/auth/pubspec.yaml b/packages/auth/pubspec.yaml deleted file mode 100644 index e6f65ab..0000000 --- a/packages/auth/pubspec.yaml +++ /dev/null @@ -1,33 +0,0 @@ -name: auth -description: A starting point for Dart libraries or applications. -publish_to: 'none' -version: 1.0.0 - -# repository: https://github.com/my_org/my_repo - -environment: - sdk: ^3.7.2 - -dependencies: - # path: ^1.8.0 - rasadyar_core: - path: ../core - -dev_dependencies: - lints: ^5.0.0 - test: ^1.24.0 - flutter_test: - sdk: flutter - flutter_lints: ^5.0.0 - ##code generation - build_runner: ^2.4.15 - hive_ce_generator: ^1.9.1 - freezed: ^3.0.3 - json_serializable: ^6.9.4 - - ##test - mocktail: ^1.0.4 - get_test: ^4.0.1 - -flutter: - uses-material-design: true \ No newline at end of file diff --git a/packages/auth/test/auth_test.dart b/packages/auth/test/auth_test.dart deleted file mode 100644 index 12ebb82..0000000 --- a/packages/auth/test/auth_test.dart +++ /dev/null @@ -1,8 +0,0 @@ -import 'package:auth/auth.dart'; -import 'package:test/test.dart'; - -void main() { - group('A group of tests', () { - - }); -} diff --git a/packages/core/lib/core.dart b/packages/core/lib/core.dart index 0aa727e..f33e467 100644 --- a/packages/core/lib/core.dart +++ b/packages/core/lib/core.dart @@ -1,29 +1,31 @@ library; +//other packages +export 'package:flutter_localizations/flutter_localizations.dart'; +export 'package:flutter_map/flutter_map.dart'; +export 'package:flutter_map_animations/flutter_map_animations.dart'; +export 'package:flutter_rating_bar/flutter_rating_bar.dart'; +export 'package:flutter_slidable/flutter_slidable.dart'; +export 'package:font_awesome_flutter/font_awesome_flutter.dart'; +//freezed +export 'package:freezed_annotation/freezed_annotation.dart'; +export 'package:geolocator/geolocator.dart'; export 'package:get/get.dart'; +//di +export 'package:get_it/get_it.dart'; +//local storage +export 'package:hive_ce_flutter/hive_flutter.dart'; +//Map and location +export 'package:latlong2/latlong.dart'; +export 'package:persian_datetime_picker/persian_datetime_picker.dart'; export 'package:rasadyar_core/presentation/common/common.dart'; export 'package:rasadyar_core/presentation/utils/utils.dart'; export 'package:rasadyar_core/presentation/widget/widget.dart'; -//other packages -export 'package:flutter_localizations/flutter_localizations.dart'; -export 'package:flutter_slidable/flutter_slidable.dart'; -export 'package:font_awesome_flutter/font_awesome_flutter.dart'; -export 'package:flutter_rating_bar/flutter_rating_bar.dart'; -export 'package:persian_datetime_picker/persian_datetime_picker.dart'; - -//freezed -export 'package:freezed_annotation/freezed_annotation.dart'; - -//local storage -export 'package:hive_ce_flutter/hive_flutter.dart'; - -//Map and location -export 'package:latlong2/latlong.dart'; -export 'package:flutter_map/flutter_map.dart'; -export 'package:geolocator/geolocator.dart'; -export 'package:flutter_map_animations/flutter_map_animations.dart'; - - - - +export 'infrastructure/remote/dio_form_data.dart'; +//network +export 'infrastructure/remote/dio_remote.dart'; +export 'infrastructure/remote/dio_response.dart'; +//utils +export 'utils/logger_utils.dart'; +export 'utils/safe_call_utils.dart'; diff --git a/packages/core/lib/infrastructure/remote/dio_remote.dart b/packages/core/lib/infrastructure/remote/dio_remote.dart index 6b8ac08..9e5a208 100644 --- a/packages/core/lib/infrastructure/remote/dio_remote.dart +++ b/packages/core/lib/infrastructure/remote/dio_remote.dart @@ -1,16 +1,12 @@ -import 'dart:typed_data'; - import 'package:dio/dio.dart'; import 'package:pretty_dio_logger/pretty_dio_logger.dart'; import 'package:rasadyar_core/infrastructure/remote/interfaces/i_form_data.dart'; -import 'package:rasadyar_core/infrastructure/remote/interfaces/i_http_response.dart'; -import 'package:rasadyar_core/infrastructure/remote/interfaces/i_remote.dart'; import 'dio_form_data.dart'; import 'dio_response.dart'; import 'interfaces/i_http_client.dart'; -class DioRemote implements IRemote, IHttpClient { +class DioRemote implements IHttpClient { final String baseUrl; late final Dio _dio; @@ -24,31 +20,31 @@ class DioRemote implements IRemote, IHttpClient { } @override - Future get( - String path, { - Map? queryParameters, - Map? headers, - ProgressCallback? onReceiveProgress, - }) async { - final response = await _dio.get( + Future> get( + String path, { + Map? queryParameters, + Map? headers, + ProgressCallback? onReceiveProgress, + }) async { + final response = await _dio.get( path, queryParameters: queryParameters, options: Options(headers: headers), onReceiveProgress: onReceiveProgress, ); - return DioHttpResponse(response); + return DioResponse(response); } @override - Future post( - String path, { - dynamic data, - Map? queryParameters, - Map? headers, - ProgressCallback? onSendProgress, - ProgressCallback? onReceiveProgress, - }) async { - final response = await _dio.post( + Future> post( + String path, { + dynamic data, + Map? queryParameters, + Map? headers, + ProgressCallback? onSendProgress, + ProgressCallback? onReceiveProgress, + }) async { + final response = await _dio.post( path, data: data, queryParameters: queryParameters, @@ -56,19 +52,19 @@ class DioRemote implements IRemote, IHttpClient { onSendProgress: onSendProgress, onReceiveProgress: onReceiveProgress, ); - return DioHttpResponse(response); + return DioResponse(response); } @override - Future put( - String path, { - dynamic data, - Map? queryParameters, - Map? headers, - ProgressCallback? onSendProgress, - ProgressCallback? onReceiveProgress, - }) async { - final response = await _dio.put( + Future> put( + String path, { + dynamic data, + Map? queryParameters, + Map? headers, + ProgressCallback? onSendProgress, + ProgressCallback? onReceiveProgress, + }) async { + final response = await _dio.put( path, data: data, queryParameters: queryParameters, @@ -76,51 +72,51 @@ class DioRemote implements IRemote, IHttpClient { onSendProgress: onSendProgress, onReceiveProgress: onReceiveProgress, ); - return DioHttpResponse(response); + return DioResponse(response); } @override - Future delete( - String path, { - dynamic data, - Map? queryParameters, - Map? headers, - }) async { - final response = await _dio.delete( + Future> delete( + String path, { + dynamic data, + Map? queryParameters, + Map? headers, + }) async { + final response = await _dio.delete( path, data: data, queryParameters: queryParameters, options: Options(headers: headers), ); - return DioHttpResponse(response); + return DioResponse(response); } @override - Future> download( - String url, { - ProgressCallback? onReceiveProgress, - }) async { + Future> download( + String url, { + ProgressCallback? onReceiveProgress, + }) async { final response = await _dio.get( url, options: Options(responseType: ResponseType.bytes), onReceiveProgress: onReceiveProgress, ); - return DioHttpResponse(response); + return DioResponse(response); } @override - Future upload( - String path, { - required IFormData formData, - Map? headers, - ProgressCallback? onSendProgress, - }) async { - final response = await _dio.post( + Future> upload( + String path, { + required IFormData formData, + Map? headers, + ProgressCallback? onSendProgress, + }) async { + final response = await _dio.post( path, data: (formData as DioFormData).raw, options: Options(headers: headers, contentType: 'multipart/form-data'), onSendProgress: onSendProgress, ); - return DioHttpResponse(response); + return DioResponse(response); } } diff --git a/packages/core/lib/infrastructure/remote/dio_response.dart b/packages/core/lib/infrastructure/remote/dio_response.dart index 0a42eea..97a14c3 100644 --- a/packages/core/lib/infrastructure/remote/dio_response.dart +++ b/packages/core/lib/infrastructure/remote/dio_response.dart @@ -1,10 +1,10 @@ import 'interfaces/i_http_response.dart'; import 'package:dio/dio.dart'; -class DioHttpResponse implements IHttpResponse { +class DioResponse implements IHttpResponse { final Response _response; - DioHttpResponse(this._response); + DioResponse(this._response); @override T? get data => _response.data; @@ -13,8 +13,7 @@ class DioHttpResponse implements IHttpResponse { int get statusCode => _response.statusCode ?? 0; @override - Map> get headers => - _response.headers.map.map((k, v) => MapEntry(k, v)); + Map? get headers => _response.headers.map; @override bool get isSuccessful => statusCode >= 200 && statusCode < 300; diff --git a/packages/core/lib/infrastructure/remote/interfaces/i_http_client.dart b/packages/core/lib/infrastructure/remote/interfaces/i_http_client.dart index 253130a..9550c18 100644 --- a/packages/core/lib/infrastructure/remote/interfaces/i_http_client.dart +++ b/packages/core/lib/infrastructure/remote/interfaces/i_http_client.dart @@ -1,51 +1,54 @@ + import 'dart:typed_data'; import 'package:dio/dio.dart'; -import 'package:rasadyar_core/infrastructure/remote/dio_form_data.dart'; -import 'i_http_response.dart'; import 'i_form_data.dart'; +import 'i_http_response.dart'; abstract class IHttpClient { - Future get( + Future init(); + + Future> get( String path, { Map? queryParameters, Map? headers, ProgressCallback? onReceiveProgress, }); - Future post( - String path, { - dynamic data, - Map? queryParameters, - Map? headers, - ProgressCallback? onSendProgress, - ProgressCallback? onReceiveProgress, - }); - Future put( - String path, { - dynamic data, - Map? queryParameters, - Map? headers, - ProgressCallback? onSendProgress, - ProgressCallback? onReceiveProgress, - }); + Future> post( + String path, { + dynamic data, + Map? queryParameters, + Map? headers, + ProgressCallback? onSendProgress, + ProgressCallback? onReceiveProgress, + }); - Future delete( - String path, { - dynamic data, - Map? queryParameters, - Map? headers, - }); + Future> put( + String path, { + dynamic data, + Map? queryParameters, + Map? headers, + ProgressCallback? onSendProgress, + ProgressCallback? onReceiveProgress, + }); - Future> download( - String url, { - ProgressCallback? onReceiveProgress, - }); + Future> delete( + String path, { + dynamic data, + Map? queryParameters, + Map? headers, + }); - Future upload( - String path, { - required IFormData formData, - Map? headers, - ProgressCallback? onSendProgress, - }); + Future> download( + String url, { + ProgressCallback? onReceiveProgress, + }); + + Future> upload( + String path, { + required IFormData formData, + Map? headers, + ProgressCallback? onSendProgress, + }); } diff --git a/packages/core/lib/infrastructure/remote/interfaces/i_http_response.dart b/packages/core/lib/infrastructure/remote/interfaces/i_http_response.dart index 14dd20a..461146a 100644 --- a/packages/core/lib/infrastructure/remote/interfaces/i_http_response.dart +++ b/packages/core/lib/infrastructure/remote/interfaces/i_http_response.dart @@ -1,6 +1,6 @@ abstract class IHttpResponse { T? get data; int get statusCode; - Map> get headers; + Map? get headers; bool get isSuccessful; } diff --git a/packages/core/lib/presentation/widget/buttons/outline_elevated_icon.dart b/packages/core/lib/presentation/widget/buttons/outline_elevated_icon.dart index 3060019..7afef0e 100644 --- a/packages/core/lib/presentation/widget/buttons/outline_elevated_icon.dart +++ b/packages/core/lib/presentation/widget/buttons/outline_elevated_icon.dart @@ -1,7 +1,5 @@ import 'package:flutter/material.dart'; import 'package:rasadyar_core/core.dart'; -import 'package:rasadyar_core/data/utils.dart'; -import 'package:rasadyar_core/presentation/utils/color_utils.dart'; class ROutlinedElevatedIcon extends StatefulWidget { ROutlinedElevatedIcon({ @@ -127,6 +125,5 @@ Color? _getIconColor(BuildContext context) { } return Colors.blue; }).resolve({}); - fLog(ss); return ss; } diff --git a/packages/core/lib/presentation/widget/draggable_bottom_sheet/draggable_bottom_sheet.dart b/packages/core/lib/presentation/widget/draggable_bottom_sheet/draggable_bottom_sheet.dart index b430ad6..aa74dbc 100644 --- a/packages/core/lib/presentation/widget/draggable_bottom_sheet/draggable_bottom_sheet.dart +++ b/packages/core/lib/presentation/widget/draggable_bottom_sheet/draggable_bottom_sheet.dart @@ -1,7 +1,7 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; -import 'package:rasadyar_core/data/utils.dart'; + import 'package:rasadyar_core/presentation/common/app_color.dart'; import 'package:rasadyar_core/presentation/widget/draggable_bottom_sheet/draggable_bottom_sheet_controller.dart'; import 'package:flutter/material.dart'; diff --git a/packages/core/lib/utils/README.md b/packages/core/lib/utils/README.md new file mode 100644 index 0000000..c3df897 --- /dev/null +++ b/packages/core/lib/utils/README.md @@ -0,0 +1,6 @@ +```markdown +در معماری DDD (Domain-Driven Design)، فایل‌های utils یا همان ابزارهای کمکی (utility/helpers) معمولاً: + +✅ در هیچ لایه‌ی خاصی قرار نمی‌گیرند، +❗ بلکه به‌صورت cross-cutting concerns یا "مسائل متقاطع" در نظر گرفته می‌شن، چون در همه‌ی لایه‌ها ممکنه استفاده بشن. +``` \ No newline at end of file diff --git a/packages/core/lib/data/utils.dart b/packages/core/lib/utils/logger_utils.dart similarity index 100% rename from packages/core/lib/data/utils.dart rename to packages/core/lib/utils/logger_utils.dart diff --git a/packages/core/lib/utils/safe_call_utils.dart b/packages/core/lib/utils/safe_call_utils.dart new file mode 100644 index 0000000..116101f --- /dev/null +++ b/packages/core/lib/utils/safe_call_utils.dart @@ -0,0 +1,71 @@ +import 'package:flutter/foundation.dart'; + +typedef AsyncCallback = Future Function(); +typedef ErrorCallback = void Function(dynamic error, StackTrace? stackTrace); +typedef VoidCallback = void Function(); + +// تعریف دقیق تابع safeCall +Future safeCall({ + required AsyncCallback call, + Function(T result)? onSuccess, + ErrorCallback? onError, + VoidCallback? onComplete, + bool showLoading = false, + bool showError = false, + bool showSuccess = false, + bool showToast = false, + bool showSnackBar = false, + Function()? onShowLoading, + Function()? onHideLoading, + Function()? onShowSuccessMessage, + Function()? onShowErrorMessage, +}) async { + try { + if (showLoading) { + (onShowLoading ?? _defaultShowLoading)(); + } + + final result = await call(); + + if (showSuccess) { + (onShowSuccessMessage ?? _defaultShowSuccessMessage)(); + } + + onSuccess?.call(result); + return result; // اضافه کردن بازگشت نتیجه + + } catch (error, stackTrace) { + if (showError) { + (onShowErrorMessage ?? _defaultShowErrorMessage)(); + } + + onError?.call(error, stackTrace); + if (kDebugMode) { + print('safeCall error: $error\n$stackTrace'); + } + + return null; + } finally { + if (showLoading) { + (onHideLoading ?? _defaultHideLoading)(); + } + + onComplete?.call(); + } +} + +void _defaultShowLoading() { + // پیاده‌سازی پیش‌فرض +} + +void _defaultHideLoading() { + // پیاده‌سازی پیش‌فرض +} + +void _defaultShowSuccessMessage() { + // پیاده‌سازی پیش‌فرض +} + +void _defaultShowErrorMessage() { + // پیاده‌سازی پیش‌فرض +} \ No newline at end of file diff --git a/pubspec.lock b/pubspec.lock index 9434345..711330d 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1,6 +1,22 @@ # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: + _fe_analyzer_shared: + dependency: transitive + description: + name: _fe_analyzer_shared + sha256: e55636ed79578b9abca5fecf9437947798f5ef7456308b5cb85720b793eac92f + url: "https://pub.dev" + source: hosted + version: "82.0.0" + analyzer: + dependency: transitive + description: + name: analyzer + sha256: "904ae5bb474d32c38fb9482e2d925d5454cda04ddd0e55d2e6826bc72f6ba8c0" + url: "https://pub.dev" + source: hosted + version: "7.4.5" args: dependency: transitive description: @@ -25,6 +41,70 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.2" + build: + dependency: transitive + description: + name: build + sha256: cef23f1eda9b57566c81e2133d196f8e3df48f244b317368d65c5943d91148f0 + url: "https://pub.dev" + source: hosted + version: "2.4.2" + build_config: + dependency: transitive + description: + name: build_config + sha256: "4ae2de3e1e67ea270081eaee972e1bd8f027d459f249e0f1186730784c2e7e33" + url: "https://pub.dev" + source: hosted + version: "1.1.2" + build_daemon: + dependency: transitive + description: + name: build_daemon + sha256: "8e928697a82be082206edb0b9c99c5a4ad6bc31c9e9b8b2f291ae65cd4a25daa" + url: "https://pub.dev" + source: hosted + version: "4.0.4" + build_resolvers: + dependency: transitive + description: + name: build_resolvers + sha256: b9e4fda21d846e192628e7a4f6deda6888c36b5b69ba02ff291a01fd529140f0 + url: "https://pub.dev" + source: hosted + version: "2.4.4" + build_runner: + dependency: "direct dev" + description: + name: build_runner + sha256: "058fe9dce1de7d69c4b84fada934df3e0153dd000758c4d65964d0166779aa99" + url: "https://pub.dev" + source: hosted + version: "2.4.15" + build_runner_core: + dependency: transitive + description: + name: build_runner_core + sha256: "22e3aa1c80e0ada3722fe5b63fd43d9c8990759d0a2cf489c8c5d7b2bdebc021" + url: "https://pub.dev" + source: hosted + version: "8.0.0" + built_collection: + dependency: transitive + description: + name: built_collection + sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100" + url: "https://pub.dev" + source: hosted + version: "5.1.1" + built_value: + dependency: transitive + description: + name: built_value + sha256: ea90e81dc4a25a043d9bee692d20ed6d1c4a1662a28c03a96417446c093ed6b4 + url: "https://pub.dev" + source: hosted + version: "8.9.5" characters: dependency: transitive description: @@ -33,6 +113,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.4.0" + checked_yaml: + dependency: transitive + description: + name: checked_yaml + sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff + url: "https://pub.dev" + source: hosted + version: "2.0.3" clock: dependency: transitive description: @@ -41,6 +129,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.2" + code_builder: + dependency: transitive + description: + name: code_builder + sha256: "0ec10bf4a89e4c613960bf1e8b42c64127021740fb21640c29c909826a5eea3e" + url: "https://pub.dev" + source: hosted + version: "4.10.1" collection: dependency: transitive description: @@ -49,6 +145,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.19.1" + convert: + dependency: transitive + description: + name: convert + sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68 + url: "https://pub.dev" + source: hosted + version: "3.1.2" crypto: dependency: transitive description: @@ -73,14 +177,38 @@ packages: url: "https://pub.dev" source: hosted version: "1.2.0" - dartx: + dart_style: dependency: transitive + description: + name: dart_style + sha256: "27eb0ae77836989a3bc541ce55595e8ceee0992807f14511552a898ddd0d88ac" + url: "https://pub.dev" + source: hosted + version: "3.0.1" + dartx: + dependency: "direct main" description: name: dartx sha256: "8b25435617027257d43e6508b5fe061012880ddfdaa75a71d607c3de2a13d244" url: "https://pub.dev" source: hosted version: "1.2.0" + dio: + dependency: "direct main" + description: + name: dio + sha256: "253a18bbd4851fecba42f7343a1df3a9a4c1d31a2c1b37e221086b4fa8c8dbc9" + url: "https://pub.dev" + source: hosted + version: "5.8.0+1" + dio_web_adapter: + dependency: transitive + description: + name: dio_web_adapter + sha256: "7586e476d70caecaf1686d21eee7247ea43ef5c345eab9e0cc3583ff13378d78" + url: "https://pub.dev" + source: hosted + version: "2.1.1" fake_async: dependency: transitive description: @@ -97,6 +225,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.4" + file: + dependency: transitive + description: + name: file + sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4 + url: "https://pub.dev" + source: hosted + version: "7.0.1" fixnum: dependency: transitive description: @@ -124,7 +260,7 @@ packages: source: sdk version: "0.0.0" flutter_map: - dependency: transitive + dependency: "direct main" description: name: flutter_map sha256: f7d0379477274f323c3f3bc12d369a2b42eb86d1e7bd2970ae1ea3cff782449a @@ -132,7 +268,7 @@ packages: source: hosted version: "8.1.1" flutter_map_animations: - dependency: transitive + dependency: "direct main" description: name: flutter_map_animations sha256: bf583863561861aaaf4854ae7ed8940d79bea7d32918bf7a85d309b25235a09e @@ -140,7 +276,7 @@ packages: source: hosted version: "0.9.0" flutter_rating_bar: - dependency: transitive + dependency: "direct main" description: name: flutter_rating_bar sha256: d2af03469eac832c591a1eba47c91ecc871fe5708e69967073c043b2d775ed93 @@ -148,7 +284,7 @@ packages: source: hosted version: "4.0.1" flutter_slidable: - dependency: transitive + dependency: "direct main" description: name: flutter_slidable sha256: ab7dbb16f783307c9d7762ede2593ce32c220ba2ba0fd540a3db8e9a3acba71a @@ -156,7 +292,7 @@ packages: source: hosted version: "4.0.0" flutter_svg: - dependency: transitive + dependency: "direct main" description: name: flutter_svg sha256: d44bf546b13025ec7353091516f6881f1d4c633993cb109c3916c3a0159dadf1 @@ -174,23 +310,39 @@ packages: source: sdk version: "0.0.0" font_awesome_flutter: - dependency: transitive + dependency: "direct main" description: name: font_awesome_flutter sha256: d3a89184101baec7f4600d58840a764d2ef760fe1c5a20ef9e6b0e9b24a07a3a url: "https://pub.dev" source: hosted version: "10.8.0" + freezed: + dependency: "direct dev" + description: + name: freezed + sha256: "6022db4c7bfa626841b2a10f34dd1e1b68e8f8f9650db6112dcdeeca45ca793c" + url: "https://pub.dev" + source: hosted + version: "3.0.6" freezed_annotation: - dependency: transitive + dependency: "direct main" description: name: freezed_annotation sha256: c87ff004c8aa6af2d531668b46a4ea379f7191dc6dfa066acd53d506da6e044b url: "https://pub.dev" source: hosted version: "3.0.0" - geolocator: + frontend_server_client: dependency: transitive + description: + name: frontend_server_client + sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694 + url: "https://pub.dev" + source: hosted + version: "4.0.0" + geolocator: + dependency: "direct main" description: name: geolocator sha256: e7ebfa04ce451daf39b5499108c973189a71a919aa53c1204effda1c5b93b822 @@ -238,7 +390,7 @@ packages: source: hosted version: "0.2.5" get: - dependency: transitive + dependency: "direct main" description: name: get sha256: c79eeb4339f1f3deffd9ec912f8a923834bec55f7b49c9e882b8fef2c139d425 @@ -246,15 +398,39 @@ packages: source: hosted version: "4.7.2" get_it: - dependency: transitive + dependency: "direct main" description: name: get_it sha256: f126a3e286b7f5b578bf436d5592968706c4c1de28a228b870ce375d9f743103 url: "https://pub.dev" source: hosted version: "8.0.3" - hive_ce: + get_test: + dependency: "direct dev" + description: + name: get_test + sha256: "558c39cb35fb37bd501f337dc143de60a4314d5ef3b75f4b0551d6741634995b" + url: "https://pub.dev" + source: hosted + version: "4.0.1" + glob: dependency: transitive + description: + name: glob + sha256: c3f1ee72c96f8f78935e18aa8cecced9ab132419e8625dc187e1c2408efc20de + url: "https://pub.dev" + source: hosted + version: "2.1.3" + graphs: + dependency: transitive + description: + name: graphs + sha256: "741bbf84165310a68ff28fe9e727332eef1407342fca52759cb21ad8177bb8d0" + url: "https://pub.dev" + source: hosted + version: "2.3.2" + hive_ce: + dependency: "direct main" description: name: hive_ce sha256: fdc19336f03ecd01dbc1d1afe69d87ed9336bdf996c5374a25f9c21ef5f2989e @@ -262,21 +438,37 @@ packages: source: hosted version: "2.11.1" hive_ce_flutter: - dependency: transitive + dependency: "direct main" description: name: hive_ce_flutter sha256: "5eaf57a5af980eda63ddaa8c34d618dc446f76fe79410f2a283522744291c05c" url: "https://pub.dev" source: hosted version: "2.3.0" + hive_ce_generator: + dependency: "direct dev" + description: + name: hive_ce_generator + sha256: "84940c2fd3cb1d1eb318892cdb666bc0b8023f365f28aefe09b9e5a7222bc740" + url: "https://pub.dev" + source: hosted + version: "1.9.1" http: dependency: transitive description: name: http - sha256: fe7ab022b76f3034adc518fb6ea04a82387620e19977665ea18d30a1cf43442f + sha256: "2c11f3f94c687ee9bad77c171151672986360b2b001d109814ee7140b2cf261b" url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.4.0" + http_multi_server: + dependency: transitive + description: + name: http_multi_server + sha256: aa6199f908078bb1c5efb8d8638d4ae191aac11b311132c3ef48ce352fb52ef8 + url: "https://pub.dev" + source: hosted + version: "3.2.2" http_parser: dependency: transitive description: @@ -285,21 +477,22 @@ packages: url: "https://pub.dev" source: hosted version: "4.1.2" - inspection: - dependency: "direct main" - description: - path: "features/inspection" - relative: true - source: path - version: "1.0.1" intl: - dependency: transitive + dependency: "direct main" description: name: intl sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf url: "https://pub.dev" source: hosted version: "0.19.0" + io: + dependency: transitive + description: + name: io + sha256: dfd5a80599cf0165756e3181807ed3e77daf6dd4137caaad72d0b7931597650b + url: "https://pub.dev" + source: hosted + version: "1.0.5" isolate_channel: dependency: transitive description: @@ -308,16 +501,32 @@ packages: url: "https://pub.dev" source: hosted version: "0.2.2" - json_annotation: + js: dependency: transitive + description: + name: js + sha256: "53385261521cc4a0c4658fd0ad07a7d14591cf8fc33abbceae306ddb974888dc" + url: "https://pub.dev" + source: hosted + version: "0.7.2" + json_annotation: + dependency: "direct main" description: name: json_annotation sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" url: "https://pub.dev" source: hosted version: "4.9.0" + json_serializable: + dependency: "direct dev" + description: + name: json_serializable + sha256: c50ef5fc083d5b5e12eef489503ba3bf5ccc899e487d691584699b4bdefeea8c + url: "https://pub.dev" + source: hosted + version: "6.9.5" latlong2: - dependency: transitive + dependency: "direct main" description: name: latlong2 sha256: "98227922caf49e6056f91b6c56945ea1c7b166f28ffcd5fb8e72fc0b453cc8fe" @@ -365,13 +574,21 @@ packages: source: hosted version: "1.0.1" logger: - dependency: transitive + dependency: "direct main" description: name: logger sha256: be4b23575aac7ebf01f225a241eb7f6b5641eeaf43c6a8613510fc2f8cf187d1 url: "https://pub.dev" source: hosted version: "2.5.0" + logging: + dependency: transitive + description: + name: logging + sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61 + url: "https://pub.dev" + source: hosted + version: "1.3.0" matcher: dependency: transitive description: @@ -404,6 +621,38 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.0" + mime: + dependency: transitive + description: + name: mime + sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + mockito: + dependency: transitive + description: + name: mockito + sha256: "4546eac99e8967ea91bae633d2ca7698181d008e95fa4627330cf903d573277a" + url: "https://pub.dev" + source: hosted + version: "5.4.6" + mocktail: + dependency: "direct dev" + description: + name: mocktail + sha256: "890df3f9688106f25755f26b1c60589a92b3ab91a22b8b224947ad041bf172d8" + url: "https://pub.dev" + source: hosted + version: "1.0.4" + package_config: + dependency: transitive + description: + name: package_config + sha256: f096c55ebb7deb7e384101542bfba8c52696c1b56fca2eb62827989ef2353bbc + url: "https://pub.dev" + source: hosted + version: "2.2.0" path: dependency: transitive description: @@ -469,7 +718,7 @@ packages: source: hosted version: "2.3.0" permission_handler: - dependency: transitive + dependency: "direct main" description: name: permission_handler sha256: "2d070d8684b68efb580a5997eb62f675e8a885ef0be6e754fb9ef489c177470f" @@ -517,7 +766,7 @@ packages: source: hosted version: "0.2.1" persian_datetime_picker: - dependency: transitive + dependency: "direct main" description: name: persian_datetime_picker sha256: "7ccbfd3a68dc89d405550f624e9fa590c914fed2aa2d48973c4f4400baab2e06" @@ -556,6 +805,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.1" + pool: + dependency: transitive + description: + name: pool + sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" + url: "https://pub.dev" + source: hosted + version: "1.5.1" + pretty_dio_logger: + dependency: "direct main" + description: + name: pretty_dio_logger + sha256: "36f2101299786d567869493e2f5731de61ce130faa14679473b26905a92b6407" + url: "https://pub.dev" + source: hosted + version: "1.4.0" proj4dart: dependency: transitive description: @@ -564,6 +829,22 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.0" + pub_semver: + dependency: transitive + description: + name: pub_semver + sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585" + url: "https://pub.dev" + source: hosted + version: "2.2.0" + pubspec_parse: + dependency: transitive + description: + name: pubspec_parse + sha256: "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082" + url: "https://pub.dev" + source: hosted + version: "1.5.0" rasadyar_core: dependency: "direct main" description: @@ -572,7 +853,7 @@ packages: source: path version: "1.0.0+1" rxdart: - dependency: transitive + dependency: "direct main" description: name: rxdart sha256: "5c3004a4a8dbb94bd4bf5412a4def4acdaa12e12f269737a5751369e12d1a962" @@ -587,11 +868,43 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.0" + shelf: + dependency: transitive + description: + name: shelf + sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12 + url: "https://pub.dev" + source: hosted + version: "1.4.2" + shelf_web_socket: + dependency: transitive + description: + name: shelf_web_socket + sha256: "3632775c8e90d6c9712f883e633716432a27758216dfb61bd86a8321c0580925" + url: "https://pub.dev" + source: hosted + version: "3.0.0" sky_engine: dependency: transitive description: flutter source: sdk version: "0.0.0" + source_gen: + dependency: transitive + description: + name: source_gen + sha256: "35c8150ece9e8c8d263337a265153c3329667640850b9304861faea59fc98f6b" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + source_helper: + dependency: transitive + description: + name: source_helper + sha256: "86d247119aedce8e63f4751bd9626fc9613255935558447569ad42f9f5b48b3c" + url: "https://pub.dev" + source: hosted + version: "1.3.5" source_span: dependency: transitive description: @@ -624,6 +937,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.4" + stream_transform: + dependency: transitive + description: + name: stream_transform + sha256: ad47125e588cfd37a9a7f86c7d6356dde8dfe89d071d293f80ca9e9273a33871 + url: "https://pub.dev" + source: hosted + version: "2.1.1" string_scanner: dependency: transitive description: @@ -656,6 +977,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.5" + timing: + dependency: transitive + description: + name: timing + sha256: "62ee18aca144e4a9f29d212f5a4c6a053be252b895ab14b5821996cff4ed90fe" + url: "https://pub.dev" + source: hosted + version: "1.0.2" typed_data: dependency: transitive description: @@ -720,6 +1049,14 @@ packages: url: "https://pub.dev" source: hosted version: "14.3.1" + watcher: + dependency: transitive + description: + name: watcher + sha256: "69da27e49efa56a15f8afe8f4438c4ec02eff0a117df1b22ea4aad194fe1c104" + url: "https://pub.dev" + source: hosted + version: "1.1.1" web: dependency: transitive description: @@ -728,6 +1065,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.1" + web_socket: + dependency: transitive + description: + name: web_socket + sha256: "34d64019aa8e36bf9842ac014bb5d2f5586ca73df5e4d9bf5c936975cae6982c" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + web_socket_channel: + dependency: transitive + description: + name: web_socket_channel + sha256: d645757fb0f4773d602444000a8131ff5d48c9e47adfe9772652dd1a4f2d45c8 + url: "https://pub.dev" + source: hosted + version: "3.0.3" wkt_parser: dependency: transitive description: @@ -752,6 +1105,22 @@ packages: url: "https://pub.dev" source: hosted version: "6.5.0" + yaml: + dependency: transitive + description: + name: yaml + sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce + url: "https://pub.dev" + source: hosted + version: "3.1.3" + yaml_writer: + dependency: transitive + description: + name: yaml_writer + sha256: "69651cd7238411179ac32079937d4aa9a2970150d6b2ae2c6fe6de09402a5dc5" + url: "https://pub.dev" + source: hosted + version: "2.1.0" sdks: dart: ">=3.7.2 <4.0.0" flutter: ">=3.27.0" diff --git a/pubspec.yaml b/pubspec.yaml index 200f78e..4ad2865 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -10,10 +10,57 @@ dependencies: flutter: sdk: flutter - cupertino_icons: ^1.0.8 - inspection: - path: ./features/inspection + #UI + cupertino_icons: ^1.0.8 + flutter_slidable: ^4.0.0 + flutter_rating_bar: ^4.0.1 + + ##Log + logger: ^2.5.0 + + ## reactive + dartx: ^1.2.0 + rxdart: ^0.28.0 + + ## local storage + hive_ce: ^2.11.1 + hive_ce_flutter: ^2.3.0 + + ##code generation + freezed_annotation: ^3.0.0 + json_annotation: ^4.9.0 + + + #SVG + flutter_svg: ^2.0.17 + font_awesome_flutter: ^10.8.0 + + ##state manger + get: ^4.7.2 + + ##Di + get_it: ^8.0.3 + + #other + permission_handler: ^12.0.0+1 + persian_datetime_picker: ^3.1.0 + + #L10N tools + intl: ^0.19.0 + + + #Map + flutter_map: ^8.1.1 + flutter_map_animations: ^0.9.0 + #location + latlong2: ^0.9.1 + geolocator: ^14.0.0 + #network + dio: ^5.8.0+1 + + #networkLogger + pretty_dio_logger: ^1.4.0 rasadyar_core: path: ./packages/core @@ -24,6 +71,17 @@ dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^5.0.0 + ##code generation + build_runner: ^2.4.15 + hive_ce_generator: ^1.9.1 + freezed: ^3.0.6 + json_serializable: ^6.9.4 + + ##test + mocktail: ^1.0.4 + get_test: ^4.0.1 + + flutter: