feat: warehouse_and_distribution in killhouse module

This commit is contained in:
2025-12-01 15:25:19 +03:30
parent 6861e873ba
commit c42ee069e6
57 changed files with 11246 additions and 208 deletions

View File

@@ -27,9 +27,14 @@ import 'package:rasadyar_chicken/data/models/response/waiting_arrival/waiting_ar
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<List<InventoryModel>?> getInventory({
required String token,
required String role,
CancelToken? cancelToken,
});
Future<KillHouseDistributionInfo?> getKillHouseDistributionInfo({
required String token,
});
Future<BarInformation?> getGeneralBarInformation({
required String token,
@@ -41,7 +46,10 @@ abstract class ChickenRemoteDatasource {
Map<String, dynamic>? queryParameters,
});
Future<void> setSateForArrivals({required String token, required Map<String, dynamic> request});
Future<void> setSateForArrivals({
required String token,
required Map<String, dynamic> request,
});
Future<PaginationModel<ImportedLoadsModel>?> getImportedLoadsModel({
required String token,
@@ -53,9 +61,15 @@ abstract class ChickenRemoteDatasource {
Map<String, dynamic>? queryParameters,
});
Future<void> confirmAllocation({required String token, required Map<String, dynamic> allocation});
Future<void> confirmAllocation({
required String token,
required Map<String, dynamic> allocation,
});
Future<void> denyAllocation({required String token, required String allocationToken});
Future<void> denyAllocation({
required String token,
required String allocationToken,
});
Future<void> confirmAllAllocation({
required String token,
@@ -81,7 +95,10 @@ abstract class ChickenRemoteDatasource {
Map<String, dynamic>? queryParameters,
});
Future<void> updateStewardAllocation({required String token, required ConformAllocation request});
Future<void> updateStewardAllocation({
required String token,
required ConformAllocation request,
});
Future<StewardFreeBarDashboard?> getStewardDashboard({
required String token,
@@ -95,7 +112,8 @@ abstract class ChickenRemoteDatasource {
required String endDate,
});
Future<PaginationModel<StewardFreeBar>?> getStewardPurchasesOutSideOfTheProvince({
Future<PaginationModel<StewardFreeBar>?>
getStewardPurchasesOutSideOfTheProvince({
required String token,
Map<String, dynamic>? queryParameters,
});
@@ -115,8 +133,8 @@ abstract class ChickenRemoteDatasource {
Map<String, dynamic>? queryParameters,
});
Future<PaginationModel<OutProvinceCarcassesBuyer>?> getOutProvinceCarcassesBuyer({
Future<PaginationModel<OutProvinceCarcassesBuyer>?>
getOutProvinceCarcassesBuyer({
required String token,
Map<String, dynamic>? queryParameters,
});
@@ -145,29 +163,42 @@ abstract class ChickenRemoteDatasource {
required StewardFreeSaleBarRequest body,
});
Future<void> deleteOutProvinceStewardFreeBar({
required String token,
required String key
required String key,
});
Future<UserProfile?> getUserProfile({required String token});
Future<void> updateUserProfile({required String token, required UserProfile userProfile});
Future<void> updateUserProfile({
required String token,
required UserProfile userProfile,
});
Future<void> updatePassword({required String token, required ChangePasswordRequestModel model});
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> createSegmentation({
required String token,
required SegmentationModel model,
});
Future<void> editSegmentation({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<SegmentationModel?> deleteSegmentation({
required String token,
required String key,
});
Future<BroadcastPrice?> getBroadcastPrice({required String token});

View File

@@ -36,21 +36,25 @@ class ChickenRemoteDatasourceImp implements ChickenRemoteDatasource {
@override
Future<List<InventoryModel>?> getInventory({
required String token,
required String role,
CancelToken? cancelToken,
}) async {
var res = await _httpClient.get(
'/roles-products/?role=Steward',
'/roles-products/?role=$role',
headers: {'Authorization': 'Bearer $token'},
fromJsonList: (json) =>
(json).map((item) => InventoryModel.fromJson(item as Map<String, dynamic>)).toList(),
fromJsonList: (json) => (json)
.map((item) => InventoryModel.fromJson(item as Map<String, dynamic>))
.toList(),
);
return res.data;
}
@override
Future<KillHouseDistributionInfo?> getKillHouseDistributionInfo({required String token}) async {
Future<KillHouseDistributionInfo?> getKillHouseDistributionInfo({
required String token,
}) async {
var res = await _httpClient.get(
'/kill-house-distribution-info/?role=Steward',
headers: {'Authorization': 'Bearer $token'},
@@ -150,7 +154,10 @@ class ChickenRemoteDatasourceImp implements ChickenRemoteDatasource {
}
@override
Future<void> denyAllocation({required String token, required String allocationToken}) async {
Future<void> denyAllocation({
required String token,
required String allocationToken,
}) async {
await _httpClient.delete(
'/steward-allocation/0/?steward_allocation_key=$allocationToken',
headers: {'Authorization': 'Bearer $token'},
@@ -174,8 +181,9 @@ class ChickenRemoteDatasourceImp implements ChickenRemoteDatasource {
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(),
fromJsonList: (json) => json
.map((item) => ProductModel.fromJson(item as Map<String, dynamic>))
.toList(),
);
return res.data;
}
@@ -189,8 +197,9 @@ class ChickenRemoteDatasourceImp implements ChickenRemoteDatasource {
'/guilds/',
queryParameters: queryParameters,
headers: {'Authorization': 'Bearer $token'},
fromJsonList: (json) =>
json.map((item) => GuildModel.fromJson(item as Map<String, dynamic>)).toList(),
fromJsonList: (json) => json
.map((item) => GuildModel.fromJson(item as Map<String, dynamic>))
.toList(),
);
return res.data;
}
@@ -270,7 +279,8 @@ class ChickenRemoteDatasourceImp implements ChickenRemoteDatasource {
}
@override
Future<PaginationModel<StewardFreeBar>?> getStewardPurchasesOutSideOfTheProvince({
Future<PaginationModel<StewardFreeBar>?>
getStewardPurchasesOutSideOfTheProvince({
required String token,
Map<String, dynamic>? queryParameters,
}) async {
@@ -287,22 +297,34 @@ class ChickenRemoteDatasourceImp implements ChickenRemoteDatasource {
}
@override
Future<List<IranProvinceCityModel>?> getCity({required String provinceName}) async {
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(),
fromJsonList: (json) => json
.map(
(item) =>
IranProvinceCityModel.fromJson(item as Map<String, dynamic>),
)
.toList(),
);
return res.data;
}
@override
Future<List<IranProvinceCityModel>?> getProvince({CancelToken? cancelToken}) async {
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(),
fromJsonList: (json) => json
.map(
(item) =>
IranProvinceCityModel.fromJson(item as Map<String, dynamic>),
)
.toList(),
);
return res.data;
}
@@ -315,7 +337,7 @@ class ChickenRemoteDatasourceImp implements ChickenRemoteDatasource {
await _httpClient.post(
'/steward_free_bar/',
headers: {'Authorization': 'Bearer $token'},
data: body.toJson()..removeWhere((key, value) => value==null,),
data: body.toJson()..removeWhere((key, value) => value == null),
);
}
@@ -346,7 +368,8 @@ class ChickenRemoteDatasourceImp implements ChickenRemoteDatasource {
}
@override
Future<PaginationModel<OutProvinceCarcassesBuyer>?> getOutProvinceCarcassesBuyer({
Future<PaginationModel<OutProvinceCarcassesBuyer>?>
getOutProvinceCarcassesBuyer({
required String token,
Map<String, dynamic>? queryParameters,
}) async {
@@ -356,7 +379,8 @@ class ChickenRemoteDatasourceImp implements ChickenRemoteDatasource {
headers: {'Authorization': 'Bearer $token'},
fromJson: (json) => PaginationModel<OutProvinceCarcassesBuyer>.fromJson(
json,
(json) => OutProvinceCarcassesBuyer.fromJson(json as Map<String, dynamic>),
(json) =>
OutProvinceCarcassesBuyer.fromJson(json as Map<String, dynamic>),
),
);
return res.data;
@@ -412,13 +436,19 @@ class ChickenRemoteDatasourceImp implements ChickenRemoteDatasource {
'/steward_free_sale_bar/0/',
data: body.toJson()
..removeWhere((key, value) => value == null)
..addAll({'carcassWeight': body.weightOfCarcasses, 'carcassCount': body.numberOfCarcasses}),
..addAll({
'carcassWeight': body.weightOfCarcasses,
'carcassCount': body.numberOfCarcasses,
}),
headers: {'Authorization': 'Bearer $token'},
);
}
@override
Future<void> deleteOutProvinceStewardFreeBar({required String token, required String key}) async {
Future<void> deleteOutProvinceStewardFreeBar({
required String token,
required String key,
}) async {
await _httpClient.delete(
'/steward_free_sale_bar/0/',
queryParameters: {'key': key},
@@ -438,7 +468,10 @@ class ChickenRemoteDatasourceImp implements ChickenRemoteDatasource {
}
@override
Future<void> updateUserProfile({required String token, required UserProfile userProfile}) async {
Future<void> updateUserProfile({
required String token,
required UserProfile userProfile,
}) async {
await _httpClient.put(
'/system_user_profile/0/',
headers: {'Authorization': 'Bearer $token'},
@@ -476,7 +509,10 @@ class ChickenRemoteDatasourceImp implements ChickenRemoteDatasource {
}
@override
Future<void> createSegmentation({required String token, required SegmentationModel model}) async {
Future<void> createSegmentation({
required String token,
required SegmentationModel model,
}) async {
await _httpClient.post(
'/app-segmentation/',
data: model.toJson()..removeWhere((key, value) => value == null),
@@ -485,7 +521,10 @@ class ChickenRemoteDatasourceImp implements ChickenRemoteDatasource {
}
@override
Future<void> editSegmentation({required String token, required SegmentationModel model}) async {
Future<void> editSegmentation({
required String token,
required SegmentationModel model,
}) async {
await _httpClient.put(
'/app-segmentation/0/',
data: model.toJson()..removeWhere((key, value) => value == null),
@@ -536,7 +575,9 @@ class ChickenRemoteDatasourceImp implements ChickenRemoteDatasource {
}
@override
Future<StewardRemainWeight?> getStewardRemainWeight({required String token}) async {
Future<StewardRemainWeight?> getStewardRemainWeight({
required String token,
}) async {
var res = await _httpClient.get(
'/steward-remain-weight/',
headers: {'Authorization': 'Bearer $token'},
@@ -545,4 +586,5 @@ class ChickenRemoteDatasourceImp implements ChickenRemoteDatasource {
return res.data;
}
}

View File

@@ -2,8 +2,12 @@ import 'package:rasadyar_chicken/data/models/kill_house_module/register_request/
import 'package:rasadyar_chicken/data/models/kill_house_module/register_request/response/kill_house/kill_house_response.dart';
import 'package:rasadyar_chicken/data/models/kill_house_module/register_request/response/kill_request_list/kill_request_list.dart'
as listModel;
import 'package:rasadyar_chicken/data/models/kill_house_module/warehouse_and_distribution/response/kill_house_sales_info_dashboard.dart';
import 'package:rasadyar_core/core.dart';
abstract class KillHouseRemoteDataSource {
//region requestKill
Future<List<KillHouseResponse>?> getKillHouseList({
required String token,
Map<String, dynamic>? queryParameters,
@@ -22,4 +26,21 @@ abstract class KillHouseRemoteDataSource {
});
Future<void> deleteKillRequest({required String token, required int requestId});
//endregion
//region warehouseAndDistribution
Future<KillHouseSalesInfoDashboard?> getKillHouseSalesInfoDashboard({
required String token,
CancelToken? cancelToken,
Map<String, dynamic>? queryParameters,
});
//endregion
}

View File

@@ -3,6 +3,7 @@ import 'package:rasadyar_chicken/data/models/kill_house_module/register_request/
import 'package:rasadyar_chicken/data/models/kill_house_module/register_request/response/kill_house/kill_house_response.dart';
import 'package:rasadyar_chicken/data/models/kill_house_module/register_request/response/kill_request_list/kill_request_list.dart'
as listModel;
import 'package:rasadyar_chicken/data/models/kill_house_module/warehouse_and_distribution/response/kill_house_sales_info_dashboard.dart';
import 'package:rasadyar_core/core.dart';
class KillHouseRemoteDataSourceImpl extends KillHouseRemoteDataSource {
@@ -20,7 +21,9 @@ class KillHouseRemoteDataSourceImpl extends KillHouseRemoteDataSource {
headers: {'Authorization': 'Bearer $token'},
fromJson: (json) {
var data = json['results'] as List<dynamic>;
return ChickenCommissionPrices.fromJson(data.first as Map<String, dynamic>);
return ChickenCommissionPrices.fromJson(
data.first as Map<String, dynamic>,
);
},
);
@@ -35,8 +38,9 @@ class KillHouseRemoteDataSourceImpl extends KillHouseRemoteDataSource {
var res = await _httpClient.get(
'/kill_house/?kill_house',
headers: {'Authorization': 'Bearer $token'},
fromJsonList: (json) =>
json.map((e) => KillHouseResponse.fromJson(e as Map<String, dynamic>)).toList(),
fromJsonList: (json) => json
.map((e) => KillHouseResponse.fromJson(e as Map<String, dynamic>))
.toList(),
);
return res.data;
@@ -63,18 +67,47 @@ class KillHouseRemoteDataSourceImpl extends KillHouseRemoteDataSource {
'/kill_request/',
headers: {'Authorization': 'Bearer $token'},
queryParameters: queryParameters,
fromJsonList: (json) =>
json.map((e) => listModel.KillRequestList.fromJson(e as Map<String, dynamic>)).toList(),
fromJsonList: (json) => json
.map(
(e) =>
listModel.KillRequestList.fromJson(e as Map<String, dynamic>),
)
.toList(),
);
return res.data;
}
@override
Future<void> deleteKillRequest({required String token, required int requestId}) async {
Future<void> deleteKillRequest({
required String token,
required int requestId,
}) async {
await _httpClient.delete(
'/kill_request/$requestId/',
headers: {'Authorization': 'Bearer $token'},
);
}
//endregion
//region warehouseAndDistribution
@override
Future<KillHouseSalesInfoDashboard?> getKillHouseSalesInfoDashboard({
required String token,
CancelToken? cancelToken,
Map<String, dynamic>? queryParameters,
}) async {
var res = await _httpClient.get(
'/kill-house-sales-info-dashboard/?role=KillHouse',
cancelToken: cancelToken,
headers: {'Authorization': 'Bearer $token'},
queryParameters: queryParameters,
fromJson: KillHouseSalesInfoDashboard.fromJson,
);
return res.data;
}
//endregion
}