refactor: remove unused local and remote data sources, models, and tests for chicken and poultry features to streamline codebase
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
import 'package:rasadyar_app/presentation/routes/app_pages.dart';
|
import 'package:rasadyar_app/presentation/routes/app_pages.dart';
|
||||||
import 'package:rasadyar_chicken/data/di/chicken_di.dart';
|
import 'package:rasadyar_chicken/data/di/chicken_di.dart';
|
||||||
import 'package:rasadyar_chicken/presentation/routes/routes.dart';
|
import 'package:rasadyar_chicken/features/steward/presentation/routes/routes.dart';
|
||||||
import 'package:rasadyar_core/core.dart';
|
import 'package:rasadyar_core/core.dart';
|
||||||
import 'package:rasadyar_inspection/injection/inspection_di.dart';
|
import 'package:rasadyar_inspection/injection/inspection_di.dart';
|
||||||
import 'package:rasadyar_inspection/inspection.dart';
|
import 'package:rasadyar_inspection/inspection.dart';
|
||||||
@@ -22,7 +22,7 @@ Future<void> seedTargetPage() async {
|
|||||||
functions: ["setupLiveStockDI"],
|
functions: ["setupLiveStockDI"],
|
||||||
),
|
),
|
||||||
TargetPage(
|
TargetPage(
|
||||||
route: ChickenRoutes.initSteward,
|
route: StewardRoutes.initSteward,
|
||||||
module: Module.chicken,
|
module: Module.chicken,
|
||||||
functions: ["setupChickenDI"],
|
functions: ["setupChickenDI"],
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ class ModulesLogic extends GetxController {
|
|||||||
|
|
||||||
Future<void> navigateToModule(Module module) async {
|
Future<void> navigateToModule(Module module) async {
|
||||||
var target = getAuthTargetPage(module).entries.first;
|
var target = getAuthTargetPage(module).entries.first;
|
||||||
|
|
||||||
if (target.value?[0] != null) {
|
if (target.value?[0] != null) {
|
||||||
isLoading.value = !isLoading.value;
|
isLoading.value = !isLoading.value;
|
||||||
await target.value?[0]?.call();
|
await target.value?[0]?.call();
|
||||||
|
|||||||
@@ -1,180 +0,0 @@
|
|||||||
import 'package:rasadyar_chicken/data/models/request/change_password/change_password_request_model.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/request/conform_allocation/conform_allocation.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/request/create_steward_free_bar/create_steward_free_bar.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/request/steward_free_sale_bar/steward_free_sale_bar_request.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/request/submit_steward_allocation/submit_steward_allocation.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/allocated_made/allocated_made.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/bar_information/bar_information.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/broadcast_price/broadcast_price.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/dashboard_kill_house_free_bar/dashboard_kill_house_free_bar.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/guild/guild_model.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/guild_profile/guild_profile.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/imported_loads_model/imported_loads_model.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/inventory/inventory_model.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/iran_province_city/iran_province_city_model.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/kill_house_distribution_info/kill_house_distribution_info.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/segmentation_model/segmentation_model.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/steward_free_bar/steward_free_bar.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/steward_free_bar_dashboard/steward_free_bar_dashboard.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/steward_free_sale_bar/steward_free_sale_bar.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/steward_remain_weight/steward_remain_weight.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/steward_sales_info_dashboard/steward_sales_info_dashboard.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/user_profile/user_profile.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/waiting_arrival/waiting_arrival.dart'
|
|
||||||
hide ProductModel;
|
|
||||||
import 'package:rasadyar_core/core.dart';
|
|
||||||
|
|
||||||
abstract class ChickenRemoteDatasource {
|
|
||||||
Future<List<InventoryModel>?> getInventory({required String token, CancelToken? cancelToken});
|
|
||||||
|
|
||||||
Future<KillHouseDistributionInfo?> getKillHouseDistributionInfo({required String token});
|
|
||||||
|
|
||||||
Future<BarInformation?> getGeneralBarInformation({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<PaginationModel<WaitingArrivalModel>?> getWaitingArrivals({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<void> setSateForArrivals({required String token, required Map<String, dynamic> request});
|
|
||||||
|
|
||||||
Future<PaginationModel<ImportedLoadsModel>?> getImportedLoadsModel({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<PaginationModel<AllocatedMadeModel>?> getAllocatedMade({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<void> confirmAllocation({required String token, required Map<String, dynamic> allocation});
|
|
||||||
|
|
||||||
Future<void> denyAllocation({required String token, required String allocationToken});
|
|
||||||
|
|
||||||
Future<void> confirmAllAllocation({
|
|
||||||
required String token,
|
|
||||||
required List<String> allocationTokens,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<List<ProductModel>?> getRolesProducts({required String token});
|
|
||||||
|
|
||||||
Future<List<GuildModel>?> getGuilds({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<GuildProfile?> getProfile({required String token});
|
|
||||||
|
|
||||||
Future<void> postSubmitStewardAllocation({
|
|
||||||
required String token,
|
|
||||||
required SubmitStewardAllocation request,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<void> deleteStewardAllocation({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<void> updateStewardAllocation({required String token, required ConformAllocation request});
|
|
||||||
|
|
||||||
Future<StewardFreeBarDashboard?> getStewardDashboard({
|
|
||||||
required String token,
|
|
||||||
required String stratDate,
|
|
||||||
required String endDate,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<DashboardKillHouseFreeBar?> getDashboardKillHouseFreeBar({
|
|
||||||
required String token,
|
|
||||||
required String stratDate,
|
|
||||||
required String endDate,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<PaginationModel<StewardFreeBar>?> getStewardPurchasesOutSideOfTheProvince({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<void> createStewardPurchasesOutSideOfTheProvince({
|
|
||||||
required String token,
|
|
||||||
required CreateStewardFreeBar body,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<void> deleteStewardPurchasesOutSideOfTheProvince({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<CreateStewardFreeBar?> editStewardPurchasesOutSideOfTheProvince({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
Future<PaginationModel<OutProvinceCarcassesBuyer>?> getOutProvinceCarcassesBuyer({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<void> createOutProvinceCarcassesBuyer({
|
|
||||||
required String token,
|
|
||||||
required OutProvinceCarcassesBuyer body,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<List<IranProvinceCityModel>?> getProvince({CancelToken? cancelToken});
|
|
||||||
|
|
||||||
Future<List<IranProvinceCityModel>?> getCity({required String provinceName});
|
|
||||||
|
|
||||||
Future<PaginationModel<StewardFreeSaleBar>?> getStewardFreeSaleBar({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<void> createOutProvinceStewardFreeBar({
|
|
||||||
required String token,
|
|
||||||
required StewardFreeSaleBarRequest body,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<void> updateOutProvinceStewardFreeBar({
|
|
||||||
required String token,
|
|
||||||
required StewardFreeSaleBarRequest body,
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
Future<void> deleteOutProvinceStewardFreeBar({
|
|
||||||
required String token,
|
|
||||||
required String key
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
Future<UserProfile?> getUserProfile({required String token});
|
|
||||||
|
|
||||||
Future<void> updateUserProfile({required String token, required UserProfile userProfile});
|
|
||||||
|
|
||||||
Future<void> updatePassword({required String token, required ChangePasswordRequestModel model});
|
|
||||||
|
|
||||||
Future<PaginationModel<SegmentationModel>?> getSegmentation({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<void> createSegmentation({required String token, required SegmentationModel model});
|
|
||||||
|
|
||||||
Future<void> editSegmentation({required String token, required SegmentationModel model});
|
|
||||||
|
|
||||||
Future<SegmentationModel?> deleteSegmentation({required String token, required String key});
|
|
||||||
|
|
||||||
Future<BroadcastPrice?> getBroadcastPrice({required String token});
|
|
||||||
|
|
||||||
Future<StewardSalesInfoDashboard?> getStewardSalesInfoDashboard({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<StewardRemainWeight?> getStewardRemainWeight({required String token});
|
|
||||||
}
|
|
||||||
@@ -1,548 +0,0 @@
|
|||||||
import 'package:rasadyar_chicken/data/models/request/change_password/change_password_request_model.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/request/conform_allocation/conform_allocation.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/request/create_steward_free_bar/create_steward_free_bar.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/request/steward_free_sale_bar/steward_free_sale_bar_request.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/request/submit_steward_allocation/submit_steward_allocation.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/allocated_made/allocated_made.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/bar_information/bar_information.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/broadcast_price/broadcast_price.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/dashboard_kill_house_free_bar/dashboard_kill_house_free_bar.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/guild/guild_model.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/guild_profile/guild_profile.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/imported_loads_model/imported_loads_model.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/inventory/inventory_model.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/iran_province_city/iran_province_city_model.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/kill_house_distribution_info/kill_house_distribution_info.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/segmentation_model/segmentation_model.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/steward_free_bar/steward_free_bar.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/steward_free_bar_dashboard/steward_free_bar_dashboard.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/steward_free_sale_bar/steward_free_sale_bar.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/steward_remain_weight/steward_remain_weight.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/steward_sales_info_dashboard/steward_sales_info_dashboard.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/user_profile/user_profile.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/waiting_arrival/waiting_arrival.dart'
|
|
||||||
hide ProductModel;
|
|
||||||
import 'package:rasadyar_core/core.dart';
|
|
||||||
|
|
||||||
import 'chicken_remote.dart';
|
|
||||||
|
|
||||||
class ChickenRemoteDatasourceImp implements ChickenRemoteDatasource {
|
|
||||||
final DioRemote _httpClient;
|
|
||||||
|
|
||||||
ChickenRemoteDatasourceImp(this._httpClient);
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<List<InventoryModel>?> getInventory({
|
|
||||||
required String token,
|
|
||||||
CancelToken? cancelToken,
|
|
||||||
}) async {
|
|
||||||
var res = await _httpClient.get(
|
|
||||||
'/roles-products/?role=Steward',
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
|
|
||||||
fromJsonList: (json) =>
|
|
||||||
(json).map((item) => InventoryModel.fromJson(item as Map<String, dynamic>)).toList(),
|
|
||||||
);
|
|
||||||
|
|
||||||
return res.data;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<KillHouseDistributionInfo?> getKillHouseDistributionInfo({required String token}) async {
|
|
||||||
var res = await _httpClient.get(
|
|
||||||
'/kill-house-distribution-info/?role=Steward',
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
fromJson: KillHouseDistributionInfo.fromJson,
|
|
||||||
);
|
|
||||||
|
|
||||||
return res.data;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<BarInformation?> getGeneralBarInformation({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
}) async {
|
|
||||||
var res = await _httpClient.get(
|
|
||||||
'/bars_for_kill_house_dashboard/',
|
|
||||||
queryParameters: queryParameters,
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
fromJson: BarInformation.fromJson,
|
|
||||||
);
|
|
||||||
return res.data;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<PaginationModel<WaitingArrivalModel>?> getWaitingArrivals({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
}) async {
|
|
||||||
var res = await _httpClient.get(
|
|
||||||
'/steward-allocation/',
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
queryParameters: queryParameters,
|
|
||||||
fromJson: (json) => PaginationModel<WaitingArrivalModel>.fromJson(
|
|
||||||
json,
|
|
||||||
(json) => WaitingArrivalModel.fromJson(json as Map<String, dynamic>),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
return res.data;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> setSateForArrivals({
|
|
||||||
required String token,
|
|
||||||
required Map<String, dynamic> request,
|
|
||||||
}) async {
|
|
||||||
await _httpClient.put(
|
|
||||||
'/steward-allocation/0/',
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
data: request,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<PaginationModel<ImportedLoadsModel>?> getImportedLoadsModel({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
}) async {
|
|
||||||
var res = await _httpClient.get(
|
|
||||||
'/steward-allocation/',
|
|
||||||
queryParameters: queryParameters,
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
fromJson: (json) => PaginationModel.fromJson(
|
|
||||||
json,
|
|
||||||
(data) => ImportedLoadsModel.fromJson(data as Map<String, dynamic>),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
return res.data;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<PaginationModel<AllocatedMadeModel>?> getAllocatedMade({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
}) async {
|
|
||||||
var res = await _httpClient.get(
|
|
||||||
'/steward-allocation/',
|
|
||||||
queryParameters: queryParameters,
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
fromJson: (json) => PaginationModel<AllocatedMadeModel>.fromJson(
|
|
||||||
json,
|
|
||||||
(json) => AllocatedMadeModel.fromJson(json as Map<String, dynamic>),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
return res.data;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> confirmAllocation({
|
|
||||||
required String token,
|
|
||||||
required Map<String, dynamic> allocation,
|
|
||||||
}) async {
|
|
||||||
await _httpClient.put(
|
|
||||||
'/steward-allocation/0/',
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
data: allocation,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> denyAllocation({required String token, required String allocationToken}) async {
|
|
||||||
await _httpClient.delete(
|
|
||||||
'/steward-allocation/0/?steward_allocation_key=$allocationToken',
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> confirmAllAllocation({
|
|
||||||
required String token,
|
|
||||||
required List<String> allocationTokens,
|
|
||||||
}) async {
|
|
||||||
await _httpClient.put(
|
|
||||||
'/steward-allocation/0/',
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
data: {'steward_allocation_list': allocationTokens},
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<List<ProductModel>?> getRolesProducts({required String token}) async {
|
|
||||||
var res = await _httpClient.get(
|
|
||||||
'/roles-products/?role=Steward',
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
fromJsonList: (json) =>
|
|
||||||
json.map((item) => ProductModel.fromJson(item as Map<String, dynamic>)).toList(),
|
|
||||||
);
|
|
||||||
return res.data;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<List<GuildModel>?> getGuilds({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
}) async {
|
|
||||||
var res = await _httpClient.get(
|
|
||||||
'/guilds/',
|
|
||||||
queryParameters: queryParameters,
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
fromJsonList: (json) =>
|
|
||||||
json.map((item) => GuildModel.fromJson(item as Map<String, dynamic>)).toList(),
|
|
||||||
);
|
|
||||||
return res.data;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<GuildProfile?> getProfile({required String token}) async {
|
|
||||||
var res = await _httpClient.get(
|
|
||||||
'/guilds/0/?profile',
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
fromJson: GuildProfile.fromJson,
|
|
||||||
);
|
|
||||||
return res.data;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> postSubmitStewardAllocation({
|
|
||||||
required String token,
|
|
||||||
required SubmitStewardAllocation request,
|
|
||||||
}) async {
|
|
||||||
await _httpClient.post(
|
|
||||||
'/steward-allocation/',
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
data: request.toJson(),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> deleteStewardAllocation({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
}) async {
|
|
||||||
await _httpClient.delete(
|
|
||||||
'/steward-allocation/0/',
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
queryParameters: queryParameters,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> updateStewardAllocation({
|
|
||||||
required String token,
|
|
||||||
required ConformAllocation request,
|
|
||||||
}) async {
|
|
||||||
await _httpClient.put(
|
|
||||||
'/steward-allocation/0/',
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
data: request.toJson(),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<StewardFreeBarDashboard?> getStewardDashboard({
|
|
||||||
required String token,
|
|
||||||
required String stratDate,
|
|
||||||
required String endDate,
|
|
||||||
}) async {
|
|
||||||
var res = await _httpClient.get(
|
|
||||||
'/steward_free_bar_dashboard/?date1=$stratDate&date2=$endDate&search=filter',
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
fromJson: StewardFreeBarDashboard.fromJson,
|
|
||||||
);
|
|
||||||
return res.data;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<DashboardKillHouseFreeBar?> getDashboardKillHouseFreeBar({
|
|
||||||
required String token,
|
|
||||||
required String stratDate,
|
|
||||||
required String endDate,
|
|
||||||
}) async {
|
|
||||||
var res = await _httpClient.get(
|
|
||||||
'/dashboard_kill_house_free_bar/?date1=$stratDate&date2=$endDate&search=filter',
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
fromJson: DashboardKillHouseFreeBar.fromJson,
|
|
||||||
);
|
|
||||||
return res.data;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<PaginationModel<StewardFreeBar>?> getStewardPurchasesOutSideOfTheProvince({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
}) async {
|
|
||||||
var res = await _httpClient.get(
|
|
||||||
'/steward_free_bar/',
|
|
||||||
queryParameters: queryParameters,
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
fromJson: (json) => PaginationModel<StewardFreeBar>.fromJson(
|
|
||||||
json,
|
|
||||||
(json) => StewardFreeBar.fromJson(json as Map<String, dynamic>),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
return res.data;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<List<IranProvinceCityModel>?> getCity({required String provinceName}) async {
|
|
||||||
var res = await _httpClient.get(
|
|
||||||
'/iran_city/',
|
|
||||||
queryParameters: {'name': provinceName},
|
|
||||||
fromJsonList: (json) =>
|
|
||||||
json.map((item) => IranProvinceCityModel.fromJson(item as Map<String, dynamic>)).toList(),
|
|
||||||
);
|
|
||||||
return res.data;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<List<IranProvinceCityModel>?> getProvince({CancelToken? cancelToken}) async {
|
|
||||||
var res = await _httpClient.get(
|
|
||||||
'/iran_province/',
|
|
||||||
fromJsonList: (json) =>
|
|
||||||
json.map((item) => IranProvinceCityModel.fromJson(item as Map<String, dynamic>)).toList(),
|
|
||||||
);
|
|
||||||
return res.data;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> createStewardPurchasesOutSideOfTheProvince({
|
|
||||||
required String token,
|
|
||||||
required CreateStewardFreeBar body,
|
|
||||||
}) async {
|
|
||||||
await _httpClient.post(
|
|
||||||
'/steward_free_bar/',
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
data: body.toJson()..removeWhere((key, value) => value==null,),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<CreateStewardFreeBar?> editStewardPurchasesOutSideOfTheProvince({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
}) async {
|
|
||||||
var data = await _httpClient.put(
|
|
||||||
'/steward_free_bar/0/',
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
data: queryParameters,
|
|
||||||
fromJson: CreateStewardFreeBar.fromJson,
|
|
||||||
);
|
|
||||||
return data.data;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> deleteStewardPurchasesOutSideOfTheProvince({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
}) async {
|
|
||||||
await _httpClient.delete(
|
|
||||||
'/steward_free_bar/0/',
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
queryParameters: queryParameters,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<PaginationModel<OutProvinceCarcassesBuyer>?> getOutProvinceCarcassesBuyer({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
}) async {
|
|
||||||
var res = await _httpClient.get(
|
|
||||||
'/out-province-carcasses-buyer/',
|
|
||||||
queryParameters: queryParameters,
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
fromJson: (json) => PaginationModel<OutProvinceCarcassesBuyer>.fromJson(
|
|
||||||
json,
|
|
||||||
(json) => OutProvinceCarcassesBuyer.fromJson(json as Map<String, dynamic>),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
return res.data;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> createOutProvinceCarcassesBuyer({
|
|
||||||
required String token,
|
|
||||||
required OutProvinceCarcassesBuyer body,
|
|
||||||
}) async {
|
|
||||||
await _httpClient.post(
|
|
||||||
'/out-province-carcasses-buyer/',
|
|
||||||
data: body.toJson()..removeWhere((key, value) => value == null),
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<PaginationModel<StewardFreeSaleBar>?> getStewardFreeSaleBar({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
}) async {
|
|
||||||
var res = await _httpClient.get(
|
|
||||||
'/steward_free_sale_bar/',
|
|
||||||
queryParameters: queryParameters,
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
fromJson: (json) => PaginationModel<StewardFreeSaleBar>.fromJson(
|
|
||||||
json,
|
|
||||||
(json) => StewardFreeSaleBar.fromJson(json as Map<String, dynamic>),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
return res.data;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> createOutProvinceStewardFreeBar({
|
|
||||||
required String token,
|
|
||||||
required StewardFreeSaleBarRequest body,
|
|
||||||
}) async {
|
|
||||||
await _httpClient.post(
|
|
||||||
'/steward_free_sale_bar/',
|
|
||||||
data: body.toJson()..removeWhere((key, value) => value == null),
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> updateOutProvinceStewardFreeBar({
|
|
||||||
required String token,
|
|
||||||
required StewardFreeSaleBarRequest body,
|
|
||||||
}) async {
|
|
||||||
await _httpClient.put(
|
|
||||||
'/steward_free_sale_bar/0/',
|
|
||||||
data: body.toJson()
|
|
||||||
..removeWhere((key, value) => value == null)
|
|
||||||
..addAll({'carcassWeight': body.weightOfCarcasses, 'carcassCount': body.numberOfCarcasses}),
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> deleteOutProvinceStewardFreeBar({required String token, required String key}) async {
|
|
||||||
await _httpClient.delete(
|
|
||||||
'/steward_free_sale_bar/0/',
|
|
||||||
queryParameters: {'key': key},
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<UserProfile?> getUserProfile({required String token}) async {
|
|
||||||
var res = await _httpClient.get(
|
|
||||||
'/system_user_profile/?self-profile',
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
fromJson: (json) => UserProfile.fromJson(json),
|
|
||||||
);
|
|
||||||
|
|
||||||
return res.data;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> updateUserProfile({required String token, required UserProfile userProfile}) async {
|
|
||||||
await _httpClient.put(
|
|
||||||
'/system_user_profile/0/',
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
data: userProfile.toJson()..removeWhere((key, value) => value == null),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> updatePassword({
|
|
||||||
required String token,
|
|
||||||
required ChangePasswordRequestModel model,
|
|
||||||
}) async {
|
|
||||||
await _httpClient.post(
|
|
||||||
'/api/change_password/',
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
data: model.toJson()..removeWhere((key, value) => value == null),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<PaginationModel<SegmentationModel>?> getSegmentation({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
}) async {
|
|
||||||
var res = await _httpClient.get(
|
|
||||||
'/app-segmentation/',
|
|
||||||
queryParameters: queryParameters,
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
fromJson: (json) => PaginationModel<SegmentationModel>.fromJson(
|
|
||||||
json,
|
|
||||||
(json) => SegmentationModel.fromJson(json as Map<String, dynamic>),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
return res.data;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> createSegmentation({required String token, required SegmentationModel model}) async {
|
|
||||||
await _httpClient.post(
|
|
||||||
'/app-segmentation/',
|
|
||||||
data: model.toJson()..removeWhere((key, value) => value == null),
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> editSegmentation({required String token, required SegmentationModel model}) async {
|
|
||||||
await _httpClient.put(
|
|
||||||
'/app-segmentation/0/',
|
|
||||||
data: model.toJson()..removeWhere((key, value) => value == null),
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<SegmentationModel?> deleteSegmentation({
|
|
||||||
required String token,
|
|
||||||
required String key,
|
|
||||||
}) async {
|
|
||||||
var res = await _httpClient.delete<SegmentationModel?>(
|
|
||||||
'/app-segmentation/0/',
|
|
||||||
queryParameters: {'key': key},
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
fromJson: (json) => SegmentationModel.fromJson(json),
|
|
||||||
);
|
|
||||||
|
|
||||||
return res.data;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<BroadcastPrice?> getBroadcastPrice({required String token}) async {
|
|
||||||
var res = await _httpClient.get(
|
|
||||||
'/broadcast-price/',
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
|
|
||||||
fromJson: (json) => BroadcastPrice.fromJson(json),
|
|
||||||
);
|
|
||||||
|
|
||||||
return res.data;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<StewardSalesInfoDashboard?> getStewardSalesInfoDashboard({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
}) async {
|
|
||||||
var res = await _httpClient.get(
|
|
||||||
'/steward-sales-info-dashboard/',
|
|
||||||
queryParameters: queryParameters,
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
fromJson: (json) => StewardSalesInfoDashboard.fromJson(json),
|
|
||||||
);
|
|
||||||
|
|
||||||
return res.data;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<StewardRemainWeight?> getStewardRemainWeight({required String token}) async {
|
|
||||||
var res = await _httpClient.get(
|
|
||||||
'/steward-remain-weight/',
|
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
|
||||||
fromJson: StewardRemainWeight.fromJson,
|
|
||||||
);
|
|
||||||
|
|
||||||
return res.data;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,94 +0,0 @@
|
|||||||
import 'package:rasadyar_chicken/data/models/poultry_export/poultry_export.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/request/kill_registration/kill_registration.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/all_poultry/all_poultry.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/approved_price/approved_price.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/hatching/hatching_models.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/hatching_report/hatching_report.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/kill_house_poultry/kill_house_poultry.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/kill_request_poultry/kill_request_poultry.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/poultry_farm/poultry_farm.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/poultry_hatching/poultry_hatching.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/poultry_order/poultry_order.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/poultry_science/home_poultry_science/home_poultry_science_model.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/sell_for_freezing/sell_for_freezing.dart';
|
|
||||||
import 'package:rasadyar_core/core.dart';
|
|
||||||
|
|
||||||
abstract class PoultryScienceRemoteDatasource {
|
|
||||||
Future<HomePoultryScienceModel?> getHomePoultryScience({
|
|
||||||
required String token,
|
|
||||||
required String type,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<PaginationModel<HatchingModel>?> getHatchingPoultry({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<void> submitPoultryScienceReport({
|
|
||||||
required String token,
|
|
||||||
required FormData data,
|
|
||||||
ProgressCallback? onSendProgress,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<PaginationModel<HatchingReport>?> getPoultryScienceReport({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<PaginationModel<PoultryFarm>?> getPoultryScienceFarmList({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<ApprovedPrice?> getApprovedPrice({ required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,});
|
|
||||||
|
|
||||||
Future<List<AllPoultry>?> getAllPoultry({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
Future<SellForFreezing?> getSellForFreezing({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
Future<PoultryExport?> getPoultryExport({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
Future<List<KillRequestPoultry>?> getUserPoultry({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<List<PoultryHatching>?> getPoultryHatching({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<List<KillHousePoultry>?> getKillHouseList({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<void> submitKillRegistration({
|
|
||||||
required String token,
|
|
||||||
required KillRegistrationRequest request,
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
Future<PaginationModel<PoultryOrder>?> getPoultryOderList({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<void> deletePoultryOder({
|
|
||||||
required String token,
|
|
||||||
required String orderId,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
@@ -1,24 +1,12 @@
|
|||||||
import 'package:rasadyar_chicken/chicken.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/common/dio_error_handler.dart';
|
import 'package:rasadyar_chicken/data/common/dio_error_handler.dart';
|
||||||
import 'package:rasadyar_chicken/features/common/presentation/routes/routes.dart';
|
import 'package:rasadyar_chicken/features/common/presentation/routes/routes.dart';
|
||||||
import 'package:rasadyar_chicken/data/data_source/local/chicken_local.dart';
|
import 'package:rasadyar_chicken/features/common/data/di/common_di.dart';
|
||||||
import 'package:rasadyar_chicken/data/data_source/local/chicken_local_imp.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/data_source/remote/auth/auth_remote.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/data_source/remote/auth/auth_remote_imp.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/data_source/remote/chicken/chicken_remote.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/data_source/remote/chicken/chicken_remote_imp.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/data_source/remote/kill_house/kill_house_remote.dart';
|
import 'package:rasadyar_chicken/data/data_source/remote/kill_house/kill_house_remote.dart';
|
||||||
import 'package:rasadyar_chicken/data/data_source/remote/kill_house/kill_house_remote_impl.dart';
|
import 'package:rasadyar_chicken/data/data_source/remote/kill_house/kill_house_remote_impl.dart';
|
||||||
import 'package:rasadyar_chicken/data/data_source/remote/poultry_science/poultry_science_remote.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/data_source/remote/poultry_science/poultry_science_remote_imp.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/repositories/auth/auth_repository.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/repositories/auth/auth_repository_imp.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/repositories/chicken/chicken_repository.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/repositories/chicken/chicken_repository_imp.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/repositories/kill_house/kill_house_repository.dart';
|
import 'package:rasadyar_chicken/data/repositories/kill_house/kill_house_repository.dart';
|
||||||
import 'package:rasadyar_chicken/data/repositories/kill_house/kill_house_repository_impl.dart';
|
import 'package:rasadyar_chicken/data/repositories/kill_house/kill_house_repository_impl.dart';
|
||||||
import 'package:rasadyar_chicken/data/repositories/poultry_science/poultry_science_repository.dart';
|
import 'package:rasadyar_chicken/features/poultry_science/data/di/poultry_science_di.dart';
|
||||||
import 'package:rasadyar_chicken/data/repositories/poultry_science/poultry_science_repository_imp.dart';
|
import 'package:rasadyar_chicken/features/steward/data/di/steward_di.dart';
|
||||||
import 'package:rasadyar_core/core.dart';
|
import 'package:rasadyar_core/core.dart';
|
||||||
|
|
||||||
GetIt diChicken = GetIt.asNewInstance();
|
GetIt diChicken = GetIt.asNewInstance();
|
||||||
@@ -61,38 +49,14 @@ Future<void> setupChickenDI() async {
|
|||||||
final dioRemote = diChicken.get<DioRemote>();
|
final dioRemote = diChicken.get<DioRemote>();
|
||||||
await dioRemote.init();
|
await dioRemote.init();
|
||||||
|
|
||||||
diChicken.registerLazySingleton<AuthRemoteDataSource>(
|
// Setup common feature DI
|
||||||
() => AuthRemoteDataSourceImp(dioRemote),
|
await setupCommonDI(diChicken, dioRemote);
|
||||||
);
|
|
||||||
|
|
||||||
diChicken.registerLazySingleton<AuthRepository>(
|
// Setup poultry_science feature DI
|
||||||
() => AuthRepositoryImpl(diChicken.get<AuthRemoteDataSource>()),
|
await setupPoultryScienceDI(diChicken, dioRemote);
|
||||||
);
|
|
||||||
|
|
||||||
diChicken.registerLazySingleton<ChickenRemoteDatasource>(
|
// Setup steward feature DI
|
||||||
() => ChickenRemoteDatasourceImp(diChicken.get<DioRemote>()),
|
await setupStewardDI(diChicken, dioRemote);
|
||||||
);
|
|
||||||
|
|
||||||
diChicken.registerLazySingleton<ChickenLocalDataSource>(
|
|
||||||
() => ChickenLocalDataSourceImp(),
|
|
||||||
);
|
|
||||||
|
|
||||||
diChicken.registerLazySingleton<ChickenRepository>(
|
|
||||||
() => ChickenRepositoryImp(
|
|
||||||
remote: diChicken.get<ChickenRemoteDatasource>(),
|
|
||||||
local: diChicken.get<ChickenLocalDataSource>(),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
|
|
||||||
diChicken.registerLazySingleton<PoultryScienceRemoteDatasource>(
|
|
||||||
() => PoultryScienceRemoteDatasourceImp(diChicken.get<DioRemote>()),
|
|
||||||
);
|
|
||||||
|
|
||||||
diChicken.registerLazySingleton<PoultryScienceRepository>(
|
|
||||||
() => PoultryScienceRepositoryImp(
|
|
||||||
diChicken.get<PoultryScienceRemoteDatasource>(),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
|
|
||||||
//region kill house module DI
|
//region kill house module DI
|
||||||
diChicken.registerLazySingleton<KillHouseRemoteDataSource>(
|
diChicken.registerLazySingleton<KillHouseRemoteDataSource>(
|
||||||
@@ -107,23 +71,17 @@ Future<void> setupChickenDI() async {
|
|||||||
Future<void> newSetupAuthDI(String newUrl) async {
|
Future<void> newSetupAuthDI(String newUrl) async {
|
||||||
var tokenService = Get.find<TokenStorageService>();
|
var tokenService = Get.find<TokenStorageService>();
|
||||||
|
|
||||||
// همیشه baseUrl جدید رو ذخیره کن
|
|
||||||
await tokenService.saveBaseUrl(Module.chicken, newUrl);
|
await tokenService.saveBaseUrl(Module.chicken, newUrl);
|
||||||
|
|
||||||
// Re-register AppInterceptor
|
// پاکسازی DI مخصوص ماژول مرغ
|
||||||
if (diChicken.isRegistered<AppInterceptor>(
|
await diChicken.resetScope();
|
||||||
instanceName: 'chickenInterceptor',
|
diChicken.pushNewScope();
|
||||||
)) {
|
|
||||||
await diChicken.unregister<AppInterceptor>(
|
// --- Re-register AppInterceptor
|
||||||
instanceName: 'chickenInterceptor',
|
|
||||||
);
|
|
||||||
}
|
|
||||||
diChicken.registerLazySingleton<AppInterceptor>(
|
diChicken.registerLazySingleton<AppInterceptor>(
|
||||||
() => AppInterceptor(
|
() => AppInterceptor(
|
||||||
refreshTokenCallback: () async => null,
|
refreshTokenCallback: () async => null,
|
||||||
saveTokenCallback: (String newToken) async {
|
saveTokenCallback: (newToken) async {},
|
||||||
// await tokenService.saveAccessToken(newToken);
|
|
||||||
},
|
|
||||||
clearTokenCallback: () async {
|
clearTokenCallback: () async {
|
||||||
await tokenService.deleteModuleTokens(Module.chicken);
|
await tokenService.deleteModuleTokens(Module.chicken);
|
||||||
Get.offAllNamed(CommonRoutes.auth, arguments: Module.chicken);
|
Get.offAllNamed(CommonRoutes.auth, arguments: Module.chicken);
|
||||||
@@ -132,10 +90,7 @@ Future<void> newSetupAuthDI(String newUrl) async {
|
|||||||
instanceName: 'chickenInterceptor',
|
instanceName: 'chickenInterceptor',
|
||||||
);
|
);
|
||||||
|
|
||||||
// Re-register DioRemote
|
// --- Re-register DioRemote
|
||||||
if (diChicken.isRegistered<DioRemote>()) {
|
|
||||||
await diChicken.unregister<DioRemote>();
|
|
||||||
}
|
|
||||||
diChicken.registerLazySingleton<DioRemote>(
|
diChicken.registerLazySingleton<DioRemote>(
|
||||||
() => DioRemote(
|
() => DioRemote(
|
||||||
baseUrl: newUrl,
|
baseUrl: newUrl,
|
||||||
@@ -144,35 +99,14 @@ Future<void> newSetupAuthDI(String newUrl) async {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
final dioRemote = diChicken.get<DioRemote>();
|
final dioRemote = diChicken.get<DioRemote>();
|
||||||
await dioRemote.init();
|
await dioRemote.init();
|
||||||
|
|
||||||
// Re-register dependent layers
|
// --- common, poultry_science, steward
|
||||||
await reRegister<AuthRemoteDataSource>(
|
await setupCommonDI(diChicken, dioRemote);
|
||||||
() => AuthRemoteDataSourceImp(dioRemote),
|
await setupPoultryScienceDI(diChicken, dioRemote);
|
||||||
);
|
await setupStewardDI(diChicken, dioRemote);
|
||||||
await reRegister<AuthRepository>(
|
|
||||||
() => AuthRepositoryImpl(diChicken.get<AuthRemoteDataSource>()),
|
|
||||||
);
|
|
||||||
await reRegister<ChickenRemoteDatasource>(
|
|
||||||
() => ChickenRemoteDatasourceImp(dioRemote),
|
|
||||||
);
|
|
||||||
await reRegister<ChickenLocalDataSource>(() => ChickenLocalDataSourceImp());
|
|
||||||
await reRegister<ChickenRepository>(
|
|
||||||
() => ChickenRepositoryImp(
|
|
||||||
remote: diChicken.get<ChickenRemoteDatasource>(),
|
|
||||||
local: diChicken.get<ChickenLocalDataSource>(),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
|
|
||||||
await reRegister<PoultryScienceRemoteDatasource>(
|
|
||||||
() => PoultryScienceRemoteDatasourceImp(dioRemote),
|
|
||||||
);
|
|
||||||
await reRegister<PoultryScienceRepository>(
|
|
||||||
() => PoultryScienceRepositoryImp(
|
|
||||||
diChicken.get<PoultryScienceRemoteDatasource>(),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> reRegister<T extends Object>(T Function() factory) async {
|
Future<void> reRegister<T extends Object>(T Function() factory) async {
|
||||||
|
|||||||
@@ -1,200 +0,0 @@
|
|||||||
import 'package:rasadyar_chicken/data/models/local/widely_used_local_model.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/request/change_password/change_password_request_model.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/request/conform_allocation/conform_allocation.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/request/steward_free_sale_bar/steward_free_sale_bar_request.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/request/submit_steward_allocation/submit_steward_allocation.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/allocated_made/allocated_made.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/bar_information/bar_information.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/broadcast_price/broadcast_price.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/dashboard_kill_house_free_bar/dashboard_kill_house_free_bar.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/guild/guild_model.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/guild_profile/guild_profile.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/imported_loads_model/imported_loads_model.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/inventory/inventory_model.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/iran_province_city/iran_province_city_model.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/kill_house_distribution_info/kill_house_distribution_info.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/segmentation_model/segmentation_model.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/steward_free_bar/steward_free_bar.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/steward_free_bar_dashboard/steward_free_bar_dashboard.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/steward_free_sale_bar/steward_free_sale_bar.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/steward_remain_weight/steward_remain_weight.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/steward_sales_info_dashboard/steward_sales_info_dashboard.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/user_profile/user_profile.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/waiting_arrival/waiting_arrival.dart'
|
|
||||||
hide ProductModel;
|
|
||||||
import 'package:rasadyar_core/core.dart';
|
|
||||||
|
|
||||||
import '../../models/request/create_steward_free_bar/create_steward_free_bar.dart';
|
|
||||||
|
|
||||||
abstract class ChickenRepository {
|
|
||||||
//region Remote
|
|
||||||
|
|
||||||
//region Steward
|
|
||||||
Future<List<InventoryModel>?> getInventory({required String token, CancelToken? cancelToken});
|
|
||||||
|
|
||||||
Future<KillHouseDistributionInfo?> getKillHouseDistributionInfo({required String token});
|
|
||||||
|
|
||||||
Future<BarInformation?> getGeneralBarInformation({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<PaginationModel<WaitingArrivalModel>?> getWaitingArrivals({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<void> setSateForArrivals({required String token, required Map<String, dynamic> request});
|
|
||||||
|
|
||||||
Future<PaginationModel<ImportedLoadsModel>?> getImportedLoadsModel({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<PaginationModel<AllocatedMadeModel>?> getAllocatedMade({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<void> confirmAllocation({required String token, required Map<String, dynamic> allocation});
|
|
||||||
|
|
||||||
Future<void> denyAllocation({required String token, required String allocationToken});
|
|
||||||
|
|
||||||
Future<void> confirmAllAllocation({
|
|
||||||
required String token,
|
|
||||||
required List<String> allocationTokens,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<List<ProductModel>?> getRolesProducts({required String token});
|
|
||||||
|
|
||||||
Future<List<GuildModel>?> getGuilds({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<GuildProfile?> getProfile({required String token});
|
|
||||||
|
|
||||||
Future<void> postSubmitStewardAllocation({
|
|
||||||
required String token,
|
|
||||||
required SubmitStewardAllocation request,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<void> deleteStewardAllocation({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<void> updateStewardAllocation({required String token, required ConformAllocation request});
|
|
||||||
|
|
||||||
Future<StewardFreeBarDashboard?> getStewardDashboard({
|
|
||||||
required String token,
|
|
||||||
required String stratDate,
|
|
||||||
required String endDate,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<DashboardKillHouseFreeBar?> getDashboardKillHouseFreeBar({
|
|
||||||
required String token,
|
|
||||||
required String stratDate,
|
|
||||||
required String endDate,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<PaginationModel<StewardFreeBar>?> getStewardPurchasesOutSideOfTheProvince({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<void> createStewardPurchasesOutSideOfTheProvince({
|
|
||||||
required String token,
|
|
||||||
required CreateStewardFreeBar body,
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
Future<CreateStewardFreeBar?> editStewardPurchasesOutSideOfTheProvince({
|
|
||||||
required String token,
|
|
||||||
required CreateStewardFreeBar body,
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Future<void> deleteStewardPurchasesOutSideOfTheProvince({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<PaginationModel<OutProvinceCarcassesBuyer>?> getOutProvinceCarcassesBuyer({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<void> createOutProvinceCarcassesBuyer({
|
|
||||||
required String token,
|
|
||||||
required OutProvinceCarcassesBuyer body,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<List<IranProvinceCityModel>?> getProvince({CancelToken? cancelToken});
|
|
||||||
|
|
||||||
Future<List<IranProvinceCityModel>?> getCity({required String provinceName});
|
|
||||||
|
|
||||||
Future<PaginationModel<StewardFreeSaleBar>?> getStewardFreeSaleBar({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<void> createOutProvinceStewardFreeBar({
|
|
||||||
required String token,
|
|
||||||
required StewardFreeSaleBarRequest body,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<void> updateOutProvinceStewardFreeBar({
|
|
||||||
required String token,
|
|
||||||
required StewardFreeSaleBarRequest body,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<void> deleteOutProvinceStewardFreeBar({
|
|
||||||
required String token,
|
|
||||||
required String key
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Future<UserProfile?> getUserProfile({required String token});
|
|
||||||
|
|
||||||
Future<void> updateUserProfile({required String token, required UserProfile userProfile});
|
|
||||||
|
|
||||||
Future<void> updatePassword({required String token, required ChangePasswordRequestModel model});
|
|
||||||
|
|
||||||
Future<PaginationModel<SegmentationModel>?> getSegmentation({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<void> createSegmentation({required String token, required SegmentationModel model});
|
|
||||||
|
|
||||||
Future<void> editSegmentation({required String token, required SegmentationModel model});
|
|
||||||
|
|
||||||
Future<SegmentationModel?> deleteSegmentation({required String token, required String key});
|
|
||||||
|
|
||||||
Future<BroadcastPrice?> getBroadcastPrice({required String token});
|
|
||||||
|
|
||||||
Future<StewardSalesInfoDashboard?> getStewardSalesInfoDashboard({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<StewardRemainWeight?> getStewardRemainWeight({required String token});
|
|
||||||
|
|
||||||
//endregion
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//endregion
|
|
||||||
|
|
||||||
//region local
|
|
||||||
Future<void> initWidleyUsed();
|
|
||||||
|
|
||||||
WidelyUsedLocalModel? getAllWidely();
|
|
||||||
//endregion
|
|
||||||
}
|
|
||||||
@@ -1,433 +0,0 @@
|
|||||||
import 'package:rasadyar_chicken/data/data_source/local/chicken_local.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/data_source/remote/chicken/chicken_remote.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/local/widely_used_local_model.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/request/change_password/change_password_request_model.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/request/conform_allocation/conform_allocation.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/request/create_steward_free_bar/create_steward_free_bar.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/request/steward_free_sale_bar/steward_free_sale_bar_request.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/request/submit_steward_allocation/submit_steward_allocation.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/allocated_made/allocated_made.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/bar_information/bar_information.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/broadcast_price/broadcast_price.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/dashboard_kill_house_free_bar/dashboard_kill_house_free_bar.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/guild/guild_model.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/guild_profile/guild_profile.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/imported_loads_model/imported_loads_model.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/inventory/inventory_model.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/iran_province_city/iran_province_city_model.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/kill_house_distribution_info/kill_house_distribution_info.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/segmentation_model/segmentation_model.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/steward_free_bar/steward_free_bar.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/steward_free_bar_dashboard/steward_free_bar_dashboard.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/steward_free_sale_bar/steward_free_sale_bar.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/steward_remain_weight/steward_remain_weight.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/steward_sales_info_dashboard/steward_sales_info_dashboard.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/user_profile/user_profile.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/waiting_arrival/waiting_arrival.dart'
|
|
||||||
hide ProductModel;
|
|
||||||
import 'package:rasadyar_core/core.dart';
|
|
||||||
|
|
||||||
import 'chicken_repository.dart';
|
|
||||||
|
|
||||||
class ChickenRepositoryImp implements ChickenRepository {
|
|
||||||
final ChickenRemoteDatasource remote;
|
|
||||||
final ChickenLocalDataSource local;
|
|
||||||
|
|
||||||
ChickenRepositoryImp({required this.remote, required this.local});
|
|
||||||
|
|
||||||
//region Remote
|
|
||||||
@override
|
|
||||||
Future<List<InventoryModel>?> getInventory({
|
|
||||||
required String token,
|
|
||||||
CancelToken? cancelToken,
|
|
||||||
}) async {
|
|
||||||
var res = await remote.getInventory(token: token, cancelToken: cancelToken);
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<KillHouseDistributionInfo?> getKillHouseDistributionInfo({
|
|
||||||
required String token,
|
|
||||||
}) async {
|
|
||||||
var res = await remote.getKillHouseDistributionInfo(token: token);
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<BarInformation?> getGeneralBarInformation({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
}) async {
|
|
||||||
var res = await remote.getGeneralBarInformation(
|
|
||||||
token: token,
|
|
||||||
queryParameters: queryParameters,
|
|
||||||
);
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<PaginationModel<WaitingArrivalModel>?> getWaitingArrivals({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
}) async {
|
|
||||||
var res = await remote.getWaitingArrivals(
|
|
||||||
token: token,
|
|
||||||
queryParameters: queryParameters,
|
|
||||||
);
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> setSateForArrivals({
|
|
||||||
required String token,
|
|
||||||
required Map<String, dynamic> request,
|
|
||||||
}) async {
|
|
||||||
await remote.setSateForArrivals(token: token, request: request);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<PaginationModel<ImportedLoadsModel>?> getImportedLoadsModel({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
}) async {
|
|
||||||
var res = await remote.getImportedLoadsModel(
|
|
||||||
token: token,
|
|
||||||
queryParameters: queryParameters,
|
|
||||||
);
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<PaginationModel<AllocatedMadeModel>?> getAllocatedMade({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
}) async {
|
|
||||||
var res = await remote.getAllocatedMade(
|
|
||||||
token: token,
|
|
||||||
queryParameters: queryParameters,
|
|
||||||
);
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> confirmAllocation({
|
|
||||||
required String token,
|
|
||||||
required Map<String, dynamic> allocation,
|
|
||||||
}) async {
|
|
||||||
await remote.confirmAllocation(token: token, allocation: allocation);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> denyAllocation({
|
|
||||||
required String token,
|
|
||||||
required String allocationToken,
|
|
||||||
}) async {
|
|
||||||
await remote.denyAllocation(token: token, allocationToken: allocationToken);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> confirmAllAllocation({
|
|
||||||
required String token,
|
|
||||||
required List<String> allocationTokens,
|
|
||||||
}) async {
|
|
||||||
await remote.confirmAllAllocation(
|
|
||||||
token: token,
|
|
||||||
allocationTokens: allocationTokens,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<List<ProductModel>?> getRolesProducts({required String token}) async {
|
|
||||||
var res = await remote.getRolesProducts(token: token);
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<List<GuildModel>?> getGuilds({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
}) async {
|
|
||||||
var res = await remote.getGuilds(
|
|
||||||
token: token,
|
|
||||||
queryParameters: queryParameters,
|
|
||||||
);
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<GuildProfile?> getProfile({required String token}) async {
|
|
||||||
var res = await remote.getProfile(token: token);
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> postSubmitStewardAllocation({
|
|
||||||
required String token,
|
|
||||||
required SubmitStewardAllocation request,
|
|
||||||
}) async {
|
|
||||||
await remote.postSubmitStewardAllocation(token: token, request: request);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> deleteStewardAllocation({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
}) async {
|
|
||||||
await remote.deleteStewardAllocation(
|
|
||||||
token: token,
|
|
||||||
queryParameters: queryParameters,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> updateStewardAllocation({
|
|
||||||
required String token,
|
|
||||||
required ConformAllocation request,
|
|
||||||
}) async {
|
|
||||||
await remote.updateStewardAllocation(token: token, request: request);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<StewardFreeBarDashboard?> getStewardDashboard({
|
|
||||||
required String token,
|
|
||||||
required String stratDate,
|
|
||||||
required String endDate,
|
|
||||||
}) async {
|
|
||||||
var res = await remote.getStewardDashboard(
|
|
||||||
token: token,
|
|
||||||
stratDate: stratDate,
|
|
||||||
endDate: endDate,
|
|
||||||
);
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<DashboardKillHouseFreeBar?> getDashboardKillHouseFreeBar({
|
|
||||||
required String token,
|
|
||||||
required String stratDate,
|
|
||||||
required String endDate,
|
|
||||||
}) async {
|
|
||||||
var res = await remote.getDashboardKillHouseFreeBar(
|
|
||||||
token: token,
|
|
||||||
stratDate: stratDate,
|
|
||||||
endDate: endDate,
|
|
||||||
);
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<PaginationModel<StewardFreeBar>?>
|
|
||||||
getStewardPurchasesOutSideOfTheProvince({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
}) async {
|
|
||||||
var res = await remote.getStewardPurchasesOutSideOfTheProvince(
|
|
||||||
token: token,
|
|
||||||
queryParameters: queryParameters,
|
|
||||||
);
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<List<IranProvinceCityModel>?> getCity({
|
|
||||||
required String provinceName,
|
|
||||||
}) async {
|
|
||||||
var res = await remote.getCity(provinceName: provinceName);
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<List<IranProvinceCityModel>?> getProvince({
|
|
||||||
CancelToken? cancelToken,
|
|
||||||
}) async {
|
|
||||||
var res = await remote.getProvince(cancelToken: cancelToken);
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> createStewardPurchasesOutSideOfTheProvince({
|
|
||||||
required String token,
|
|
||||||
required CreateStewardFreeBar body,
|
|
||||||
}) async {
|
|
||||||
await remote.createStewardPurchasesOutSideOfTheProvince(
|
|
||||||
token: token,
|
|
||||||
body: body,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<CreateStewardFreeBar?> editStewardPurchasesOutSideOfTheProvince({
|
|
||||||
required String token,
|
|
||||||
required CreateStewardFreeBar body,
|
|
||||||
}) async {
|
|
||||||
return await remote.editStewardPurchasesOutSideOfTheProvince(
|
|
||||||
token: token,
|
|
||||||
queryParameters: body.toJson()
|
|
||||||
..removeWhere((key, value) => value == null),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> deleteStewardPurchasesOutSideOfTheProvince({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
}) async {
|
|
||||||
await remote.deleteStewardPurchasesOutSideOfTheProvince(
|
|
||||||
token: token,
|
|
||||||
queryParameters: queryParameters,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<PaginationModel<OutProvinceCarcassesBuyer>?>
|
|
||||||
getOutProvinceCarcassesBuyer({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
}) async {
|
|
||||||
var res = await remote.getOutProvinceCarcassesBuyer(
|
|
||||||
token: token,
|
|
||||||
queryParameters: queryParameters,
|
|
||||||
);
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> createOutProvinceCarcassesBuyer({
|
|
||||||
required String token,
|
|
||||||
required OutProvinceCarcassesBuyer body,
|
|
||||||
}) async {
|
|
||||||
await remote.createOutProvinceCarcassesBuyer(token: token, body: body);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<PaginationModel<StewardFreeSaleBar>?> getStewardFreeSaleBar({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
}) async {
|
|
||||||
var res = await remote.getStewardFreeSaleBar(
|
|
||||||
token: token,
|
|
||||||
queryParameters: queryParameters,
|
|
||||||
);
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> createOutProvinceStewardFreeBar({
|
|
||||||
required String token,
|
|
||||||
required StewardFreeSaleBarRequest body,
|
|
||||||
}) async {
|
|
||||||
await remote.createOutProvinceStewardFreeBar(token: token, body: body);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> updateOutProvinceStewardFreeBar({
|
|
||||||
required String token,
|
|
||||||
required StewardFreeSaleBarRequest body,
|
|
||||||
}) async {
|
|
||||||
await remote.updateOutProvinceStewardFreeBar(token: token, body: body);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> deleteOutProvinceStewardFreeBar({
|
|
||||||
required String token,
|
|
||||||
required String key,
|
|
||||||
}) async {
|
|
||||||
await remote.deleteOutProvinceStewardFreeBar(token: token, key: key);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<UserProfile?> getUserProfile({required String token}) async {
|
|
||||||
var res = await remote.getUserProfile(token: token);
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> updateUserProfile({
|
|
||||||
required String token,
|
|
||||||
required UserProfile userProfile,
|
|
||||||
}) async {
|
|
||||||
await remote.updateUserProfile(token: token, userProfile: userProfile);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> updatePassword({
|
|
||||||
required String token,
|
|
||||||
required ChangePasswordRequestModel model,
|
|
||||||
}) async {
|
|
||||||
await remote.updatePassword(token: token, model: model);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<PaginationModel<SegmentationModel>?> getSegmentation({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
}) async {
|
|
||||||
var res = await remote.getSegmentation(
|
|
||||||
token: token,
|
|
||||||
queryParameters: queryParameters,
|
|
||||||
);
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> createSegmentation({
|
|
||||||
required String token,
|
|
||||||
required SegmentationModel model,
|
|
||||||
}) async {
|
|
||||||
await remote.createSegmentation(token: token, model: model);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> editSegmentation({
|
|
||||||
required String token,
|
|
||||||
required SegmentationModel model,
|
|
||||||
}) async {
|
|
||||||
await remote.editSegmentation(token: token, model: model);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<SegmentationModel?> deleteSegmentation({
|
|
||||||
required String token,
|
|
||||||
required String key,
|
|
||||||
}) async {
|
|
||||||
var res = await remote.deleteSegmentation(token: token, key: key);
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<BroadcastPrice?> getBroadcastPrice({required String token}) async {
|
|
||||||
var res = await remote.getBroadcastPrice(token: token);
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
//endregion
|
|
||||||
|
|
||||||
//region local
|
|
||||||
@override
|
|
||||||
WidelyUsedLocalModel? getAllWidely() => local.getAllWidely();
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> initWidleyUsed() async {
|
|
||||||
await local.initWidleyUsed();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<StewardSalesInfoDashboard?> getStewardSalesInfoDashboard({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
}) async {
|
|
||||||
return await remote.getStewardSalesInfoDashboard(
|
|
||||||
token: token,
|
|
||||||
queryParameters: queryParameters,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<StewardRemainWeight?> getStewardRemainWeight({required String token}) async {
|
|
||||||
return await remote.getStewardRemainWeight(token: token);
|
|
||||||
}
|
|
||||||
|
|
||||||
//endregion
|
|
||||||
}
|
|
||||||
@@ -1,145 +0,0 @@
|
|||||||
import 'package:rasadyar_chicken/data/data_source/remote/poultry_science/poultry_science_remote.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/poultry_export/poultry_export.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/request/kill_registration/kill_registration.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/all_poultry/all_poultry.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/approved_price/approved_price.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/hatching/hatching_models.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/hatching_report/hatching_report.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/kill_house_poultry/kill_house_poultry.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/kill_request_poultry/kill_request_poultry.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/poultry_farm/poultry_farm.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/poultry_hatching/poultry_hatching.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/poultry_order/poultry_order.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/poultry_science/home_poultry_science/home_poultry_science_model.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/sell_for_freezing/sell_for_freezing.dart';
|
|
||||||
import 'package:rasadyar_core/core.dart';
|
|
||||||
|
|
||||||
import 'poultry_science_repository.dart';
|
|
||||||
|
|
||||||
class PoultryScienceRepositoryImp implements PoultryScienceRepository {
|
|
||||||
final PoultryScienceRemoteDatasource datasource;
|
|
||||||
|
|
||||||
PoultryScienceRepositoryImp(this.datasource);
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<HomePoultryScienceModel?> getHomePoultry({
|
|
||||||
required String token,
|
|
||||||
required String type,
|
|
||||||
}) async => await datasource.getHomePoultryScience(token: token, type: type);
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<PaginationModel<HatchingModel>?> getHatchingPoultry({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
}) async => await datasource.getHatchingPoultry(token: token, queryParameters: queryParameters);
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> submitPoultryScienceReport({
|
|
||||||
required String token,
|
|
||||||
required FormData data,
|
|
||||||
ProgressCallback? onSendProgress,
|
|
||||||
}) async => await datasource.submitPoultryScienceReport(
|
|
||||||
token: token,
|
|
||||||
data: data,
|
|
||||||
onSendProgress: onSendProgress,
|
|
||||||
);
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<PaginationModel<HatchingReport>?> getHatchingPoultryReport({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
}) async {
|
|
||||||
return await datasource.getPoultryScienceReport(token: token, queryParameters: queryParameters);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<PaginationModel<PoultryFarm>?> getPoultryScienceFarmList({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
}) async {
|
|
||||||
return await datasource.getPoultryScienceFarmList(
|
|
||||||
token: token,
|
|
||||||
queryParameters: queryParameters,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<ApprovedPrice?> getApprovedPrice({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
}) async {
|
|
||||||
return await datasource.getApprovedPrice(token: token, queryParameters: queryParameters);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<List<AllPoultry>?> getAllPoultry({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
}) async {
|
|
||||||
return await datasource.getAllPoultry(token: token, queryParameters: queryParameters);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<PoultryExport?> getPoultryExport({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
}) async {
|
|
||||||
return await datasource.getPoultryExport(token: token, queryParameters: queryParameters);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<SellForFreezing?> getSellForFreezing({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
}) async {
|
|
||||||
return await datasource.getSellForFreezing(token: token, queryParameters: queryParameters);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<List<KillRequestPoultry>?> getUserPoultry({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
}) async {
|
|
||||||
return await datasource.getUserPoultry(token: token, queryParameters: queryParameters);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<List<PoultryHatching>?> getPoultryHatching({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
}) async {
|
|
||||||
return await datasource.getPoultryHatching(token: token, queryParameters: queryParameters);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<List<KillHousePoultry>?> getKillHouseList({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
}) async {
|
|
||||||
return await datasource.getKillHouseList(token: token, queryParameters: queryParameters);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> submitKillRegistration({
|
|
||||||
required String token,
|
|
||||||
required KillRegistrationRequest request,
|
|
||||||
}) async {
|
|
||||||
await datasource.submitKillRegistration(token: token, request: request);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<PaginationModel<PoultryOrder>?> getPoultryOderList({
|
|
||||||
required String token,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
}) async {
|
|
||||||
return await datasource.getPoultryOderList(token: token, queryParameters: queryParameters);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> deletePoultryOder({
|
|
||||||
required String token,
|
|
||||||
required String orderId,
|
|
||||||
}) async {
|
|
||||||
await datasource.deletePoultryOder(token: token, orderId: orderId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import 'package:rasadyar_chicken/data/models/local/widely_used_local_model.dart';
|
import 'package:rasadyar_chicken/features/common/data/model/local/widely_used_local_model.dart';
|
||||||
|
|
||||||
abstract class ChickenLocalDataSource {
|
abstract class ChickenLocalDataSource {
|
||||||
Future<void> openBox();
|
Future<void> openBox();
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import 'package:rasadyar_chicken/data/models/local/widely_used_local_model.dart';
|
import 'package:rasadyar_chicken/features/common/data/model/local/widely_used_local_model.dart';
|
||||||
import 'package:rasadyar_chicken/features/steward/presentation/routes/routes.dart';
|
import 'package:rasadyar_chicken/features/steward/presentation/routes/routes.dart';
|
||||||
import 'package:rasadyar_core/core.dart';
|
import 'package:rasadyar_core/core.dart';
|
||||||
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/user_info/user_info_model.dart';
|
import 'package:rasadyar_chicken/features/common/data/model/response/user_info/user_info_model.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/user_profile_model/user_profile_model.dart';
|
import 'package:rasadyar_chicken/features/common/data/model/response/user_profile_model/user_profile_model.dart';
|
||||||
|
|
||||||
abstract class AuthRemoteDataSource {
|
abstract class AuthRemoteDataSource {
|
||||||
Future<UserProfileModel?> login({required Map<String, dynamic> authRequest});
|
Future<UserProfileModel?> login({required Map<String, dynamic> authRequest});
|
||||||
@@ -11,6 +11,6 @@ abstract class AuthRemoteDataSource {
|
|||||||
|
|
||||||
Future<UserInfoModel?> getUserInfo(String phoneNumber);
|
Future<UserInfoModel?> getUserInfo(String phoneNumber);
|
||||||
|
|
||||||
/// Calls `/steward-app-login/` endpoint with required token and `server` as query param, plus optional extra query parameters.
|
|
||||||
Future<void> stewardAppLogin({required String token, Map<String, dynamic>? queryParameters});
|
Future<void> stewardAppLogin({required String token, Map<String, dynamic>? queryParameters});
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
import 'package:rasadyar_chicken/data/models/response/user_info/user_info_model.dart';
|
import 'package:rasadyar_chicken/features/common/data/model/response/user_info/user_info_model.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/user_profile_model/user_profile_model.dart';
|
import 'package:rasadyar_chicken/features/common/data/model/response/user_profile_model/user_profile_model.dart';
|
||||||
import 'package:rasadyar_core/core.dart';
|
import 'package:rasadyar_core/core.dart';
|
||||||
|
|
||||||
import 'auth_remote.dart';
|
import 'auth_remote.dart';
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
abstract class ChickenRemoteDataSource {
|
|
||||||
Future<void> getChickens();
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,75 @@
|
|||||||
|
import 'package:rasadyar_chicken/features/common/data/model/request/change_password/change_password_request_model.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/response/bar_information/bar_information.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/response/broadcast_price/broadcast_price.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/response/guild/guild_model.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/response/guild_profile/guild_profile.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/response/inventory/inventory_model.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/response/iran_province_city/iran_province_city_model.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/response/kill_house_distribution_info/kill_house_distribution_info.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/response/roles_products/roles_products.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/steward/data/model/response/segmentation_model/segmentation_model.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/response/user_profile/user_profile.dart';
|
||||||
|
import 'package:rasadyar_core/core.dart';
|
||||||
|
|
||||||
|
abstract class CommonRemoteDatasource {
|
||||||
|
Future<List<InventoryModel>?> getInventory({
|
||||||
|
required String token,
|
||||||
|
CancelToken? cancelToken,
|
||||||
|
});
|
||||||
|
|
||||||
|
Future<KillHouseDistributionInfo?> getKillHouseDistributionInfo({
|
||||||
|
required String token,
|
||||||
|
});
|
||||||
|
|
||||||
|
Future<BarInformation?> getGeneralBarInformation({
|
||||||
|
required String token,
|
||||||
|
Map<String, dynamic>? queryParameters,
|
||||||
|
});
|
||||||
|
|
||||||
|
Future<List<ProductModel>?> getRolesProducts({required String token});
|
||||||
|
|
||||||
|
Future<List<GuildModel>?> getGuilds({
|
||||||
|
required String token,
|
||||||
|
Map<String, dynamic>? queryParameters,
|
||||||
|
});
|
||||||
|
|
||||||
|
Future<GuildProfile?> getProfile({required String token});
|
||||||
|
|
||||||
|
Future<List<IranProvinceCityModel>?> getProvince({CancelToken? cancelToken});
|
||||||
|
|
||||||
|
Future<List<IranProvinceCityModel>?> getCity({required String provinceName});
|
||||||
|
|
||||||
|
Future<UserProfile?> getUserProfile({required String token});
|
||||||
|
|
||||||
|
Future<void> updateUserProfile({
|
||||||
|
required String token,
|
||||||
|
required UserProfile userProfile,
|
||||||
|
});
|
||||||
|
|
||||||
|
Future<void> updatePassword({
|
||||||
|
required String token,
|
||||||
|
required ChangePasswordRequestModel model,
|
||||||
|
});
|
||||||
|
|
||||||
|
Future<PaginationModel<SegmentationModel>?> getSegmentation({
|
||||||
|
required String token,
|
||||||
|
Map<String, dynamic>? queryParameters,
|
||||||
|
});
|
||||||
|
|
||||||
|
Future<void> createSegmentation({
|
||||||
|
required String token,
|
||||||
|
required SegmentationModel model,
|
||||||
|
});
|
||||||
|
|
||||||
|
Future<void> editSegmentation({
|
||||||
|
required String token,
|
||||||
|
required SegmentationModel model,
|
||||||
|
});
|
||||||
|
|
||||||
|
Future<SegmentationModel?> deleteSegmentation({
|
||||||
|
required String token,
|
||||||
|
required String key,
|
||||||
|
});
|
||||||
|
|
||||||
|
Future<BroadcastPrice?> getBroadcastPrice({required String token});
|
||||||
|
}
|
||||||
@@ -0,0 +1,238 @@
|
|||||||
|
import 'package:rasadyar_chicken/features/common/data/model/request/change_password/change_password_request_model.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/response/bar_information/bar_information.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/response/broadcast_price/broadcast_price.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/response/guild/guild_model.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/response/guild_profile/guild_profile.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/response/inventory/inventory_model.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/response/iran_province_city/iran_province_city_model.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/response/kill_house_distribution_info/kill_house_distribution_info.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/response/roles_products/roles_products.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/steward/data/model/response/segmentation_model/segmentation_model.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/response/user_profile/user_profile.dart';
|
||||||
|
import 'package:rasadyar_core/core.dart';
|
||||||
|
|
||||||
|
import 'common_remote.dart';
|
||||||
|
|
||||||
|
class CommonRemoteDatasourceImp implements CommonRemoteDatasource {
|
||||||
|
final DioRemote _httpClient;
|
||||||
|
|
||||||
|
CommonRemoteDatasourceImp(this._httpClient);
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<List<InventoryModel>?> getInventory({
|
||||||
|
required String token,
|
||||||
|
CancelToken? cancelToken,
|
||||||
|
}) async {
|
||||||
|
var res = await _httpClient.get(
|
||||||
|
'/roles-products/?role=Steward',
|
||||||
|
headers: {'Authorization': 'Bearer $token'},
|
||||||
|
|
||||||
|
fromJsonList: (json) => (json)
|
||||||
|
.map((item) => InventoryModel.fromJson(item as Map<String, dynamic>))
|
||||||
|
.toList(),
|
||||||
|
);
|
||||||
|
|
||||||
|
return res.data;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<KillHouseDistributionInfo?> getKillHouseDistributionInfo({
|
||||||
|
required String token,
|
||||||
|
}) async {
|
||||||
|
var res = await _httpClient.get(
|
||||||
|
'/kill-house-distribution-info/?role=Steward',
|
||||||
|
headers: {'Authorization': 'Bearer $token'},
|
||||||
|
fromJson: KillHouseDistributionInfo.fromJson,
|
||||||
|
);
|
||||||
|
|
||||||
|
return res.data;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<BarInformation?> getGeneralBarInformation({
|
||||||
|
required String token,
|
||||||
|
Map<String, dynamic>? queryParameters,
|
||||||
|
}) async {
|
||||||
|
var res = await _httpClient.get(
|
||||||
|
'/bars_for_kill_house_dashboard/',
|
||||||
|
queryParameters: queryParameters,
|
||||||
|
headers: {'Authorization': 'Bearer $token'},
|
||||||
|
fromJson: BarInformation.fromJson,
|
||||||
|
);
|
||||||
|
return res.data;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<List<ProductModel>?> getRolesProducts({required String token}) async {
|
||||||
|
var res = await _httpClient.get(
|
||||||
|
'/roles-products/?role=Steward',
|
||||||
|
headers: {'Authorization': 'Bearer $token'},
|
||||||
|
fromJsonList: (json) => json
|
||||||
|
.map((item) => ProductModel.fromJson(item as Map<String, dynamic>))
|
||||||
|
.toList(),
|
||||||
|
);
|
||||||
|
return res.data;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<List<GuildModel>?> getGuilds({
|
||||||
|
required String token,
|
||||||
|
Map<String, dynamic>? queryParameters,
|
||||||
|
}) async {
|
||||||
|
var res = await _httpClient.get(
|
||||||
|
'/guilds/',
|
||||||
|
queryParameters: queryParameters,
|
||||||
|
headers: {'Authorization': 'Bearer $token'},
|
||||||
|
fromJsonList: (json) => json
|
||||||
|
.map((item) => GuildModel.fromJson(item as Map<String, dynamic>))
|
||||||
|
.toList(),
|
||||||
|
);
|
||||||
|
return res.data;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<GuildProfile?> getProfile({required String token}) async {
|
||||||
|
var res = await _httpClient.get(
|
||||||
|
'/guilds/0/?profile',
|
||||||
|
headers: {'Authorization': 'Bearer $token'},
|
||||||
|
fromJson: GuildProfile.fromJson,
|
||||||
|
);
|
||||||
|
return res.data;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<List<IranProvinceCityModel>?> getCity({
|
||||||
|
required String provinceName,
|
||||||
|
}) async {
|
||||||
|
var res = await _httpClient.get(
|
||||||
|
'/iran_city/',
|
||||||
|
queryParameters: {'name': provinceName},
|
||||||
|
fromJsonList: (json) => json
|
||||||
|
.map(
|
||||||
|
(item) =>
|
||||||
|
IranProvinceCityModel.fromJson(item as Map<String, dynamic>),
|
||||||
|
)
|
||||||
|
.toList(),
|
||||||
|
);
|
||||||
|
return res.data;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<List<IranProvinceCityModel>?> getProvince({
|
||||||
|
CancelToken? cancelToken,
|
||||||
|
}) async {
|
||||||
|
var res = await _httpClient.get(
|
||||||
|
'/iran_province/',
|
||||||
|
fromJsonList: (json) => json
|
||||||
|
.map(
|
||||||
|
(item) =>
|
||||||
|
IranProvinceCityModel.fromJson(item as Map<String, dynamic>),
|
||||||
|
)
|
||||||
|
.toList(),
|
||||||
|
);
|
||||||
|
return res.data;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<UserProfile?> getUserProfile({required String token}) async {
|
||||||
|
var res = await _httpClient.get(
|
||||||
|
'/system_user_profile/?self-profile',
|
||||||
|
headers: {'Authorization': 'Bearer $token'},
|
||||||
|
fromJson: (json) => UserProfile.fromJson(json),
|
||||||
|
);
|
||||||
|
|
||||||
|
return res.data;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<void> updateUserProfile({
|
||||||
|
required String token,
|
||||||
|
required UserProfile userProfile,
|
||||||
|
}) async {
|
||||||
|
await _httpClient.put(
|
||||||
|
'/system_user_profile/0/',
|
||||||
|
headers: {'Authorization': 'Bearer $token'},
|
||||||
|
data: userProfile.toJson()..removeWhere((key, value) => value == null),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<void> updatePassword({
|
||||||
|
required String token,
|
||||||
|
required ChangePasswordRequestModel model,
|
||||||
|
}) async {
|
||||||
|
await _httpClient.post(
|
||||||
|
'/api/change_password/',
|
||||||
|
headers: {'Authorization': 'Bearer $token'},
|
||||||
|
data: model.toJson()..removeWhere((key, value) => value == null),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<PaginationModel<SegmentationModel>?> getSegmentation({
|
||||||
|
required String token,
|
||||||
|
Map<String, dynamic>? queryParameters,
|
||||||
|
}) async {
|
||||||
|
var res = await _httpClient.get(
|
||||||
|
'/app-segmentation/',
|
||||||
|
queryParameters: queryParameters,
|
||||||
|
headers: {'Authorization': 'Bearer $token'},
|
||||||
|
fromJson: (json) => PaginationModel<SegmentationModel>.fromJson(
|
||||||
|
json,
|
||||||
|
(json) => SegmentationModel.fromJson(json as Map<String, dynamic>),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
return res.data;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<void> createSegmentation({
|
||||||
|
required String token,
|
||||||
|
required SegmentationModel model,
|
||||||
|
}) async {
|
||||||
|
await _httpClient.post(
|
||||||
|
'/app-segmentation/',
|
||||||
|
data: model.toJson()..removeWhere((key, value) => value == null),
|
||||||
|
headers: {'Authorization': 'Bearer $token'},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<void> editSegmentation({
|
||||||
|
required String token,
|
||||||
|
required SegmentationModel model,
|
||||||
|
}) async {
|
||||||
|
await _httpClient.put(
|
||||||
|
'/app-segmentation/0/',
|
||||||
|
data: model.toJson()..removeWhere((key, value) => value == null),
|
||||||
|
headers: {'Authorization': 'Bearer $token'},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<SegmentationModel?> deleteSegmentation({
|
||||||
|
required String token,
|
||||||
|
required String key,
|
||||||
|
}) async {
|
||||||
|
var res = await _httpClient.delete<SegmentationModel?>(
|
||||||
|
'/app-segmentation/0/',
|
||||||
|
queryParameters: {'key': key},
|
||||||
|
headers: {'Authorization': 'Bearer $token'},
|
||||||
|
fromJson: (json) => SegmentationModel.fromJson(json),
|
||||||
|
);
|
||||||
|
|
||||||
|
return res.data;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<BroadcastPrice?> getBroadcastPrice({required String token}) async {
|
||||||
|
var res = await _httpClient.get(
|
||||||
|
'/broadcast-price/',
|
||||||
|
headers: {'Authorization': 'Bearer $token'},
|
||||||
|
|
||||||
|
fromJson: (json) => BroadcastPrice.fromJson(json),
|
||||||
|
);
|
||||||
|
|
||||||
|
return res.data;
|
||||||
|
}
|
||||||
|
}
|
||||||
66
packages/chicken/lib/features/common/data/di/common_di.dart
Normal file
66
packages/chicken/lib/features/common/data/di/common_di.dart
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
import 'package:rasadyar_chicken/features/common/data/datasources/local/chicken_local.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/datasources/local/chicken_local_imp.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/datasources/remote/auth/auth_remote.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/datasources/remote/auth/auth_remote_imp.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/datasources/remote/common/common_remote.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/datasources/remote/common/common_remote_imp.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/repositories/auth/auth_repository.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/repositories/auth/auth_repository_imp.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/repositories/common/common_repository.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/repositories/common/common_repository_imp.dart';
|
||||||
|
import 'package:rasadyar_core/core.dart';
|
||||||
|
|
||||||
|
/// Setup dependency injection for common feature
|
||||||
|
Future<void> setupCommonDI(GetIt di, DioRemote dioRemote) async {
|
||||||
|
di.registerLazySingleton<AuthRemoteDataSource>(
|
||||||
|
() => AuthRemoteDataSourceImp(dioRemote),
|
||||||
|
);
|
||||||
|
|
||||||
|
di.registerLazySingleton<AuthRepository>(
|
||||||
|
() => AuthRepositoryImpl(di.get<AuthRemoteDataSource>()),
|
||||||
|
);
|
||||||
|
|
||||||
|
di.registerLazySingleton<CommonRemoteDatasource>(
|
||||||
|
() => CommonRemoteDatasourceImp(dioRemote),
|
||||||
|
);
|
||||||
|
|
||||||
|
di.registerLazySingleton<ChickenLocalDataSource>(
|
||||||
|
() => ChickenLocalDataSourceImp(),
|
||||||
|
);
|
||||||
|
|
||||||
|
di.registerLazySingleton<CommonRepository>(
|
||||||
|
() => CommonRepositoryImp(
|
||||||
|
remote: di.get<CommonRemoteDatasource>(),
|
||||||
|
local: di.get<ChickenLocalDataSource>(),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Re-register common dependencies (used when base URL changes)
|
||||||
|
Future<void> reRegisterCommonDI(GetIt di, DioRemote dioRemote) async {
|
||||||
|
await reRegister(di, () => AuthRemoteDataSourceImp(dioRemote));
|
||||||
|
await reRegister(
|
||||||
|
di,
|
||||||
|
() => AuthRepositoryImpl(di.get<AuthRemoteDataSource>()),
|
||||||
|
);
|
||||||
|
await reRegister(di, () => CommonRemoteDatasourceImp(dioRemote));
|
||||||
|
await reRegister(di, () => ChickenLocalDataSourceImp());
|
||||||
|
await reRegister(
|
||||||
|
di,
|
||||||
|
() => CommonRepositoryImp(
|
||||||
|
remote: di.get<CommonRemoteDatasource>(),
|
||||||
|
local: di.get<ChickenLocalDataSource>(),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Helper function to re-register a dependency
|
||||||
|
Future<void> reRegister<T extends Object>(
|
||||||
|
GetIt di,
|
||||||
|
T Function() factory,
|
||||||
|
) async {
|
||||||
|
if (di.isRegistered<T>()) {
|
||||||
|
await di.unregister<T>();
|
||||||
|
}
|
||||||
|
di.registerLazySingleton<T>(factory);
|
||||||
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
import 'package:rasadyar_chicken/data/models/response/user_info/user_info_model.dart';
|
import 'package:rasadyar_chicken/features/common/data/model/response/user_info/user_info_model.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/user_profile_model/user_profile_model.dart';
|
import 'package:rasadyar_chicken/features/common/data/model/response/user_profile_model/user_profile_model.dart';
|
||||||
|
|
||||||
abstract class AuthRepository {
|
abstract class AuthRepository {
|
||||||
Future<UserProfileModel?> login({required Map<String, dynamic> authRequest});
|
Future<UserProfileModel?> login({required Map<String, dynamic> authRequest});
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
import 'package:rasadyar_chicken/data/data_source/remote/auth/auth_remote.dart';
|
import 'package:rasadyar_chicken/features/common/data/datasources/remote/auth/auth_remote.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/user_info/user_info_model.dart';
|
import 'package:rasadyar_chicken/features/common/data/model/response/user_info/user_info_model.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/user_profile_model/user_profile_model.dart';
|
import 'package:rasadyar_chicken/features/common/data/model/response/user_profile_model/user_profile_model.dart';
|
||||||
|
|
||||||
import 'auth_repository.dart';
|
import 'auth_repository.dart';
|
||||||
|
|
||||||
@@ -0,0 +1,85 @@
|
|||||||
|
import 'package:rasadyar_chicken/features/common/data/model/local/widely_used_local_model.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/request/change_password/change_password_request_model.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/response/bar_information/bar_information.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/response/broadcast_price/broadcast_price.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/response/guild/guild_model.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/response/guild_profile/guild_profile.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/response/inventory/inventory_model.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/response/iran_province_city/iran_province_city_model.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/response/kill_house_distribution_info/kill_house_distribution_info.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/response/roles_products/roles_products.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/steward/data/model/response/segmentation_model/segmentation_model.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/response/user_profile/user_profile.dart';
|
||||||
|
import 'package:rasadyar_core/core.dart';
|
||||||
|
|
||||||
|
abstract class CommonRepository {
|
||||||
|
//region Remote
|
||||||
|
Future<List<InventoryModel>?> getInventory({
|
||||||
|
required String token,
|
||||||
|
CancelToken? cancelToken,
|
||||||
|
});
|
||||||
|
|
||||||
|
Future<KillHouseDistributionInfo?> getKillHouseDistributionInfo({
|
||||||
|
required String token,
|
||||||
|
});
|
||||||
|
|
||||||
|
Future<BarInformation?> getGeneralBarInformation({
|
||||||
|
required String token,
|
||||||
|
Map<String, dynamic>? queryParameters,
|
||||||
|
});
|
||||||
|
|
||||||
|
Future<List<ProductModel>?> getRolesProducts({required String token});
|
||||||
|
|
||||||
|
Future<List<GuildModel>?> getGuilds({
|
||||||
|
required String token,
|
||||||
|
Map<String, dynamic>? queryParameters,
|
||||||
|
});
|
||||||
|
|
||||||
|
Future<GuildProfile?> getProfile({required String token});
|
||||||
|
|
||||||
|
Future<List<IranProvinceCityModel>?> getProvince({CancelToken? cancelToken});
|
||||||
|
|
||||||
|
Future<List<IranProvinceCityModel>?> getCity({required String provinceName});
|
||||||
|
|
||||||
|
Future<UserProfile?> getUserProfile({required String token});
|
||||||
|
|
||||||
|
Future<void> updateUserProfile({
|
||||||
|
required String token,
|
||||||
|
required UserProfile userProfile,
|
||||||
|
});
|
||||||
|
|
||||||
|
Future<void> updatePassword({
|
||||||
|
required String token,
|
||||||
|
required ChangePasswordRequestModel model,
|
||||||
|
});
|
||||||
|
|
||||||
|
Future<PaginationModel<SegmentationModel>?> getSegmentation({
|
||||||
|
required String token,
|
||||||
|
Map<String, dynamic>? queryParameters,
|
||||||
|
});
|
||||||
|
|
||||||
|
Future<void> createSegmentation({
|
||||||
|
required String token,
|
||||||
|
required SegmentationModel model,
|
||||||
|
});
|
||||||
|
|
||||||
|
Future<void> editSegmentation({
|
||||||
|
required String token,
|
||||||
|
required SegmentationModel model,
|
||||||
|
});
|
||||||
|
|
||||||
|
Future<SegmentationModel?> deleteSegmentation({
|
||||||
|
required String token,
|
||||||
|
required String key,
|
||||||
|
});
|
||||||
|
|
||||||
|
Future<BroadcastPrice?> getBroadcastPrice({required String token});
|
||||||
|
|
||||||
|
//endregion
|
||||||
|
|
||||||
|
//region local
|
||||||
|
Future<void> initWidleyUsed();
|
||||||
|
|
||||||
|
WidelyUsedLocalModel? getAllWidely();
|
||||||
|
//endregion
|
||||||
|
}
|
||||||
@@ -0,0 +1,172 @@
|
|||||||
|
import 'package:rasadyar_chicken/features/common/data/datasources/local/chicken_local.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/datasources/remote/common/common_remote.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/local/widely_used_local_model.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/request/change_password/change_password_request_model.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/response/bar_information/bar_information.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/response/broadcast_price/broadcast_price.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/response/guild/guild_model.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/response/guild_profile/guild_profile.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/response/inventory/inventory_model.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/response/iran_province_city/iran_province_city_model.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/response/kill_house_distribution_info/kill_house_distribution_info.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/response/roles_products/roles_products.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/steward/data/model/response/segmentation_model/segmentation_model.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/common/data/model/response/user_profile/user_profile.dart';
|
||||||
|
import 'package:rasadyar_core/core.dart';
|
||||||
|
|
||||||
|
import 'common_repository.dart';
|
||||||
|
|
||||||
|
class CommonRepositoryImp implements CommonRepository {
|
||||||
|
final CommonRemoteDatasource remote;
|
||||||
|
final ChickenLocalDataSource local;
|
||||||
|
|
||||||
|
CommonRepositoryImp({required this.remote, required this.local});
|
||||||
|
|
||||||
|
//region Remote
|
||||||
|
@override
|
||||||
|
Future<List<InventoryModel>?> getInventory({
|
||||||
|
required String token,
|
||||||
|
CancelToken? cancelToken,
|
||||||
|
}) async {
|
||||||
|
var res = await remote.getInventory(token: token, cancelToken: cancelToken);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<KillHouseDistributionInfo?> getKillHouseDistributionInfo({
|
||||||
|
required String token,
|
||||||
|
}) async {
|
||||||
|
var res = await remote.getKillHouseDistributionInfo(token: token);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<BarInformation?> getGeneralBarInformation({
|
||||||
|
required String token,
|
||||||
|
Map<String, dynamic>? queryParameters,
|
||||||
|
}) async {
|
||||||
|
var res = await remote.getGeneralBarInformation(
|
||||||
|
token: token,
|
||||||
|
queryParameters: queryParameters,
|
||||||
|
);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<List<ProductModel>?> getRolesProducts({required String token}) async {
|
||||||
|
var res = await remote.getRolesProducts(token: token);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<List<GuildModel>?> getGuilds({
|
||||||
|
required String token,
|
||||||
|
Map<String, dynamic>? queryParameters,
|
||||||
|
}) async {
|
||||||
|
var res = await remote.getGuilds(
|
||||||
|
token: token,
|
||||||
|
queryParameters: queryParameters,
|
||||||
|
);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<GuildProfile?> getProfile({required String token}) async {
|
||||||
|
var res = await remote.getProfile(token: token);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<List<IranProvinceCityModel>?> getCity({
|
||||||
|
required String provinceName,
|
||||||
|
}) async {
|
||||||
|
var res = await remote.getCity(provinceName: provinceName);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<List<IranProvinceCityModel>?> getProvince({
|
||||||
|
CancelToken? cancelToken,
|
||||||
|
}) async {
|
||||||
|
var res = await remote.getProvince(cancelToken: cancelToken);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<UserProfile?> getUserProfile({required String token}) async {
|
||||||
|
var res = await remote.getUserProfile(token: token);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<void> updateUserProfile({
|
||||||
|
required String token,
|
||||||
|
required UserProfile userProfile,
|
||||||
|
}) async {
|
||||||
|
await remote.updateUserProfile(token: token, userProfile: userProfile);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<void> updatePassword({
|
||||||
|
required String token,
|
||||||
|
required ChangePasswordRequestModel model,
|
||||||
|
}) async {
|
||||||
|
await remote.updatePassword(token: token, model: model);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<PaginationModel<SegmentationModel>?> getSegmentation({
|
||||||
|
required String token,
|
||||||
|
Map<String, dynamic>? queryParameters,
|
||||||
|
}) async {
|
||||||
|
var res = await remote.getSegmentation(
|
||||||
|
token: token,
|
||||||
|
queryParameters: queryParameters,
|
||||||
|
);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<void> createSegmentation({
|
||||||
|
required String token,
|
||||||
|
required SegmentationModel model,
|
||||||
|
}) async {
|
||||||
|
await remote.createSegmentation(token: token, model: model);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<void> editSegmentation({
|
||||||
|
required String token,
|
||||||
|
required SegmentationModel model,
|
||||||
|
}) async {
|
||||||
|
await remote.editSegmentation(token: token, model: model);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<SegmentationModel?> deleteSegmentation({
|
||||||
|
required String token,
|
||||||
|
required String key,
|
||||||
|
}) async {
|
||||||
|
var res = await remote.deleteSegmentation(token: token, key: key);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<BroadcastPrice?> getBroadcastPrice({required String token}) async {
|
||||||
|
var res = await remote.getBroadcastPrice(token: token);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
//endregion
|
||||||
|
|
||||||
|
//region local
|
||||||
|
@override
|
||||||
|
WidelyUsedLocalModel? getAllWidely() => local.getAllWidely();
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<void> initWidleyUsed() async {
|
||||||
|
await local.initWidleyUsed();
|
||||||
|
}
|
||||||
|
|
||||||
|
//endregion
|
||||||
|
}
|
||||||
@@ -4,9 +4,9 @@ import 'dart:io';
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:rasadyar_chicken/data/common/dio_error_handler.dart';
|
import 'package:rasadyar_chicken/data/common/dio_error_handler.dart';
|
||||||
import 'package:rasadyar_chicken/data/di/chicken_di.dart';
|
import 'package:rasadyar_chicken/data/di/chicken_di.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/user_info/user_info_model.dart';
|
import 'package:rasadyar_chicken/features/common/data/model/response/user_info/user_info_model.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/user_profile_model/user_profile_model.dart';
|
import 'package:rasadyar_chicken/features/common/data/model/response/user_profile_model/user_profile_model.dart';
|
||||||
import 'package:rasadyar_chicken/data/repositories/auth/auth_repository.dart';
|
import 'package:rasadyar_chicken/features/common/data/repositories/auth/auth_repository.dart';
|
||||||
import 'package:rasadyar_chicken/features/common/presentation/routes/routes.dart';
|
import 'package:rasadyar_chicken/features/common/presentation/routes/routes.dart';
|
||||||
import 'package:rasadyar_chicken/features/steward/presentation/routes/routes.dart';
|
import 'package:rasadyar_chicken/features/steward/presentation/routes/routes.dart';
|
||||||
import 'package:rasadyar_chicken/presentation/widget/captcha/logic.dart';
|
import 'package:rasadyar_chicken/presentation/widget/captcha/logic.dart';
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:rasadyar_chicken/data/di/chicken_di.dart';
|
import 'package:rasadyar_chicken/data/di/chicken_di.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/request/change_password/change_password_request_model.dart';
|
import 'package:rasadyar_chicken/features/common/data/model/request/change_password/change_password_request_model.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/iran_province_city/iran_province_city_model.dart';
|
import 'package:rasadyar_chicken/features/common/data/model/response/iran_province_city/iran_province_city_model.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/user_profile/user_profile.dart';
|
import 'package:rasadyar_chicken/features/common/data/model/response/user_profile/user_profile.dart';
|
||||||
import 'package:rasadyar_chicken/data/repositories/chicken/chicken_repository.dart';
|
import 'package:rasadyar_chicken/features/common/data/repositories/common/common_repository.dart';
|
||||||
import 'package:rasadyar_core/core.dart';
|
import 'package:rasadyar_core/core.dart';
|
||||||
|
|
||||||
class ProfileLogic extends GetxController {
|
class ProfileLogic extends GetxController {
|
||||||
ChickenRepository chickenRepository = diChicken.get<ChickenRepository>();
|
CommonRepository commonRepository = diChicken.get<CommonRepository>();
|
||||||
GService gService = Get.find<GService>();
|
GService gService = Get.find<GService>();
|
||||||
TokenStorageService tokenService = Get.find<TokenStorageService>();
|
TokenStorageService tokenService = Get.find<TokenStorageService>();
|
||||||
RxInt selectedInformationType = 0.obs;
|
RxInt selectedInformationType = 0.obs;
|
||||||
@@ -79,11 +79,10 @@ class ProfileLogic extends GetxController {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Future<void> getUserProfile() async {
|
Future<void> getUserProfile() async {
|
||||||
userProfile.value = Resource.loading();
|
userProfile.value = Resource.loading();
|
||||||
await safeCall<UserProfile?>(
|
await safeCall<UserProfile?>(
|
||||||
call: () async => await chickenRepository.getUserProfile(
|
call: () async => await commonRepository.getUserProfile(
|
||||||
token: tokenService.accessToken.value!,
|
token: tokenService.accessToken.value!,
|
||||||
),
|
),
|
||||||
onSuccess: (result) {
|
onSuccess: (result) {
|
||||||
@@ -97,7 +96,7 @@ class ProfileLogic extends GetxController {
|
|||||||
|
|
||||||
Future<void> getCites() async {
|
Future<void> getCites() async {
|
||||||
await safeCall(
|
await safeCall(
|
||||||
call: () => chickenRepository.getCity(
|
call: () => commonRepository.getCity(
|
||||||
provinceName: selectedProvince.value?.name ?? '',
|
provinceName: selectedProvince.value?.name ?? '',
|
||||||
),
|
),
|
||||||
onSuccess: (result) {
|
onSuccess: (result) {
|
||||||
@@ -124,7 +123,7 @@ class ProfileLogic extends GetxController {
|
|||||||
);
|
);
|
||||||
isOnLoading.value = true;
|
isOnLoading.value = true;
|
||||||
await safeCall(
|
await safeCall(
|
||||||
call: () async => await chickenRepository.updateUserProfile(
|
call: () async => await commonRepository.updateUserProfile(
|
||||||
token: tokenService.accessToken.value!,
|
token: tokenService.accessToken.value!,
|
||||||
userProfile: userProfile,
|
userProfile: userProfile,
|
||||||
),
|
),
|
||||||
@@ -145,7 +144,7 @@ class ProfileLogic extends GetxController {
|
|||||||
);
|
);
|
||||||
|
|
||||||
await safeCall(
|
await safeCall(
|
||||||
call: () async => await chickenRepository.updatePassword(
|
call: () async => await commonRepository.updatePassword(
|
||||||
token: tokenService.accessToken.value!,
|
token: tokenService.accessToken.value!,
|
||||||
model: model,
|
model: model,
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import 'package:flutter/cupertino.dart' hide Image;
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:rasadyar_chicken/data/common/fa_user_role.dart';
|
import 'package:rasadyar_chicken/data/common/fa_user_role.dart';
|
||||||
import 'package:rasadyar_chicken/data/di/chicken_di.dart';
|
import 'package:rasadyar_chicken/data/di/chicken_di.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/user_profile/user_profile.dart';
|
import 'package:rasadyar_chicken/features/common/data/model/response/user_profile/user_profile.dart';
|
||||||
import 'package:rasadyar_core/core.dart';
|
import 'package:rasadyar_core/core.dart';
|
||||||
|
|
||||||
import 'logic.dart';
|
import 'logic.dart';
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
abstract class PoultryFarmLocalDataSource {
|
abstract class PoultryFarmLocalDataSource {
|
||||||
// TODO: Implement local data source methods
|
// TODO: Implement local data source methods
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
abstract class PoultryFarmRemoteDataSource {
|
abstract class PoultryFarmRemoteDataSource {
|
||||||
Future<void> getPoultryFarms();
|
Future<void> getPoultryFarms();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
abstract class PoultryFarmRepository {
|
abstract class PoultryFarmRepository {
|
||||||
// TODO: Implement repository interface
|
// TODO: Implement repository interface
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,92 @@
|
|||||||
|
import 'package:rasadyar_chicken/features/poultry_science/data/model/response/hatching/hatching_models.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/poultry_science/data/model/response/hatching_report/hatching_report.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/poultry_science/data/model/response/home_poultry_science/home_poultry_science_model.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/poultry_science/data/model/response/poultry_farm/poultry_farm.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/poultry_science/data/model/response/approved_price/approved_price.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/poultry_science/data/model/response/all_poultry/all_poultry.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/poultry_science/data/model/response/sell_for_freezing/sell_for_freezing.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/poultry_science/data/model/response/poultry_export/poultry_export.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/poultry_science/data/model/response/kill_request_poultry/kill_request_poultry.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/poultry_science/data/model/response/poultry_hatching/poultry_hatching.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/poultry_science/data/model/response/kill_house_poultry/kill_house_poultry.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/poultry_science/data/model/request/kill_registration/kill_registration.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/poultry_science/data/model/response/poultry_order/poultry_order.dart';
|
||||||
|
import 'package:rasadyar_core/core.dart';
|
||||||
|
|
||||||
abstract class PoultryScienceRemoteDataSource {
|
abstract class PoultryScienceRemoteDataSource {
|
||||||
Future<void> getPoultryScience();
|
Future<HomePoultryScienceModel?> getHomePoultryScience({
|
||||||
|
required String token,
|
||||||
|
required String type,
|
||||||
|
});
|
||||||
|
|
||||||
|
Future<PaginationModel<HatchingModel>?> getHatchingPoultry({
|
||||||
|
required String token,
|
||||||
|
Map<String, dynamic>? queryParameters,
|
||||||
|
});
|
||||||
|
|
||||||
|
Future<void> submitPoultryScienceReport({
|
||||||
|
required String token,
|
||||||
|
required FormData data,
|
||||||
|
ProgressCallback? onSendProgress,
|
||||||
|
});
|
||||||
|
|
||||||
|
Future<PaginationModel<HatchingReport>?> getPoultryScienceReport({
|
||||||
|
required String token,
|
||||||
|
Map<String, dynamic>? queryParameters,
|
||||||
|
});
|
||||||
|
|
||||||
|
Future<PaginationModel<PoultryFarm>?> getPoultryScienceFarmList({
|
||||||
|
required String token,
|
||||||
|
Map<String, dynamic>? queryParameters,
|
||||||
|
});
|
||||||
|
|
||||||
|
Future<ApprovedPrice?> getApprovedPrice({
|
||||||
|
required String token,
|
||||||
|
Map<String, dynamic>? queryParameters,
|
||||||
|
});
|
||||||
|
|
||||||
|
Future<List<AllPoultry>?> getAllPoultry({
|
||||||
|
required String token,
|
||||||
|
Map<String, dynamic>? queryParameters,
|
||||||
|
});
|
||||||
|
|
||||||
|
Future<SellForFreezing?> getSellForFreezing({
|
||||||
|
required String token,
|
||||||
|
Map<String, dynamic>? queryParameters,
|
||||||
|
});
|
||||||
|
|
||||||
|
Future<PoultryExport?> getPoultryExport({
|
||||||
|
required String token,
|
||||||
|
Map<String, dynamic>? queryParameters,
|
||||||
|
});
|
||||||
|
|
||||||
|
Future<List<KillRequestPoultry>?> getUserPoultry({
|
||||||
|
required String token,
|
||||||
|
Map<String, dynamic>? queryParameters,
|
||||||
|
});
|
||||||
|
|
||||||
|
Future<List<PoultryHatching>?> getPoultryHatching({
|
||||||
|
required String token,
|
||||||
|
Map<String, dynamic>? queryParameters,
|
||||||
|
});
|
||||||
|
|
||||||
|
Future<List<KillHousePoultry>?> getKillHouseList({
|
||||||
|
required String token,
|
||||||
|
Map<String, dynamic>? queryParameters,
|
||||||
|
});
|
||||||
|
|
||||||
|
Future<void> submitKillRegistration({
|
||||||
|
required String token,
|
||||||
|
required KillRegistrationRequest request,
|
||||||
|
});
|
||||||
|
|
||||||
|
Future<PaginationModel<PoultryOrder>?> getPoultryOderList({
|
||||||
|
required String token,
|
||||||
|
Map<String, dynamic>? queryParameters,
|
||||||
|
});
|
||||||
|
|
||||||
|
Future<void> deletePoultryOder({
|
||||||
|
required String token,
|
||||||
|
required String orderId,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,24 +1,24 @@
|
|||||||
import 'package:rasadyar_chicken/data/models/poultry_export/poultry_export.dart';
|
import 'package:rasadyar_chicken/features/poultry_science/data/model/response/hatching/hatching_models.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/request/kill_registration/kill_registration.dart';
|
import 'package:rasadyar_chicken/features/poultry_science/data/model/response/hatching_report/hatching_report.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/all_poultry/all_poultry.dart';
|
import 'package:rasadyar_chicken/features/poultry_science/data/model/response/home_poultry_science/home_poultry_science_model.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/approved_price/approved_price.dart';
|
import 'package:rasadyar_chicken/features/poultry_science/data/model/response/poultry_farm/poultry_farm.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/hatching/hatching_models.dart';
|
import 'package:rasadyar_chicken/features/poultry_science/data/model/response/approved_price/approved_price.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/hatching_report/hatching_report.dart';
|
import 'package:rasadyar_chicken/features/poultry_science/data/model/response/all_poultry/all_poultry.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/kill_house_poultry/kill_house_poultry.dart';
|
import 'package:rasadyar_chicken/features/poultry_science/data/model/response/sell_for_freezing/sell_for_freezing.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/kill_request_poultry/kill_request_poultry.dart';
|
import 'package:rasadyar_chicken/features/poultry_science/data/model/response/poultry_export/poultry_export.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/poultry_farm/poultry_farm.dart';
|
import 'package:rasadyar_chicken/features/poultry_science/data/model/response/kill_request_poultry/kill_request_poultry.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/poultry_hatching/poultry_hatching.dart';
|
import 'package:rasadyar_chicken/features/poultry_science/data/model/response/poultry_hatching/poultry_hatching.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/poultry_order/poultry_order.dart';
|
import 'package:rasadyar_chicken/features/poultry_science/data/model/response/kill_house_poultry/kill_house_poultry.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/poultry_science/home_poultry_science/home_poultry_science_model.dart';
|
import 'package:rasadyar_chicken/features/poultry_science/data/model/request/kill_registration/kill_registration.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/sell_for_freezing/sell_for_freezing.dart';
|
import 'package:rasadyar_chicken/features/poultry_science/data/model/response/poultry_order/poultry_order.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/poultry_science/data/datasources/remote/poultry_science_remote_data_source.dart';
|
||||||
import 'package:rasadyar_core/core.dart';
|
import 'package:rasadyar_core/core.dart';
|
||||||
|
|
||||||
import 'poultry_science_remote.dart';
|
class PoultryScienceRemoteDataSourceImpl
|
||||||
|
implements PoultryScienceRemoteDataSource {
|
||||||
class PoultryScienceRemoteDatasourceImp implements PoultryScienceRemoteDatasource {
|
|
||||||
final DioRemote _httpClient;
|
final DioRemote _httpClient;
|
||||||
|
|
||||||
PoultryScienceRemoteDatasourceImp(this._httpClient);
|
PoultryScienceRemoteDataSourceImpl(this._httpClient);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<HomePoultryScienceModel?> getHomePoultryScience({
|
Future<HomePoultryScienceModel?> getHomePoultryScience({
|
||||||
@@ -124,8 +124,9 @@ class PoultryScienceRemoteDatasourceImp implements PoultryScienceRemoteDatasourc
|
|||||||
'/get-all-poultry/',
|
'/get-all-poultry/',
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
headers: {'Authorization': 'Bearer $token'},
|
||||||
queryParameters: queryParameters,
|
queryParameters: queryParameters,
|
||||||
fromJsonList: (json) =>
|
fromJsonList: (json) => json
|
||||||
json.map((e) => AllPoultry.fromJson(e as Map<String, dynamic>)).toList(),
|
.map((e) => AllPoultry.fromJson(e as Map<String, dynamic>))
|
||||||
|
.toList(),
|
||||||
);
|
);
|
||||||
return res.data;
|
return res.data;
|
||||||
}
|
}
|
||||||
@@ -167,7 +168,8 @@ class PoultryScienceRemoteDatasourceImp implements PoultryScienceRemoteDatasourc
|
|||||||
'/Poultry/',
|
'/Poultry/',
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
headers: {'Authorization': 'Bearer $token'},
|
||||||
queryParameters: queryParameters,
|
queryParameters: queryParameters,
|
||||||
fromJsonList: (json) => json.map((e) => KillRequestPoultry.fromJson(e)).toList(),
|
fromJsonList: (json) =>
|
||||||
|
json.map((e) => KillRequestPoultry.fromJson(e)).toList(),
|
||||||
);
|
);
|
||||||
return res.data;
|
return res.data;
|
||||||
}
|
}
|
||||||
@@ -181,7 +183,8 @@ class PoultryScienceRemoteDatasourceImp implements PoultryScienceRemoteDatasourc
|
|||||||
'/poultry_hatching/',
|
'/poultry_hatching/',
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
headers: {'Authorization': 'Bearer $token'},
|
||||||
queryParameters: queryParameters,
|
queryParameters: queryParameters,
|
||||||
fromJsonList: (json) => json.map((e) => PoultryHatching.fromJson(e)).toList(),
|
fromJsonList: (json) =>
|
||||||
|
json.map((e) => PoultryHatching.fromJson(e)).toList(),
|
||||||
);
|
);
|
||||||
return res.data;
|
return res.data;
|
||||||
}
|
}
|
||||||
@@ -195,7 +198,8 @@ class PoultryScienceRemoteDatasourceImp implements PoultryScienceRemoteDatasourc
|
|||||||
'/kill_house_list/',
|
'/kill_house_list/',
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
headers: {'Authorization': 'Bearer $token'},
|
||||||
queryParameters: queryParameters,
|
queryParameters: queryParameters,
|
||||||
fromJsonList: (json) => json.map((e) => KillHousePoultry.fromJson(e)).toList(),
|
fromJsonList: (json) =>
|
||||||
|
json.map((e) => KillHousePoultry.fromJson(e)).toList(),
|
||||||
);
|
);
|
||||||
return res.data;
|
return res.data;
|
||||||
}
|
}
|
||||||
@@ -231,7 +235,10 @@ class PoultryScienceRemoteDatasourceImp implements PoultryScienceRemoteDatasourc
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<void> deletePoultryOder({required String token, required String orderId}) async {
|
Future<void> deletePoultryOder({
|
||||||
|
required String token,
|
||||||
|
required String orderId,
|
||||||
|
}) async {
|
||||||
await _httpClient.delete(
|
await _httpClient.delete(
|
||||||
'/Poultry_Request/$orderId/',
|
'/Poultry_Request/$orderId/',
|
||||||
headers: {'Authorization': 'Bearer $token'},
|
headers: {'Authorization': 'Bearer $token'},
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
import 'package:rasadyar_chicken/features/poultry_science/data/datasources/remote/poultry_science_remote_data_source.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/poultry_science/data/datasources/remote/poultry_science_remote_data_source_impl.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/poultry_science/data/repositories/poultry_science_repository.dart';
|
||||||
|
import 'package:rasadyar_chicken/features/poultry_science/data/repositories/poultry_science_repository_impl.dart';
|
||||||
|
import 'package:rasadyar_core/core.dart';
|
||||||
|
|
||||||
|
/// Setup dependency injection for poultry_science feature
|
||||||
|
Future<void> setupPoultryScienceDI(GetIt di, DioRemote dioRemote) async {
|
||||||
|
di.registerLazySingleton<PoultryScienceRemoteDataSource>(
|
||||||
|
() => PoultryScienceRemoteDataSourceImpl(dioRemote),
|
||||||
|
);
|
||||||
|
|
||||||
|
di.registerLazySingleton<PoultryScienceRepository>(
|
||||||
|
() =>
|
||||||
|
PoultryScienceRepositoryImpl(di.get<PoultryScienceRemoteDataSource>()),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Re-register poultry_science dependencies (used when base URL changes)
|
||||||
|
Future<void> reRegisterPoultryScienceDI(GetIt di, DioRemote dioRemote) async {
|
||||||
|
await reRegister(di, () => PoultryScienceRemoteDataSourceImpl(dioRemote));
|
||||||
|
await reRegister(
|
||||||
|
di,
|
||||||
|
() =>
|
||||||
|
PoultryScienceRepositoryImpl(di.get<PoultryScienceRemoteDataSource>()),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Helper function to re-register a dependency
|
||||||
|
Future<void> reRegister<T extends Object>(
|
||||||
|
GetIt di,
|
||||||
|
T Function() factory,
|
||||||
|
) async {
|
||||||
|
if (di.isRegistered<T>()) {
|
||||||
|
await di.unregister<T>();
|
||||||
|
}
|
||||||
|
di.registerLazySingleton<T>(factory);
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user