feat : search and filter in buyer out of the province

This commit is contained in:
MrM
2025-06-24 16:59:23 +03:30
parent d4f1e86295
commit 701e8e0fbe
16 changed files with 2217 additions and 100 deletions

View File

@@ -1,3 +1,4 @@
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';
@@ -13,38 +14,72 @@ import 'package:rasadyar_chicken/data/models/response/pagination_model/paginatio
import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.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/waiting_arrival/waiting_arrival.dart' hide ProductModel;
import 'package:rasadyar_chicken/data/models/response/steward_free_sale_bar/steward_free_sale_bar.dart';
import 'package:rasadyar_chicken/data/models/response/waiting_arrival/waiting_arrival.dart'
hide ProductModel;
import '../models/request/create_steward_free_bar/create_steward_free_bar.dart';
abstract class ChickenRepository {
Future<List<InventoryModel>?> getInventory({required String token});
Future<KillHouseDistributionInfo?> getKillHouseDistributionInfo({required String token});
Future<KillHouseDistributionInfo?> getKillHouseDistributionInfo({
required String token,
});
Future<BarInformation?> getGeneralBarInformation({required String token, Map<String, dynamic>? queryParameters});
Future<BarInformation?> getGeneralBarInformation({
required String token,
Map<String, dynamic>? queryParameters,
});
Future<WaitingArrivalModel?> getWaitingArrivals({required String token, int? page});
Future<WaitingArrivalModel?> getWaitingArrivals({
required String token,
int? page,
});
Future<void> setSateForArrivals({required String token, required Map<String, dynamic> request});
Future<void> setSateForArrivals({
required String token,
required Map<String, dynamic> request,
});
Future<ImportedLoadsModel?> getImportedLoadsModel({required String token, required int page});
Future<ImportedLoadsModel?> getImportedLoadsModel({
required String token,
required int page,
});
Future<AllocatedMadeModel?> getAllocatedMade({required String token, required int page});
Future<AllocatedMadeModel?> getAllocatedMade({
required String token,
required int page,
});
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, required List<String> allocationTokens});
Future<void> confirmAllAllocation({
required String token,
required List<String> allocationTokens,
});
Future<List<ProductModel>?> getRolesProducts({required String token});
Future<List<GuildModel>?> getGuilds({required String token, required bool isFree});
Future<List<GuildModel>?> getGuilds({
required String token,
required bool isFree,
});
Future<GuildProfile?> getProfile({required String token});
Future<void> postSubmitStewardAllocation({required String token, required SubmitStewardAllocation request});
Future<void> postSubmitStewardAllocation({
required String token,
required SubmitStewardAllocation request,
});
Future<StewardFreeBarDashboard?> getStewardDashboard({
required String token,
@@ -58,26 +93,50 @@ abstract class ChickenRepository {
required String endDate,
});
Future<PaginationModel<StewardFreeBar>?> getStewardPurchasesOutSideOfTheProvince({
Future<PaginationModel<StewardFreeBar>?>
getStewardPurchasesOutSideOfTheProvince({
required String token,
Map<String, dynamic>? queryParameters,
});
Future<void> createStewardPurchasesOutSideOfTheProvince({
required String token,
required CreateStewardFreeBar body,
});
Future<void> createStewardPurchasesOutSideOfTheProvince({required String token, required CreateStewardFreeBar body});
Future<void> deleteStewardPurchasesOutSideOfTheProvince({
required String token,
required String stewardFreeBarKey,
});
Future<void> deleteStewardPurchasesOutSideOfTheProvince({required String token, required String stewardFreeBarKey});
Future<PaginationModel<OutProvinceCarcassesBuyer>?> getOutProvinceCarcassesBuyer({
Future<PaginationModel<OutProvinceCarcassesBuyer>?>
getOutProvinceCarcassesBuyer({
required String token,
Map<String, dynamic>? queryParameters,
});
Future<void> createOutProvinceCarcassesBuyer({required String token, required OutProvinceCarcassesBuyer body});
Future<void> createOutProvinceCarcassesBuyer({
required String token,
required OutProvinceCarcassesBuyer body,
});
Future<List<IranProvinceCityModel>?> getProvince();
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,
});
}

View File

@@ -1,4 +1,5 @@
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';
@@ -14,7 +15,9 @@ import 'package:rasadyar_chicken/data/models/response/pagination_model/paginatio
import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.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/waiting_arrival/waiting_arrival.dart' hide ProductModel;
import 'package:rasadyar_chicken/data/models/response/steward_free_sale_bar/steward_free_sale_bar.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';
@@ -29,14 +32,18 @@ class ChickenRepositoryImpl implements ChickenRepository {
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(),
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'},
@@ -61,7 +68,10 @@ class ChickenRepositoryImpl implements ChickenRepository {
}
@override
Future<WaitingArrivalModel?> getWaitingArrivals({required String token, int? page}) async {
Future<WaitingArrivalModel?> getWaitingArrivals({
required String token,
int? page,
}) async {
var res = await _httpClient.get(
'/steward-allocation/?search=filter&value=&role=Steward&page=${page ?? 1}&page_size=10&type=not_entered',
headers: {'Authorization': 'Bearer $token'},
@@ -71,12 +81,22 @@ class ChickenRepositoryImpl implements ChickenRepository {
}
@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);
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<ImportedLoadsModel?> getImportedLoadsModel({required String token, required int page}) async {
Future<ImportedLoadsModel?> getImportedLoadsModel({
required String token,
required int page,
}) async {
var res = await _httpClient.get(
'/steward-allocation/?role=Steward&search=filter&page=$page&page_size=10&value=&type=entered',
headers: {'Authorization': 'Bearer $token'},
@@ -86,7 +106,10 @@ class ChickenRepositoryImpl implements ChickenRepository {
}
@override
Future<AllocatedMadeModel?> getAllocatedMade({required String token, required int page}) async {
Future<AllocatedMadeModel?> getAllocatedMade({
required String token,
required int page,
}) async {
var res = await _httpClient.get(
'/steward-allocation/?search=filter&value=&role=Steward&page=$page&page_size=100',
headers: {'Authorization': 'Bearer $token'},
@@ -96,7 +119,10 @@ class ChickenRepositoryImpl implements ChickenRepository {
}
@override
Future<void> confirmAllocation({required String token, required Map<String, dynamic> allocation}) async {
Future<void> confirmAllocation({
required String token,
required Map<String, dynamic> allocation,
}) async {
var res = await _httpClient.put(
'/steward-allocation/0/',
headers: {'Authorization': 'Bearer $token'},
@@ -105,7 +131,10 @@ class ChickenRepositoryImpl implements ChickenRepository {
}
@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'},
@@ -113,7 +142,10 @@ class ChickenRepositoryImpl implements ChickenRepository {
}
@override
Future<void> confirmAllAllocation({required String token, required List<String> allocationTokens}) async {
Future<void> confirmAllAllocation({
required String token,
required List<String> allocationTokens,
}) async {
await _httpClient.put(
'/steward-allocation/0/',
headers: {'Authorization': 'Bearer $token'},
@@ -126,18 +158,25 @@ class ChickenRepositoryImpl implements ChickenRepository {
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;
}
@override
Future<List<GuildModel>?> getGuilds({required String token, required bool isFree}) async {
Future<List<GuildModel>?> getGuilds({
required String token,
required bool isFree,
}) async {
var res = await _httpClient.get(
'/guilds/?role=Steward&free=$isFree',
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;
}
@@ -153,8 +192,15 @@ class ChickenRepositoryImpl implements ChickenRepository {
}
@override
Future<void> postSubmitStewardAllocation({required String token, required SubmitStewardAllocation request}) async {
await _httpClient.post('/steward-allocation/', headers: {'Authorization': 'Bearer $token'}, data: request.toJson());
Future<void> postSubmitStewardAllocation({
required String token,
required SubmitStewardAllocation request,
}) async {
await _httpClient.post(
'/steward-allocation/',
headers: {'Authorization': 'Bearer $token'},
data: request.toJson(),
);
}
@override
@@ -186,7 +232,8 @@ class ChickenRepositoryImpl implements ChickenRepository {
}
@override
Future<PaginationModel<StewardFreeBar>?> getStewardPurchasesOutSideOfTheProvince({
Future<PaginationModel<StewardFreeBar>?>
getStewardPurchasesOutSideOfTheProvince({
required String token,
Map<String, dynamic>? queryParameters,
}) async {
@@ -203,11 +250,18 @@ class ChickenRepositoryImpl implements ChickenRepository {
}
@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;
}
@@ -216,7 +270,12 @@ class ChickenRepositoryImpl implements ChickenRepository {
Future<List<IranProvinceCityModel>?> getProvince() 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;
}
@@ -246,7 +305,8 @@ class ChickenRepositoryImpl implements ChickenRepository {
}
@override
Future<PaginationModel<OutProvinceCarcassesBuyer>?> getOutProvinceCarcassesBuyer({
Future<PaginationModel<OutProvinceCarcassesBuyer>?>
getOutProvinceCarcassesBuyer({
required String token,
Map<String, dynamic>? queryParameters,
}) async {
@@ -256,18 +316,68 @@ class ChickenRepositoryImpl implements ChickenRepository {
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;
}
@override
Future<void> createOutProvinceCarcassesBuyer({required String token, required OutProvinceCarcassesBuyer body}) async {
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'},
);
}
}