chore: update app version to 1.3.36+32, change build mode to release, and enhance user role handling in chicken feature with new routes and DI setup

This commit is contained in:
2025-12-13 16:30:02 +03:30
parent 0d47710e81
commit afbd72404d
121 changed files with 15161 additions and 16 deletions

View File

@@ -0,0 +1,15 @@
import 'package:rasadyar_chicken/features/poultry_science/data/model/response/poultry_science_report/poultry_science_report.dart';
import 'package:rasadyar_chicken/features/poultry_science/data/model/request/submit_inspection/submit_inspection_response.dart';
import 'package:rasadyar_core/core.dart';
abstract class ProvinceOperatorRemoteDataSource {
Future<PaginationModel<PoultryScienceReport>?> getSubmitInspectionList({
required String token,
Map<String, dynamic>? queryParameters,
});
Future<void> submitInspection({
required String token,
required SubmitInspectionResponse request,
});
}

View File

@@ -0,0 +1,40 @@
import 'package:rasadyar_chicken/features/poultry_science/data/model/response/poultry_science_report/poultry_science_report.dart';
import 'package:rasadyar_chicken/features/poultry_science/data/model/request/submit_inspection/submit_inspection_response.dart';
import 'package:rasadyar_chicken/features/province_operator/data/datasources/remote/province_operator_remote_data_source.dart';
import 'package:rasadyar_core/core.dart';
class ProvinceOperatorRemoteDataSourceImpl
implements ProvinceOperatorRemoteDataSource {
final DioRemote _httpClient;
ProvinceOperatorRemoteDataSourceImpl(this._httpClient);
@override
Future<PaginationModel<PoultryScienceReport>?> getSubmitInspectionList({
required String token,
Map<String, dynamic>? queryParameters,
}) async {
var res = await _httpClient.get(
'/poultry_science_report/',
headers: {'Authorization': 'Bearer $token'},
queryParameters: queryParameters,
fromJson: (json) => PaginationModel<PoultryScienceReport>.fromJson(
json,
(json) => PoultryScienceReport.fromJson(json as Map<String, dynamic>),
),
);
return res.data;
}
@override
Future<void> submitInspection({
required String token,
required SubmitInspectionResponse request,
}) async {
await _httpClient.post(
'/poultry_science_report/',
headers: {'Authorization': 'Bearer $token'},
data: request.toJson(),
);
}
}

View File

@@ -0,0 +1,46 @@
import 'package:rasadyar_chicken/features/province_operator/data/datasources/remote/province_operator_remote_data_source.dart';
import 'package:rasadyar_chicken/features/province_operator/data/datasources/remote/province_operator_remote_data_source_impl.dart';
import 'package:rasadyar_chicken/features/province_operator/data/repositories/province_operator_repository.dart';
import 'package:rasadyar_chicken/features/province_operator/data/repositories/province_operator_repository_impl.dart';
import 'package:rasadyar_chicken/features/poultry_science/data/repositories/poultry_science_repository.dart';
import 'package:rasadyar_core/core.dart';
/// Setup dependency injection for province_operator feature
Future<void> setupProvinceOperatorDI(GetIt di, DioRemote dioRemote) async {
di.registerLazySingleton<ProvinceOperatorRemoteDataSource>(
() => ProvinceOperatorRemoteDataSourceImpl(dioRemote),
);
di.registerLazySingleton<ProvinceOperatorRepository>(
() => ProvinceOperatorRepositoryImpl(
di.get<ProvinceOperatorRemoteDataSource>(),
),
);
// Use PoultryScienceRepository for shared functionality
if (!di.isRegistered<PoultryScienceRepository>()) {
// PoultryScienceRepository should already be registered, but just in case
}
}
/// Re-register province_operator dependencies (used when base URL changes)
Future<void> reRegisterProvinceOperatorDI(GetIt di, DioRemote dioRemote) async {
await reRegister(di, () => ProvinceOperatorRemoteDataSourceImpl(dioRemote));
await reRegister(
di,
() => ProvinceOperatorRepositoryImpl(
di.get<ProvinceOperatorRemoteDataSource>(),
),
);
}
/// 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);
}

View File

@@ -0,0 +1,15 @@
import 'package:rasadyar_chicken/features/poultry_science/data/model/response/poultry_science_report/poultry_science_report.dart';
import 'package:rasadyar_chicken/features/poultry_science/data/model/request/submit_inspection/submit_inspection_response.dart';
import 'package:rasadyar_core/core.dart';
abstract class ProvinceOperatorRepository {
Future<PaginationModel<PoultryScienceReport>?> getSubmitInspectionList({
required String token,
Map<String, dynamic>? queryParameters,
});
Future<void> submitInspection({
required String token,
required SubmitInspectionResponse request,
});
}

View File

@@ -0,0 +1,30 @@
import 'package:rasadyar_chicken/features/poultry_science/data/model/response/poultry_science_report/poultry_science_report.dart';
import 'package:rasadyar_chicken/features/poultry_science/data/model/request/submit_inspection/submit_inspection_response.dart';
import 'package:rasadyar_chicken/features/province_operator/data/datasources/remote/province_operator_remote_data_source.dart';
import 'package:rasadyar_chicken/features/province_operator/data/repositories/province_operator_repository.dart';
import 'package:rasadyar_core/core.dart';
class ProvinceOperatorRepositoryImpl implements ProvinceOperatorRepository {
final ProvinceOperatorRemoteDataSource _remote;
ProvinceOperatorRepositoryImpl(this._remote);
@override
Future<PaginationModel<PoultryScienceReport>?> getSubmitInspectionList({
required String token,
Map<String, dynamic>? queryParameters,
}) async {
return await _remote.getSubmitInspectionList(
token: token,
queryParameters: queryParameters,
);
}
@override
Future<void> submitInspection({
required String token,
required SubmitInspectionResponse request,
}) async {
return await _remote.submitInspection(token: token, request: request);
}
}