diff --git a/assets/icons/bg_auth.svg b/assets/icons/bg_auth.svg
new file mode 100644
index 0000000..3863899
--- /dev/null
+++ b/assets/icons/bg_auth.svg
@@ -0,0 +1,57 @@
+
diff --git a/assets/icons/chicken_marker_location.svg b/assets/icons/chicken_marker_location.svg
new file mode 100644
index 0000000..6d79658
--- /dev/null
+++ b/assets/icons/chicken_marker_location.svg
@@ -0,0 +1,116 @@
+
+
\ No newline at end of file
diff --git a/lib/infrastructure/di/di.dart b/lib/infrastructure/di/di.dart
index fdf6b7a..9a5a287 100644
--- a/lib/infrastructure/di/di.dart
+++ b/lib/infrastructure/di/di.dart
@@ -1,5 +1,3 @@
-
-import 'package:rasadyar_chicken/data/di/chicken_di.dart';
import 'package:rasadyar_core/core.dart';
final di = GetIt.instance;
@@ -7,7 +5,3 @@ final di = GetIt.instance;
Future setupPreInjection() async {
await setupAllCoreProvider();
}
-
-Future setupInjection() async {
- await setupChickenDI();
-}
diff --git a/lib/infrastructure/service/app_navigation_observer.dart b/lib/infrastructure/service/app_navigation_observer.dart
index 9ad7b38..3cebc64 100644
--- a/lib/infrastructure/service/app_navigation_observer.dart
+++ b/lib/infrastructure/service/app_navigation_observer.dart
@@ -1,7 +1,9 @@
import 'package:flutter/material.dart';
-import 'package:rasadyar_app/infrastructure/di/di.dart';
import 'package:rasadyar_chicken/chicken.dart';
+import 'package:rasadyar_chicken/data/di/chicken_di.dart';
import 'package:rasadyar_core/core.dart';
+import 'package:rasadyar_inspection/injection/inspection_di.dart';
+import 'package:rasadyar_inspection/inspection.dart';
class CustomNavigationObserver extends NavigatorObserver {
bool _isWorkDone = false;
@@ -16,7 +18,11 @@ class CustomNavigationObserver extends NavigatorObserver {
final routeName = route.settings.name;
if (!_isWorkDone && routeName == ChickenRoutes.init) {
_isWorkDone = true;
- await setupInjection();
+ setupChickenDI();
+ } else if (!_isWorkDone && (routeName == InspectionRoutes.init || routeName == InspectionRoutes.auth)) {
+ _isWorkDone = true;
+
+ await setupInspectionDI();
}
tLog('CustomNavigationObserver: didPush - $routeName');
}
diff --git a/lib/main.dart b/lib/main.dart
index ec1cee0..09db360 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -14,6 +14,7 @@ Future main() async {
await Get.find().init();
Get.put(AppAuthRouteResolver());
Get.put(AuthMiddleware());
+
runApp(MyApp());
// runApp(DevicePreview(builder: (context) => ForDevicePreview(),));
diff --git a/lib/presentation/pages/modules/logic.dart b/lib/presentation/pages/modules/logic.dart
index 628b7a8..d35b096 100644
--- a/lib/presentation/pages/modules/logic.dart
+++ b/lib/presentation/pages/modules/logic.dart
@@ -1,28 +1,28 @@
-
import 'package:rasadyar_core/core.dart';
class ModulesLogic extends GetxController {
+ TokenStorageService tokenService = Get.find();
- List moduleList=[
+ List moduleList = [
ModuleModel(title: 'بازرسی', icon: Assets.icons.inspection.path, module: Module.inspection),
ModuleModel(title: 'دام', icon: Assets.icons.liveStock.path, module: Module.liveStocks),
ModuleModel(title: 'مرغ', icon: Assets.icons.liveStock.path, module: Module.chicken),
];
-
RxnInt selectedIndex = RxnInt(null);
-
@override
void onReady() {
super.onReady();
}
-
-
-
@override
void onClose() {
super.onClose();
}
+
+ void saveModule(Module module) {
+ tokenService.saveModule(module);
+ tokenService.appModule.value = module;
+ }
}
diff --git a/lib/presentation/pages/modules/view.dart b/lib/presentation/pages/modules/view.dart
index 464b741..b1d1bbf 100644
--- a/lib/presentation/pages/modules/view.dart
+++ b/lib/presentation/pages/modules/view.dart
@@ -25,6 +25,9 @@ class ModulesPage extends GetView {
icon: module.icon,
onTap: () {
controller.selectedIndex.value = index;
+ controller.saveModule(module.module);
+
+ // Navigate to the appropriate route based on the selected module
switch (module.module) {
case Module.inspection:
Get.toNamed(InspectionRoutes.init);
diff --git a/lib/presentation/pages/splash/logic.dart b/lib/presentation/pages/splash/logic.dart
index 1b62220..a9f1a8d 100644
--- a/lib/presentation/pages/splash/logic.dart
+++ b/lib/presentation/pages/splash/logic.dart
@@ -152,7 +152,7 @@ class SplashLogic extends GetxController with GetTickerProviderStateMixin {
try {
final isUpdateNeeded = await checkVersion();
if (isUpdateNeeded) return;
-
+ tokenService.getModule();
final module = tokenService.appModule.value;
final target = getTargetPage(module);
Get.offAndToNamed(target);
diff --git a/packages/core/lib/data/model/request/login_request/login_request_model.dart b/packages/chicken/lib/data/models/request/login_request/login_request_model.dart
similarity index 100%
rename from packages/core/lib/data/model/request/login_request/login_request_model.dart
rename to packages/chicken/lib/data/models/request/login_request/login_request_model.dart
diff --git a/packages/core/lib/data/model/request/login_request/login_request_model.freezed.dart b/packages/chicken/lib/data/models/request/login_request/login_request_model.freezed.dart
similarity index 100%
rename from packages/core/lib/data/model/request/login_request/login_request_model.freezed.dart
rename to packages/chicken/lib/data/models/request/login_request/login_request_model.freezed.dart
diff --git a/packages/core/lib/data/model/request/login_request/login_request_model.g.dart b/packages/chicken/lib/data/models/request/login_request/login_request_model.g.dart
similarity index 77%
rename from packages/core/lib/data/model/request/login_request/login_request_model.g.dart
rename to packages/chicken/lib/data/models/request/login_request/login_request_model.g.dart
index f10c8a6..4504142 100644
--- a/packages/core/lib/data/model/request/login_request/login_request_model.g.dart
+++ b/packages/chicken/lib/data/models/request/login_request/login_request_model.g.dart
@@ -10,14 +10,14 @@ _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?,
+ captchaCode: json['captcha_code'] as String?,
+ captchaKey: json['captcha_key'] as String?,
);
Map _$LoginRequestModelToJson(_LoginRequestModel instance) =>
{
'username': instance.username,
'password': instance.password,
- 'captchaCode': instance.captchaCode,
- 'captchaKey': instance.captchaKey,
+ 'captcha_code': instance.captchaCode,
+ 'captcha_key': instance.captchaKey,
};
diff --git a/packages/core/lib/data/model/response/auth/auth_response_model.dart b/packages/chicken/lib/data/models/response/auth/auth_response_model.dart
similarity index 100%
rename from packages/core/lib/data/model/response/auth/auth_response_model.dart
rename to packages/chicken/lib/data/models/response/auth/auth_response_model.dart
diff --git a/packages/core/lib/data/model/response/auth/auth_response_model.freezed.dart b/packages/chicken/lib/data/models/response/auth/auth_response_model.freezed.dart
similarity index 100%
rename from packages/core/lib/data/model/response/auth/auth_response_model.freezed.dart
rename to packages/chicken/lib/data/models/response/auth/auth_response_model.freezed.dart
diff --git a/packages/core/lib/data/model/response/auth/auth_response_model.g.dart b/packages/chicken/lib/data/models/response/auth/auth_response_model.g.dart
similarity index 88%
rename from packages/core/lib/data/model/response/auth/auth_response_model.g.dart
rename to packages/chicken/lib/data/models/response/auth/auth_response_model.g.dart
index 642fa02..dc5d66d 100644
--- a/packages/core/lib/data/model/response/auth/auth_response_model.g.dart
+++ b/packages/chicken/lib/data/models/response/auth/auth_response_model.g.dart
@@ -10,12 +10,12 @@ _AuthResponseModel _$AuthResponseModelFromJson(Map json) =>
_AuthResponseModel(
refresh: json['refresh'] as String?,
access: json['access'] as String?,
- otpStatus: json['otpStatus'] as bool?,
+ otpStatus: json['otp_status'] as bool?,
);
Map _$AuthResponseModelToJson(_AuthResponseModel instance) =>
{
'refresh': instance.refresh,
'access': instance.access,
- 'otpStatus': instance.otpStatus,
+ 'otp_status': instance.otpStatus,
};
diff --git a/packages/core/lib/data/model/response/captcha/captcha_response_model.dart b/packages/chicken/lib/data/models/response/captcha/captcha_response_model.dart
similarity index 100%
rename from packages/core/lib/data/model/response/captcha/captcha_response_model.dart
rename to packages/chicken/lib/data/models/response/captcha/captcha_response_model.dart
diff --git a/packages/core/lib/data/model/response/captcha/captcha_response_model.freezed.dart b/packages/chicken/lib/data/models/response/captcha/captcha_response_model.freezed.dart
similarity index 100%
rename from packages/core/lib/data/model/response/captcha/captcha_response_model.freezed.dart
rename to packages/chicken/lib/data/models/response/captcha/captcha_response_model.freezed.dart
diff --git a/packages/core/lib/data/model/response/captcha/captcha_response_model.g.dart b/packages/chicken/lib/data/models/response/captcha/captcha_response_model.g.dart
similarity index 59%
rename from packages/core/lib/data/model/response/captcha/captcha_response_model.g.dart
rename to packages/chicken/lib/data/models/response/captcha/captcha_response_model.g.dart
index a0ffdcb..8d69248 100644
--- a/packages/core/lib/data/model/response/captcha/captcha_response_model.g.dart
+++ b/packages/chicken/lib/data/models/response/captcha/captcha_response_model.g.dart
@@ -9,17 +9,17 @@ part of 'captcha_response_model.dart';
_CaptchaResponseModel _$CaptchaResponseModelFromJson(
Map json,
) => _CaptchaResponseModel(
- captchaKey: json['captchaKey'] as String?,
- captchaImage: json['captchaImage'] as String?,
- imageType: json['imageType'] as String?,
- imageDecode: json['imageDecode'] as String?,
+ captchaKey: json['captcha_key'] as String?,
+ captchaImage: json['captcha_image'] as String?,
+ imageType: json['image_type'] as String?,
+ imageDecode: json['image_decode'] as String?,
);
Map _$CaptchaResponseModelToJson(
_CaptchaResponseModel instance,
) => {
- 'captchaKey': instance.captchaKey,
- 'captchaImage': instance.captchaImage,
- 'imageType': instance.imageType,
- 'imageDecode': instance.imageDecode,
+ 'captcha_key': instance.captchaKey,
+ 'captcha_image': instance.captchaImage,
+ 'image_type': instance.imageType,
+ 'image_decode': instance.imageDecode,
};
diff --git a/packages/core/lib/data/model/response/user_info/user_info_model.dart b/packages/chicken/lib/data/models/response/user_info/user_info_model.dart
similarity index 100%
rename from packages/core/lib/data/model/response/user_info/user_info_model.dart
rename to packages/chicken/lib/data/models/response/user_info/user_info_model.dart
diff --git a/packages/core/lib/data/model/response/user_info/user_info_model.freezed.dart b/packages/chicken/lib/data/models/response/user_info/user_info_model.freezed.dart
similarity index 100%
rename from packages/core/lib/data/model/response/user_info/user_info_model.freezed.dart
rename to packages/chicken/lib/data/models/response/user_info/user_info_model.freezed.dart
diff --git a/packages/core/lib/data/model/response/user_info/user_info_model.g.dart b/packages/chicken/lib/data/models/response/user_info/user_info_model.g.dart
similarity index 80%
rename from packages/core/lib/data/model/response/user_info/user_info_model.g.dart
rename to packages/chicken/lib/data/models/response/user_info/user_info_model.g.dart
index 13ceb8e..2c8f1c4 100644
--- a/packages/core/lib/data/model/response/user_info/user_info_model.g.dart
+++ b/packages/chicken/lib/data/models/response/user_info/user_info_model.g.dart
@@ -8,16 +8,16 @@ part of 'user_info_model.dart';
_UserInfoModel _$UserInfoModelFromJson(Map json) =>
_UserInfoModel(
- isUser: json['isUser'] as bool?,
+ isUser: json['is_user'] as bool?,
address: json['address'] as String?,
backend: json['backend'] as String?,
- apiKey: json['apiKey'] as String?,
+ apiKey: json['api_key'] as String?,
);
Map _$UserInfoModelToJson(_UserInfoModel instance) =>
{
- 'isUser': instance.isUser,
+ 'is_user': instance.isUser,
'address': instance.address,
'backend': instance.backend,
- 'apiKey': instance.apiKey,
+ 'api_key': instance.apiKey,
};
diff --git a/packages/core/lib/data/model/response/user_profile_model/user_profile_model.dart b/packages/chicken/lib/data/models/response/user_profile_model/user_profile_model.dart
similarity index 100%
rename from packages/core/lib/data/model/response/user_profile_model/user_profile_model.dart
rename to packages/chicken/lib/data/models/response/user_profile_model/user_profile_model.dart
diff --git a/packages/core/lib/data/model/response/user_profile_model/user_profile_model.freezed.dart b/packages/chicken/lib/data/models/response/user_profile_model/user_profile_model.freezed.dart
similarity index 100%
rename from packages/core/lib/data/model/response/user_profile_model/user_profile_model.freezed.dart
rename to packages/chicken/lib/data/models/response/user_profile_model/user_profile_model.freezed.dart
diff --git a/packages/core/lib/data/model/response/user_profile_model/user_profile_model.g.dart b/packages/chicken/lib/data/models/response/user_profile_model/user_profile_model.g.dart
similarity index 69%
rename from packages/core/lib/data/model/response/user_profile_model/user_profile_model.g.dart
rename to packages/chicken/lib/data/models/response/user_profile_model/user_profile_model.g.dart
index 170f03f..df72e0e 100644
--- a/packages/core/lib/data/model/response/user_profile_model/user_profile_model.g.dart
+++ b/packages/chicken/lib/data/models/response/user_profile_model/user_profile_model.g.dart
@@ -8,40 +8,40 @@ part of 'user_profile_model.dart';
_UserProfileModel _$UserProfileModelFromJson(Map json) =>
_UserProfileModel(
- accessToken: json['accessToken'] as String?,
- expiresIn: json['expiresIn'] as String?,
+ accessToken: json['access_token'] as String?,
+ expiresIn: json['expires_in'] as String?,
scope: json['scope'] as String?,
- expireTime: json['expireTime'] as String?,
+ expireTime: json['expire_time'] as String?,
mobile: json['mobile'] as String?,
fullname: json['fullname'] as String?,
firstname: json['firstname'] as String?,
lastname: json['lastname'] as String?,
city: json['city'] as String?,
province: json['province'] as String?,
- nationalCode: json['nationalCode'] as String?,
- nationalId: json['nationalId'] as String?,
+ nationalCode: json['national_code'] as String?,
+ nationalId: json['national_id'] as String?,
birthday: json['birthday'] as String?,
image: json['image'] as String?,
- baseOrder: (json['baseOrder'] as num?)?.toInt(),
+ baseOrder: (json['base_order'] as num?)?.toInt(),
role: (json['role'] as List?)?.map((e) => e as String).toList(),
);
Map _$UserProfileModelToJson(_UserProfileModel instance) =>
{
- 'accessToken': instance.accessToken,
- 'expiresIn': instance.expiresIn,
+ 'access_token': instance.accessToken,
+ 'expires_in': instance.expiresIn,
'scope': instance.scope,
- 'expireTime': instance.expireTime,
+ 'expire_time': instance.expireTime,
'mobile': instance.mobile,
'fullname': instance.fullname,
'firstname': instance.firstname,
'lastname': instance.lastname,
'city': instance.city,
'province': instance.province,
- 'nationalCode': instance.nationalCode,
- 'nationalId': instance.nationalId,
+ 'national_code': instance.nationalCode,
+ 'national_id': instance.nationalId,
'birthday': instance.birthday,
'image': instance.image,
- 'baseOrder': instance.baseOrder,
+ 'base_order': instance.baseOrder,
'role': instance.role,
};
diff --git a/packages/core/build.yaml b/packages/core/build.yaml
new file mode 100644
index 0000000..840029b
--- /dev/null
+++ b/packages/core/build.yaml
@@ -0,0 +1,6 @@
+targets:
+ $default:
+ builders:
+ json_serializable:
+ options:
+ field_rename: snake
\ No newline at end of file
diff --git a/packages/core/lib/data/model/model.dart b/packages/core/lib/data/model/model.dart
index 4a8a622..6d07ea5 100644
--- a/packages/core/lib/data/model/model.dart
+++ b/packages/core/lib/data/model/model.dart
@@ -1,3 +1,4 @@
+
+export 'pagination_model/pagination_model.dart';
export 'local/module/module_model.dart';
export 'local/user_local/user_local_model.dart';
-export 'pagination_model/pagination_model.dart';
diff --git a/packages/core/lib/data/services/token_storage_service.dart b/packages/core/lib/data/services/token_storage_service.dart
index c62c2ba..ab551c9 100644
--- a/packages/core/lib/data/services/token_storage_service.dart
+++ b/packages/core/lib/data/services/token_storage_service.dart
@@ -1,4 +1,5 @@
import 'dart:convert';
+
import 'package:rasadyar_core/core.dart';
import 'package:rasadyar_core/hive_registrar.g.dart';
@@ -38,7 +39,7 @@ class TokenStorageService extends GetxService {
accessToken.value = _localStorage.read(boxName: _tokenBoxName, key: _accessTokenKey);
refreshToken.value = _localStorage.read(boxName: _tokenBoxName, key: _refreshTokenKey);
- appModule.value = _localStorage.read(boxName: _appBoxName, key: _moduleKey);
+ appModule.value = getModule();
baseurl.value = _localStorage.read(boxName: _appBoxName, key: _baseUrlKey);
}
@@ -60,6 +61,10 @@ class TokenStorageService extends GetxService {
appModule.refresh();
}
+ Module? getModule() {
+ return _localStorage.read(boxName: _tokenBoxName, key: _moduleKey);
+ }
+
Future deleteTokens() async {
await _localStorage.clear(_tokenBoxName);
accessToken.value = null;
diff --git a/packages/core/lib/presentation/common/assets.gen.dart b/packages/core/lib/presentation/common/assets.gen.dart
index aa17d8b..dba8dfe 100644
--- a/packages/core/lib/presentation/common/assets.gen.dart
+++ b/packages/core/lib/presentation/common/assets.gen.dart
@@ -46,6 +46,9 @@ class $AssetsIconsGen {
/// File path: assets/icons/arrow_right.svg
SvgGenImage get arrowRight => const SvgGenImage('assets/icons/arrow_right.svg');
+ /// File path: assets/icons/bg_auth.svg
+ SvgGenImage get bgAuth => const SvgGenImage('assets/icons/bg_auth.svg');
+
/// File path: assets/icons/bg_header_user_profile.svg
SvgGenImage get bgHeaderUserProfile => const SvgGenImage('assets/icons/bg_header_user_profile.svg');
@@ -278,6 +281,7 @@ class $AssetsIconsGen {
appBarInspection,
arrowLeft,
arrowRight,
+ bgAuth,
bgHeaderUserProfile,
buy,
calendar,
@@ -403,6 +407,9 @@ class $AssetsVecGen {
/// File path: assets/vec/arrow_right.svg.vec
SvgGenImage get arrowRightSvg => const SvgGenImage.vec('assets/vec/arrow_right.svg.vec');
+ /// File path: assets/vec/bg_auth.svg.vec
+ SvgGenImage get bgAuthSvg => const SvgGenImage.vec('assets/vec/bg_auth.svg.vec');
+
/// File path: assets/vec/bg_header_user_profile.svg.vec
SvgGenImage get bgHeaderUserProfileSvg => const SvgGenImage.vec('assets/vec/bg_header_user_profile.svg.vec');
@@ -635,6 +642,7 @@ class $AssetsVecGen {
appBarInspectionSvg,
arrowLeftSvg,
arrowRightSvg,
+ bgAuthSvg,
bgHeaderUserProfileSvg,
buySvg,
calendarSvg,
diff --git a/packages/inspection/build.yaml b/packages/inspection/build.yaml
new file mode 100644
index 0000000..840029b
--- /dev/null
+++ b/packages/inspection/build.yaml
@@ -0,0 +1,6 @@
+targets:
+ $default:
+ builders:
+ json_serializable:
+ options:
+ field_rename: snake
\ No newline at end of file
diff --git a/packages/inspection/lib/data/data_source/remote/auth/auth_remote.dart b/packages/inspection/lib/data/data_source/remote/auth/auth_remote.dart
new file mode 100644
index 0000000..eacaeeb
--- /dev/null
+++ b/packages/inspection/lib/data/data_source/remote/auth/auth_remote.dart
@@ -0,0 +1,14 @@
+import 'package:rasadyar_inspection/data/model/response/auth/auth_response_model.dart';
+import 'package:rasadyar_inspection/data/model/response/captcha/captcha_response_model.dart';
+
+abstract class AuthRemote {
+ Future login({required Map authRequest});
+
+ Future captcha();
+
+ Future logout();
+
+ Future hasAuthenticated();
+
+ Future loginWithRefreshToken({required Map authRequest});
+}
diff --git a/packages/inspection/lib/data/repositories/auth_repository_imp.dart b/packages/inspection/lib/data/data_source/remote/auth/auth_remote_imp.dart
similarity index 65%
rename from packages/inspection/lib/data/repositories/auth_repository_imp.dart
rename to packages/inspection/lib/data/data_source/remote/auth/auth_remote_imp.dart
index 25a3ff6..ff1b37e 100644
--- a/packages/inspection/lib/data/repositories/auth_repository_imp.dart
+++ b/packages/inspection/lib/data/data_source/remote/auth/auth_remote_imp.dart
@@ -1,22 +1,22 @@
import 'package:rasadyar_core/core.dart';
-import 'package:rasadyar_core/data/model/response/auth/auth_response_model.dart';
-import 'package:rasadyar_core/data/model/response/captcha/captcha_response_model.dart';
-import 'package:rasadyar_core/data/model/response/user_info/user_info_model.dart';
-import 'package:rasadyar_core/data/model/response/user_profile_model/user_profile_model.dart';
-import 'auth_repository.dart';
+import 'package:rasadyar_inspection/data/model/response/auth/auth_response_model.dart';
+import 'package:rasadyar_inspection/data/model/response/captcha/captcha_response_model.dart';
+import 'package:rasadyar_inspection/data/model/response/user_profile/user_profile_model.dart';
-class AuthRepositoryImpl implements AuthRepository {
+import 'auth_remote.dart';
+
+class AuthRemoteImp extends AuthRemote {
final DioRemote _httpClient;
final String _BASE_URL = 'auth/api/v1/';
- AuthRepositoryImpl(this._httpClient);
+ AuthRemoteImp(this._httpClient);
@override
- Future login({required Map authRequest}) async {
- var res = await _httpClient.post(
- '/api/login/',
+ Future login({required Map authRequest}) async {
+ var res = await _httpClient.post(
+ '${_BASE_URL}login/',
data: authRequest,
- fromJson: UserProfileModel.fromJson,
+ fromJson: AuthResponseModel.fromJson,
headers: {'Content-Type': 'application/json'},
);
return res.data;
@@ -59,14 +59,14 @@ class AuthRepositoryImpl implements AuthRepository {
return response.data ?? false;
}
- @override
- Future getUserInfo(String phoneNumber) async {
- var res = await _httpClient.post(
+/* @override
+ Future getUserInfo(String phoneNumber) async {
+ var res = await _httpClient.post(
'https://userbackend.rasadyaar.ir/api/send_otp/',
data: {"mobile": phoneNumber, "state": ""},
- fromJson: UserInfoModel.fromJson,
+ fromJson: UserProfileModel.fromJson,
headers: {'Content-Type': 'application/json'},
);
return res.data;
- }
+ }*/
}
diff --git a/packages/inspection/lib/data/data_source/remote/inspection/inspection_remote.dart b/packages/inspection/lib/data/data_source/remote/inspection/inspection_remote.dart
new file mode 100644
index 0000000..4641e70
--- /dev/null
+++ b/packages/inspection/lib/data/data_source/remote/inspection/inspection_remote.dart
@@ -0,0 +1,22 @@
+import 'package:rasadyar_inspection/data/model/response/poultry_location/poultry_location_model.dart';
+
+abstract class InspectionRemoteDataSource {
+ /// Fetches the inspection data for a given [inspectionId].
+ ///
+ /// Returns a `Future` that resolves to a `Map` containing
+ /// the inspection data.
+ Future