import 'package:domain/entity/response/hotel_info_entity.dart'; import 'package:domain/entity/response/job_list_e_r_detail_entity.dart'; import 'package:domain/entity/response/job_list_e_r_option_entity.dart'; import 'package:domain/entity/response/labour_request_e_r_entity.dart'; import 'package:domain/entity/response/sign_in_sign_out_entity.dart'; import 'package:domain/entity/response/switch_project_entity.dart'; import 'package:get/get.dart'; import 'package:plugin_platform/http/http_provider.dart'; import 'package:plugin_platform/http/http_result.dart'; import 'package:plugin_platform/platform_export.dart'; import 'package:shared/utils/util.dart'; import '../constants/api_constants.dart'; import '../entity/response/labour_list_e_r_entity.dart'; import '../entity/response/labour_request_e_r_option_entity.dart'; /// 泰国的 ER 的数据仓库 class THERRepository extends GetxService { HttpProvider httpProvider; THERRepository({required this.httpProvider}); /// 获取 ER 用工请求列表 Future> fetchERLabourRequest( String? date, { CancelToken? cancelToken, }) async { Map params = {}; if (!Utils.isEmpty(date)) { params["day"] = date!; } final result = await httpProvider.requestNetResult( ApiConstants.apiERLabourRequestTH, params: params, cancelToken: cancelToken, ); if (result.isSuccess) { final json = result.getDataJson(); var data = LabourRequestEREntity.fromJson(json!); return result.convert(data: data); } return result.convert(); } /// 获取 ER 用工请求选项 Future> fetchERLabourRequestAddOption({ CancelToken? cancelToken, }) async { final result = await httpProvider.requestNetResult( ApiConstants.apiERLabourRequestAddOptionTH, networkDebounce: true, isShowLoadingDialog: true, cancelToken: cancelToken, ); if (result.isSuccess) { final json = result.getDataJson(); var data = JobListERDetailEntity.fromJson(json!); return result.convert(data: data); } return result.convert(); } /// 新增 ER 的用工请求 Future addLabourRequestERSubmit({ required String jobTitleId, required String startTime, required String endTime, required String outletId, String? repeatStart, String? repeatEnd, String? sexLimit, String? needNum, String? maleLimit, String? femaleLimit, String? eventName, String? eventType, String? remark, CancelToken? cancelToken, }) async { Map params = {}; params["job_title_id"] = jobTitleId; params["start_time"] = startTime; params["end_time"] = endTime; params["outlet_id"] = outletId; if (!Utils.isEmpty(repeatStart)) { params["repeat_start"] = repeatStart!; } if (!Utils.isEmpty(repeatEnd)) { params["repeat_end"] = repeatEnd!; } if (!Utils.isEmpty(sexLimit)) { params["sex_limit"] = sexLimit!; } if (!Utils.isEmpty(needNum)) { params["need_num"] = needNum!; } if (!Utils.isEmpty(maleLimit)) { params["male_limit"] = maleLimit!; } if (!Utils.isEmpty(femaleLimit)) { params["female_limit"] = femaleLimit!; } if (!Utils.isEmpty(eventName)) { params["event_name"] = eventName!; } if (!Utils.isEmpty(eventType)) { params["event_type"] = eventType!; } if (!Utils.isEmpty(remark)) { params["remark"] = remark!; } final result = await httpProvider.requestNetResult( ApiConstants.apiERLabourRequestAddSubmitTH, method: HttpMethod.POST, params: params, networkDebounce: true, isShowLoadingDialog: true, cancelToken: cancelToken, ); if (result.isSuccess) { return result.convert(); } return result.convert(); } /// 获取 ER 工作列表选项 Future> fetchERJobListOption({ String? date, CancelToken? cancelToken, }) async { Map params = {}; if (!Utils.isEmpty(date)) { params["daily"] = date!; } final result = await httpProvider.requestNetResult( ApiConstants.apiERJobListOptionTH, params: params, cancelToken: cancelToken, ); if (result.isSuccess) { final json = result.getDataJson(); var data = JobListEROptionEntity.fromJson(json!); return result.convert(data: data); } return result.convert(); } /// 获取 ER 工作列表 Future> fetchERJobListTable({ required int curPage, String? keyword, String? divisionId, String? outletId, String? status, String? startDate, String? endDate, String? trending, CancelToken? cancelToken, }) async { //参数 Map params = {}; params["cur_page"] = curPage.toString(); params["page_size"] = "10"; if (!Utils.isEmpty(keyword)) { params["job_title"] = keyword!; } if (!Utils.isEmpty(divisionId)) { params["division_id"] = divisionId!; } if (!Utils.isEmpty(outletId)) { params["outlet_id"] = outletId!; } if (!Utils.isEmpty(status)) { params["status"] = status!; } if (!Utils.isEmpty(startDate)) { params["start_date"] = startDate!; } if (!Utils.isEmpty(endDate)) { params["end_date"] = endDate!; } if (!Utils.isEmpty(trending)) { params["trending"] = trending!; } final result = await httpProvider.requestNetResult( ApiConstants.apiERJobListTableTH, params: params, cancelToken: cancelToken, ); if (result.isSuccess) { final json = result.getDataJson(); var data = LabourListEREntity.fromJson(json!); return result.convert(data: data); } return result.convert(); } /// ER 工作列表的删除 Future deleteJobListERSubmit({ required String jobId, required String type, CancelToken? cancelToken, }) async { Map params = {}; params["job_id"] = jobId; params["type"] = type; final result = await httpProvider.requestNetResult( ApiConstants.apiERJobListDeleteTH, method: HttpMethod.POST, params: params, networkDebounce: true, isShowLoadingDialog: true, cancelToken: cancelToken, ); if (result.isSuccess) { return result.convert(); } return result.convert(); } /// 获取 ER 工作列表详情 Future> fetchERJobListDetail({ required String jobId, CancelToken? cancelToken, }) async { //参数 Map params = {}; params["job_id"] = jobId; final result = await httpProvider.requestNetResult( ApiConstants.apiERJobListDetailTH, params: params, networkDebounce: true, isShowLoadingDialog: true, cancelToken: cancelToken, ); if (result.isSuccess) { final json = result.getDataJson(); var data = JobListERDetailEntity.fromJson(json!); return result.convert(data: data); } return result.convert(); } /// 编辑 ER 的用工请求 Future editLabourRequestERSubmit({ required String jobId, required String jobTitleId, required String startTime, required String endTime, required String outletId, String? sexLimit, String? needNum, String? maleLimit, String? femaleLimit, String? eventName, String? eventType, String? remark, CancelToken? cancelToken, }) async { Map params = {}; params["job_id"] = jobId; params["job_title_id"] = jobTitleId; params["start_time"] = startTime; params["end_time"] = endTime; params["outlet_id"] = outletId; if (!Utils.isEmpty(sexLimit)) { params["sex_limit"] = sexLimit!; } if (!Utils.isEmpty(needNum)) { params["need_num"] = needNum!; } if (!Utils.isEmpty(maleLimit)) { params["male_limit"] = maleLimit!; } if (!Utils.isEmpty(femaleLimit)) { params["female_limit"] = femaleLimit!; } if (!Utils.isEmpty(eventName)) { params["event_name"] = eventName!; } if (!Utils.isEmpty(eventType)) { params["event_type"] = eventType!; } if (!Utils.isEmpty(remark)) { params["remark"] = remark!; } final result = await httpProvider.requestNetResult( ApiConstants.apiERLabourRequestEditSubmitTH, method: HttpMethod.POST, params: params, networkDebounce: true, isShowLoadingDialog: true, cancelToken: cancelToken, ); if (result.isSuccess) { return result.convert(); } return result.convert(); } }