|
|
|
|
import 'dart:developer';
|
|
|
|
|
|
|
|
|
|
import 'package:mc_common_app/api/api_client.dart';
|
|
|
|
|
import 'package:mc_common_app/classes/app_state.dart';
|
|
|
|
|
import 'package:mc_common_app/classes/consts.dart';
|
|
|
|
|
import 'package:mc_common_app/config/dependencies.dart';
|
|
|
|
|
import 'package:mc_common_app/extensions/string_extensions.dart';
|
|
|
|
|
import 'package:mc_common_app/models/advertisment_models/ad_details_model.dart';
|
|
|
|
|
import 'package:mc_common_app/models/advertisment_models/ads_bank_details_model.dart';
|
|
|
|
|
import 'package:mc_common_app/models/advertisment_models/ads_duration_model.dart';
|
|
|
|
|
import 'package:mc_common_app/models/advertisment_models/reserved_ads_models.dart';
|
|
|
|
|
import 'package:mc_common_app/models/advertisment_models/special_service_model.dart';
|
|
|
|
|
import 'package:mc_common_app/models/advertisment_models/vehicle_details_models.dart';
|
|
|
|
|
import 'package:mc_common_app/models/general_models/generic_resp_model.dart';
|
|
|
|
|
import 'package:mc_common_app/utils/enums.dart';
|
|
|
|
|
|
|
|
|
|
abstract class AdsRepo {
|
|
|
|
|
Future<List<VehicleTypeModel>> getVehicleTypes();
|
|
|
|
|
|
|
|
|
|
Future<List<VehicleBrandsModel>> getVehicleBrands({required int vehicleTypeId});
|
|
|
|
|
|
|
|
|
|
Future<List<VehicleModel>> getVehicleModels({required int vehicleTypeId});
|
|
|
|
|
|
|
|
|
|
Future<List<VehicleYearModel>> getVehicleModelYears({required int vehicleTypeId});
|
|
|
|
|
|
|
|
|
|
Future<List<VehicleColorModel>> getVehicleColors({required int vehicleTypeId});
|
|
|
|
|
|
|
|
|
|
Future<List<VehicleConditionModel>> getVehicleConditions({required int vehicleTypeId});
|
|
|
|
|
|
|
|
|
|
Future<List<VehicleCategoryModel>> getVehicleCategories({required int vehicleTypeId});
|
|
|
|
|
|
|
|
|
|
Future<List<VehicleMileageModel>> getVehicleMileages({required int vehicleTypeId});
|
|
|
|
|
|
|
|
|
|
Future<List<VehicleTransmissionModel>> getVehicleTransmission({required int vehicleTypeId});
|
|
|
|
|
|
|
|
|
|
Future<List<VehicleSellerTypeModel>> getVehicleSellerTypes({required int vehicleTypeId});
|
|
|
|
|
|
|
|
|
|
Future<List<VehicleCountryModel>> getVehicleCountries();
|
|
|
|
|
|
|
|
|
|
Future<List<VehicleCityModel>> getVehicleCities({required int countryId});
|
|
|
|
|
|
|
|
|
|
Future<List<VehiclePartModel>> getVehicleDamageParts();
|
|
|
|
|
|
|
|
|
|
Future<VehicleDetailsModel> getVehicleDetails({required int vehicleTypeId, required int vehicleBrandId});
|
|
|
|
|
|
|
|
|
|
Future<List<AdsDurationModel>> getAdsDuration();
|
|
|
|
|
|
|
|
|
|
Future<List<SpecialServiceModel>> getSpecialServices({required int specialServiceId});
|
|
|
|
|
|
|
|
|
|
Future<GenericRespModel> createNewAd({required AdsCreationPayloadModel adsCreationPayloadModel});
|
|
|
|
|
|
|
|
|
|
Future<List<AdDetailsModel>> getAllAds({required bool isMyAds});
|
|
|
|
|
|
|
|
|
|
Future<List<MyReservedAdsRespModel>> getMyReservedAds();
|
|
|
|
|
|
|
|
|
|
Future<List<AdDetailsModel>> getMyAds();
|
|
|
|
|
|
|
|
|
|
Future<AdsBankDetailsModel?> getAdBankingAccountInfo({required int adId});
|
|
|
|
|
|
|
|
|
|
Future<GenericRespModel> updateAdStatus({required int adId, required AdPostStatus adStatusToUpdate});
|
|
|
|
|
|
|
|
|
|
Future<GenericRespModel> createAppointmentForAdSpecialService({required int adId, required int photoOfficeID, required int photoOfficeSlotID, required int adsSpecialServiceID});
|
|
|
|
|
|
|
|
|
|
Future<GenericRespModel> deleteAd({required int adId});
|
|
|
|
|
|
|
|
|
|
Future<GenericRespModel> cancelMyAdReservation({required int adId});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class AdsRepoImp implements AdsRepo {
|
|
|
|
|
ApiClient apiClient = injector.get<ApiClient>();
|
|
|
|
|
AppState appState = injector.get<AppState>();
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Future<List<VehicleTypeModel>> getVehicleTypes() async {
|
|
|
|
|
GenericRespModel adsGenericModel = await apiClient.getJsonForObject(token: appState.getUser.data!.accessToken, (json) => GenericRespModel.fromJson(json), ApiConsts.vehicleTypeGet);
|
|
|
|
|
List<VehicleTypeModel> vehicleTypes = List.generate(adsGenericModel.data.length, (index) => VehicleTypeModel.fromJson(adsGenericModel.data[index]));
|
|
|
|
|
return vehicleTypes;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Future<List<VehicleCategoryModel>> getVehicleCategories({required int vehicleTypeId}) async {
|
|
|
|
|
var postParams = {
|
|
|
|
|
"VehicleType": vehicleTypeId.toString(),
|
|
|
|
|
};
|
|
|
|
|
GenericRespModel adsGenericModel =
|
|
|
|
|
await apiClient.getJsonForObject(token: appState.getUser.data!.accessToken, (json) => GenericRespModel.fromJson(json), ApiConsts.vehicleCategoryGet, queryParameters: postParams);
|
|
|
|
|
List<VehicleCategoryModel> vehicleCategories = List.generate(adsGenericModel.data.length, (index) => VehicleCategoryModel.fromJson(adsGenericModel.data[index]));
|
|
|
|
|
return vehicleCategories;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Future<List<VehicleCityModel>> getVehicleCities({required int countryId}) async {
|
|
|
|
|
var postParams = {
|
|
|
|
|
"CountryID": countryId.toString(),
|
|
|
|
|
};
|
|
|
|
|
GenericRespModel adsGenericModel = await apiClient.getJsonForObject(
|
|
|
|
|
token: appState.getUser.data!.accessToken, (json) => GenericRespModel.fromJson(json), ApiConsts.vehicleCityGet, queryParameters: countryId != -1 ? postParams : null);
|
|
|
|
|
List<VehicleCityModel> vehicleCities = List.generate(adsGenericModel.data.length, (index) => VehicleCityModel.fromJson(adsGenericModel.data[index]));
|
|
|
|
|
return vehicleCities;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Future<List<VehicleColorModel>> getVehicleColors({required int vehicleTypeId}) async {
|
|
|
|
|
var postParams = {
|
|
|
|
|
"VehicleType": vehicleTypeId.toString(),
|
|
|
|
|
};
|
|
|
|
|
GenericRespModel adsGenericModel =
|
|
|
|
|
await apiClient.getJsonForObject(token: appState.getUser.data!.accessToken, (json) => GenericRespModel.fromJson(json), ApiConsts.vehicleColorGet, queryParameters: postParams);
|
|
|
|
|
List<VehicleColorModel> vehicleColors = List.generate(adsGenericModel.data.length, (index) => VehicleColorModel.fromJson(adsGenericModel.data[index]));
|
|
|
|
|
return vehicleColors;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Future<List<VehicleConditionModel>> getVehicleConditions({required int vehicleTypeId}) async {
|
|
|
|
|
var postParams = {
|
|
|
|
|
"VehicleType": vehicleTypeId.toString(),
|
|
|
|
|
};
|
|
|
|
|
GenericRespModel adsGenericModel =
|
|
|
|
|
await apiClient.getJsonForObject(token: appState.getUser.data!.accessToken, (json) => GenericRespModel.fromJson(json), ApiConsts.vehicleConditionGet, queryParameters: postParams);
|
|
|
|
|
List<VehicleConditionModel> vehicleConditions = List.generate(adsGenericModel.data.length, (index) => VehicleConditionModel.fromJson(adsGenericModel.data[index]));
|
|
|
|
|
return vehicleConditions;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Future<List<VehicleCountryModel>> getVehicleCountries() async {
|
|
|
|
|
GenericRespModel adsGenericModel = await apiClient.getJsonForObject(
|
|
|
|
|
token: appState.getUser.data!.accessToken,
|
|
|
|
|
(json) => GenericRespModel.fromJson(json),
|
|
|
|
|
ApiConsts.vehicleCountryGet,
|
|
|
|
|
);
|
|
|
|
|
List<VehicleCountryModel> vehicleConditions = List.generate(adsGenericModel.data.length, (index) => VehicleCountryModel.fromJson(adsGenericModel.data[index]));
|
|
|
|
|
return vehicleConditions;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Future<List<VehicleMileageModel>> getVehicleMileages({required int vehicleTypeId}) async {
|
|
|
|
|
var postParams = {
|
|
|
|
|
"VehicleType": vehicleTypeId.toString(),
|
|
|
|
|
};
|
|
|
|
|
GenericRespModel adsGenericModel =
|
|
|
|
|
await apiClient.getJsonForObject(token: appState.getUser.data!.accessToken, (json) => GenericRespModel.fromJson(json), ApiConsts.vehicleMileageGet, queryParameters: postParams);
|
|
|
|
|
List<VehicleMileageModel> vehicleMileages = List.generate(adsGenericModel.data.length, (index) => VehicleMileageModel.fromJson(adsGenericModel.data[index]));
|
|
|
|
|
return vehicleMileages;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Future<List<VehicleYearModel>> getVehicleModelYears({required int vehicleTypeId}) async {
|
|
|
|
|
var postParams = {
|
|
|
|
|
"VehicleType": vehicleTypeId.toString(),
|
|
|
|
|
};
|
|
|
|
|
GenericRespModel adsGenericModel = await apiClient.getJsonForObject(
|
|
|
|
|
token: appState.getUser.data!.accessToken,
|
|
|
|
|
(json) => GenericRespModel.fromJson(json),
|
|
|
|
|
ApiConsts.vehicleModelYearGet,
|
|
|
|
|
queryParameters: vehicleTypeId != -1 ? postParams : null,
|
|
|
|
|
);
|
|
|
|
|
List<VehicleYearModel> vehicleModelYears = List.generate(adsGenericModel.data.length, (index) => VehicleYearModel.fromJson(adsGenericModel.data[index]));
|
|
|
|
|
return vehicleModelYears;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Future<List<VehicleModel>> getVehicleModels({required int vehicleTypeId}) async {
|
|
|
|
|
var postParams = {
|
|
|
|
|
"VehicleType": vehicleTypeId.toString(),
|
|
|
|
|
};
|
|
|
|
|
GenericRespModel adsGenericModel = await apiClient.getJsonForObject(
|
|
|
|
|
token: appState.getUser.data!.accessToken,
|
|
|
|
|
(json) => GenericRespModel.fromJson(json),
|
|
|
|
|
ApiConsts.vehicleModelGet,
|
|
|
|
|
queryParameters: postParams,
|
|
|
|
|
);
|
|
|
|
|
List<VehicleModel> vehicleModels = List.generate(adsGenericModel.data.length, (index) => VehicleModel.fromJson(adsGenericModel.data[index]));
|
|
|
|
|
return vehicleModels;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Future<List<VehicleBrandsModel>> getVehicleBrands({required int vehicleTypeId}) async {
|
|
|
|
|
var postParams = {
|
|
|
|
|
"VehicleType": vehicleTypeId.toString(),
|
|
|
|
|
};
|
|
|
|
|
GenericRespModel adsGenericModel = await apiClient.getJsonForObject(
|
|
|
|
|
token: appState.getUser.data!.accessToken,
|
|
|
|
|
(json) => GenericRespModel.fromJson(json),
|
|
|
|
|
ApiConsts.vehicleBrandGet,
|
|
|
|
|
queryParameters: vehicleTypeId != -1 ? postParams : null,
|
|
|
|
|
);
|
|
|
|
|
List<VehicleBrandsModel> vehicleBrands = List.generate(adsGenericModel.data.length, (index) => VehicleBrandsModel.fromJson(adsGenericModel.data[index]));
|
|
|
|
|
return vehicleBrands;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Future<List<VehicleSellerTypeModel>> getVehicleSellerTypes({required int vehicleTypeId}) async {
|
|
|
|
|
var postParams = {
|
|
|
|
|
"VehicleType": vehicleTypeId.toString(),
|
|
|
|
|
};
|
|
|
|
|
GenericRespModel adsGenericModel = await apiClient.getJsonForObject(
|
|
|
|
|
token: appState.getUser.data!.accessToken,
|
|
|
|
|
(json) => GenericRespModel.fromJson(json),
|
|
|
|
|
ApiConsts.vehicleSellerTypeGet,
|
|
|
|
|
queryParameters: postParams,
|
|
|
|
|
);
|
|
|
|
|
List<VehicleSellerTypeModel> vehicleSellerTypes = List.generate(adsGenericModel.data.length, (index) => VehicleSellerTypeModel.fromJson(adsGenericModel.data[index]));
|
|
|
|
|
return vehicleSellerTypes;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Future<List<VehicleTransmissionModel>> getVehicleTransmission({required int vehicleTypeId}) async {
|
|
|
|
|
var postParams = {
|
|
|
|
|
"VehicleType": vehicleTypeId.toString(),
|
|
|
|
|
};
|
|
|
|
|
GenericRespModel adsGenericModel = await apiClient.getJsonForObject(
|
|
|
|
|
token: appState.getUser.data!.accessToken,
|
|
|
|
|
(json) => GenericRespModel.fromJson(json),
|
|
|
|
|
ApiConsts.vehicleTransmissionGet,
|
|
|
|
|
queryParameters: postParams,
|
|
|
|
|
);
|
|
|
|
|
List<VehicleTransmissionModel> vehicleTransmissions = List.generate(adsGenericModel.data.length, (index) => VehicleTransmissionModel.fromJson(adsGenericModel.data[index]));
|
|
|
|
|
return vehicleTransmissions;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Future<VehicleDetailsModel> getVehicleDetails({required int vehicleTypeId, required int vehicleBrandId}) async {
|
|
|
|
|
var postParams = {
|
|
|
|
|
"vehicleType": vehicleTypeId.toString(),
|
|
|
|
|
"isVehicleBrand": "true",
|
|
|
|
|
"vehicleBrand": vehicleBrandId.toString(),
|
|
|
|
|
"isVehicleCategory": "true",
|
|
|
|
|
"isVehicleColor": "true",
|
|
|
|
|
"isVehicleCondition": "true",
|
|
|
|
|
"isVehicleMileage": "true",
|
|
|
|
|
"isVehicleModel": "true",
|
|
|
|
|
"isVehicleModelYear": "true",
|
|
|
|
|
"isVehiclePriceRange": "true",
|
|
|
|
|
"isVehiclePricingMethod": "true",
|
|
|
|
|
"isVehcileSellerType": "true",
|
|
|
|
|
"isVehicleTransmission": "true",
|
|
|
|
|
"isCountry": "true"
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
String token = appState.getUser.data!.accessToken ?? "";
|
|
|
|
|
GenericRespModel adsGenericModel = await apiClient.postJsonForObject(
|
|
|
|
|
(json) => GenericRespModel.fromJson(json),
|
|
|
|
|
ApiConsts.vehicleDetailsMaster,
|
|
|
|
|
postParams,
|
|
|
|
|
token: token,
|
|
|
|
|
);
|
|
|
|
|
VehicleDetailsModel vehicleDetails = VehicleDetailsModel.fromJson(adsGenericModel.data);
|
|
|
|
|
return vehicleDetails;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Future<List<VehiclePartModel>> getVehicleDamageParts() async {
|
|
|
|
|
GenericRespModel adsGenericModel = await apiClient.getJsonForObject(
|
|
|
|
|
token: appState.getUser.data!.accessToken,
|
|
|
|
|
(json) => GenericRespModel.fromJson(json),
|
|
|
|
|
ApiConsts.vehicleDamagePartGet,
|
|
|
|
|
);
|
|
|
|
|
List<VehiclePartModel> vehicleParts = List.generate(adsGenericModel.data.length, (index) => VehiclePartModel.fromJson(adsGenericModel.data[index]));
|
|
|
|
|
return vehicleParts;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Future<List<AdsDurationModel>> getAdsDuration() async {
|
|
|
|
|
GenericRespModel adsGenericModel = await apiClient.getJsonForObject(
|
|
|
|
|
token: appState.getUser.data!.accessToken,
|
|
|
|
|
(json) => GenericRespModel.fromJson(json),
|
|
|
|
|
ApiConsts.vehicleAdsDurationGet,
|
|
|
|
|
);
|
|
|
|
|
List<AdsDurationModel> vehicleAdsDuration = List.generate(adsGenericModel.data.length, (index) => AdsDurationModel.fromJson(adsGenericModel.data[index]));
|
|
|
|
|
return vehicleAdsDuration;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Future<List<SpecialServiceModel>> getSpecialServices({required int specialServiceId}) async {
|
|
|
|
|
var params = {
|
|
|
|
|
"SpecialServiceType": specialServiceId.toString(),
|
|
|
|
|
};
|
|
|
|
|
GenericRespModel adsGenericModel =
|
|
|
|
|
await apiClient.getJsonForObject(token: appState.getUser.data!.accessToken, (json) => GenericRespModel.fromJson(json), ApiConsts.vehicleAdsSpecialServicesGet, queryParameters: params);
|
|
|
|
|
List<SpecialServiceModel> vehicleAdsDuration = List.generate(adsGenericModel.data.length, (index) => SpecialServiceModel.fromJson(adsGenericModel.data[index]));
|
|
|
|
|
return vehicleAdsDuration;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Future<GenericRespModel> createNewAd({required AdsCreationPayloadModel adsCreationPayloadModel}) async {
|
|
|
|
|
List vehiclePostingImages = [];
|
|
|
|
|
adsCreationPayloadModel.vehiclePosting!.vehiclePostingImages?.forEach((element) {
|
|
|
|
|
var imageMap = {
|
|
|
|
|
"id": 0,
|
|
|
|
|
"imageName": element.imageName,
|
|
|
|
|
"imageUrl": element.imageUrl,
|
|
|
|
|
"imageStr": element.imageStr,
|
|
|
|
|
"vehiclePostingID": 0,
|
|
|
|
|
"vehiclePosting": null,
|
|
|
|
|
};
|
|
|
|
|
vehiclePostingImages.add(imageMap);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
List vehiclePostingDamageParts = [];
|
|
|
|
|
adsCreationPayloadModel.vehiclePosting!.vehiclePostingDamageParts?.forEach((element) {
|
|
|
|
|
var imageMap = {
|
|
|
|
|
"id": 0,
|
|
|
|
|
"comment": element.comment,
|
|
|
|
|
"vehicleImageBase64": element.vehicleImageBase64,
|
|
|
|
|
"vehicleDamagePartID": element.vehicleDamagePartID,
|
|
|
|
|
"vehiclePostingID": 0,
|
|
|
|
|
"isActive": true
|
|
|
|
|
};
|
|
|
|
|
vehiclePostingDamageParts.add(imageMap);
|
|
|
|
|
});
|
|
|
|
|
var postParams = {
|
|
|
|
|
"ads": {
|
|
|
|
|
"id": 0,
|
|
|
|
|
"adsDurationID": adsCreationPayloadModel.ads!.adsDurationID,
|
|
|
|
|
"startDate": adsCreationPayloadModel.ads!.startDate,
|
|
|
|
|
"countryId": adsCreationPayloadModel.ads!.countryId,
|
|
|
|
|
"specialServiceIDs": adsCreationPayloadModel.ads!.specialServiceIDs,
|
|
|
|
|
"isMCHandled": false
|
|
|
|
|
},
|
|
|
|
|
"vehiclePosting": {
|
|
|
|
|
"id": 0,
|
|
|
|
|
"userID": adsCreationPayloadModel.vehiclePosting!.userID,
|
|
|
|
|
"vehicleType": adsCreationPayloadModel.vehiclePosting!.vehicleType,
|
|
|
|
|
"vehicleModelID": adsCreationPayloadModel.vehiclePosting!.vehicleModelID,
|
|
|
|
|
"vehicleModelYearID": adsCreationPayloadModel.vehiclePosting!.vehicleModelYearID,
|
|
|
|
|
"vehicleColorID": adsCreationPayloadModel.vehiclePosting!.vehicleColorID,
|
|
|
|
|
"vehicleCategoryID": adsCreationPayloadModel.vehiclePosting!.vehicleCategoryID,
|
|
|
|
|
"vehicleConditionID": adsCreationPayloadModel.vehiclePosting!.vehicleConditionID,
|
|
|
|
|
"vehicleMileageID": adsCreationPayloadModel.vehiclePosting!.vehicleMileageID,
|
|
|
|
|
"vehicleTransmissionID": adsCreationPayloadModel.vehiclePosting!.vehicleTransmissionID,
|
|
|
|
|
"vehicleSellerTypeID": adsCreationPayloadModel.vehiclePosting!.vehicleSellerTypeID,
|
|
|
|
|
"cityID": adsCreationPayloadModel.vehiclePosting!.cityID,
|
|
|
|
|
"price": adsCreationPayloadModel.vehiclePosting!.price,
|
|
|
|
|
"vehicleVIN": adsCreationPayloadModel.vehiclePosting!.vehicleVIN,
|
|
|
|
|
"vehicleDescription": adsCreationPayloadModel.vehiclePosting!.vehicleDescription,
|
|
|
|
|
"vehicleTitle": adsCreationPayloadModel.vehiclePosting!.vehicleTitle,
|
|
|
|
|
"vehicleDescriptionN": adsCreationPayloadModel.vehiclePosting!.vehicleDescription,
|
|
|
|
|
"isFinanceAvailable": adsCreationPayloadModel.vehiclePosting!.isFinanceAvailable,
|
|
|
|
|
"warantyYears": adsCreationPayloadModel.vehiclePosting!.warantyYears,
|
|
|
|
|
"demandAmount": adsCreationPayloadModel.vehiclePosting!.demandAmount,
|
|
|
|
|
// "adStatus": 1,
|
|
|
|
|
"vehiclePostingImages": vehiclePostingImages,
|
|
|
|
|
"vehiclePostingDamageParts": vehiclePostingDamageParts
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
String token = appState.getUser.data!.accessToken ?? "";
|
|
|
|
|
GenericRespModel adsGenericModel = await apiClient.postJsonForObject(
|
|
|
|
|
(json) => GenericRespModel.fromJson(json),
|
|
|
|
|
ApiConsts.vehicleAdsSingleStepCreate,
|
|
|
|
|
postParams,
|
|
|
|
|
token: token,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
return Future.value(adsGenericModel);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Future<List<AdDetailsModel>> getAllAds({required isMyAds}) async {
|
|
|
|
|
var onlyMyAdsParams = {
|
|
|
|
|
"userID": appState.getUser.data!.userInfo!.userId ?? "",
|
|
|
|
|
};
|
|
|
|
|
var allAdsParams = {
|
|
|
|
|
"AdsStatuses": ["${AdPostStatus.active.getIdFromAdPostStatusEnum()}"], //only Active ADS
|
|
|
|
|
"IsPaid": "true", //only Active ADS
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
GenericRespModel adsGenericModel = await apiClient.getJsonForObject(
|
|
|
|
|
token: appState.getUser.data!.accessToken,
|
|
|
|
|
(json) => GenericRespModel.fromJson(json),
|
|
|
|
|
ApiConsts.vehicleAdsGet,
|
|
|
|
|
queryParameters: isMyAds ? onlyMyAdsParams : allAdsParams,
|
|
|
|
|
);
|
|
|
|
|
List<AdDetailsModel> vehicleAdsDetails = List.generate(adsGenericModel.data.length, (index) => AdDetailsModel.fromJson(adsGenericModel.data[index], isMyAds));
|
|
|
|
|
return vehicleAdsDetails;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Future<List<MyReservedAdsRespModel>> getMyReservedAds() async {
|
|
|
|
|
var params = {
|
|
|
|
|
"userID": appState.getUser.data!.userInfo!.userId ?? "",
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
GenericRespModel adsGenericModel = await apiClient.getJsonForObject(
|
|
|
|
|
token: appState.getUser.data!.accessToken,
|
|
|
|
|
(json) => GenericRespModel.fromJson(json),
|
|
|
|
|
ApiConsts.myAdsReserveGet,
|
|
|
|
|
queryParameters: params,
|
|
|
|
|
);
|
|
|
|
|
List<MyReservedAdsRespModel> vehicleAdsDetails = List.generate(adsGenericModel.data.length, (index) => MyReservedAdsRespModel.fromJson(adsGenericModel.data[index]));
|
|
|
|
|
return vehicleAdsDetails;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Future<List<AdDetailsModel>> getMyAds() async {
|
|
|
|
|
var params = {
|
|
|
|
|
"userID": appState.getUser.data!.userInfo!.userId ?? "",
|
|
|
|
|
};
|
|
|
|
|
GenericRespModel adsGenericModel = await apiClient.getJsonForObject(
|
|
|
|
|
token: appState.getUser.data!.accessToken,
|
|
|
|
|
(json) => GenericRespModel.fromJson(json),
|
|
|
|
|
queryParameters: params,
|
|
|
|
|
ApiConsts.vehicleAdsGet,
|
|
|
|
|
);
|
|
|
|
|
List<AdDetailsModel> vehicleAdsDetails = List.generate(adsGenericModel.data.length, (index) => AdDetailsModel.fromJson(adsGenericModel.data[index], true));
|
|
|
|
|
return vehicleAdsDetails;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Future<AdsBankDetailsModel?> getAdBankingAccountInfo({required int adId}) async {
|
|
|
|
|
var params = {
|
|
|
|
|
"userID": appState.getUser.data!.userInfo!.userId ?? "",
|
|
|
|
|
"AdsID": "$adId",
|
|
|
|
|
};
|
|
|
|
|
GenericRespModel adsGenericModel = await apiClient.getJsonForObject(
|
|
|
|
|
token: appState.getUser.data!.accessToken,
|
|
|
|
|
(json) => GenericRespModel.fromJson(json),
|
|
|
|
|
queryParameters: params,
|
|
|
|
|
ApiConsts.adsMCBankAccountAdGet,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
List<AdsBankDetailsModel> adsBankDetails = List.generate(adsGenericModel.data.length, (index) => AdsBankDetailsModel.fromJson(adsGenericModel.data[index]));
|
|
|
|
|
if (adsBankDetails.isNotEmpty) {
|
|
|
|
|
return adsBankDetails.first;
|
|
|
|
|
}
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Future<GenericRespModel> updateAdStatus({required int adId, required AdPostStatus adStatusToUpdate}) async {
|
|
|
|
|
var postParams = {
|
|
|
|
|
"id": adId,
|
|
|
|
|
"status": adStatusToUpdate.getIdFromAdPostStatusEnum().toString(),
|
|
|
|
|
"comment": "",
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
String token = appState.getUser.data!.accessToken ?? "";
|
|
|
|
|
GenericRespModel adsGenericModel = await apiClient.postJsonForObject(
|
|
|
|
|
(json) => GenericRespModel.fromJson(json),
|
|
|
|
|
ApiConsts.adsUpdateStatus,
|
|
|
|
|
postParams,
|
|
|
|
|
token: token,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
return Future.value(adsGenericModel);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Future<GenericRespModel> deleteAd({required int adId}) async {
|
|
|
|
|
var postParams = {
|
|
|
|
|
"adID": adId,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
String token = appState.getUser.data!.accessToken ?? "";
|
|
|
|
|
GenericRespModel adsGenericModel = await apiClient.postJsonForObject(
|
|
|
|
|
(json) => GenericRespModel.fromJson(json),
|
|
|
|
|
ApiConsts.deleteAd,
|
|
|
|
|
postParams,
|
|
|
|
|
token: token,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
return Future.value(adsGenericModel);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Future<GenericRespModel> cancelMyAdReservation({required int adId}) async {
|
|
|
|
|
var postParams = {
|
|
|
|
|
"adID": adId,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
String token = appState.getUser.data!.accessToken ?? "";
|
|
|
|
|
GenericRespModel adsGenericModel = await apiClient.postJsonForObject(
|
|
|
|
|
(json) => GenericRespModel.fromJson(json),
|
|
|
|
|
ApiConsts.deleteAd,
|
|
|
|
|
postParams,
|
|
|
|
|
token: token,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
return Future.value(adsGenericModel);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Future<GenericRespModel> createAppointmentForAdSpecialService({
|
|
|
|
|
required int adId,
|
|
|
|
|
required int photoOfficeID,
|
|
|
|
|
required int photoOfficeSlotID,
|
|
|
|
|
required int adsSpecialServiceID,
|
|
|
|
|
}) async {
|
|
|
|
|
int customerId = AppState().getUser.data!.userInfo!.customerId ?? 0;
|
|
|
|
|
|
|
|
|
|
var postParams = {
|
|
|
|
|
"adsID": adId,
|
|
|
|
|
"photoOfficeID": photoOfficeID,
|
|
|
|
|
"photoOfficeSlotID": photoOfficeSlotID,
|
|
|
|
|
"adsSpecialServiceID": adsSpecialServiceID,
|
|
|
|
|
"customerID": customerId,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
String token = appState.getUser.data!.accessToken ?? "";
|
|
|
|
|
GenericRespModel adsGenericModel = await apiClient.postJsonForObject(
|
|
|
|
|
(json) => GenericRespModel.fromJson(json),
|
|
|
|
|
ApiConsts.adsPhotoOfficeAppointmentCreate,
|
|
|
|
|
postParams,
|
|
|
|
|
token: token,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
return Future.value(adsGenericModel);
|
|
|
|
|
}
|
|
|
|
|
}
|