import 'package:domain/entity/response/index_option_entity.dart';
import 'package:domain/generated/json/base/json_field.dart';
import 'package:domain/generated/json/t_h_applied_edit_entity.g.dart';
import 'dart:convert';
export 'package:domain/generated/json/t_h_applied_edit_entity.g.dart';

@JsonSerializable()
class THAppliedEditEntity {
	THAppliedEditApplied? applied;
	@JSONField(name: "applied_id")
	String? appliedId;
	@JSONField(name: "member_id")
	String? memberId;
	String? remark;
	@JSONField(name: "start_time")
	String? startTime;
	@JSONField(name: "end_time")
	String? endTime;
	@JSONField(name: "default_start")
	String? defaultStart;
	@JSONField(name: "default_end")
	String? defaultEnd;
	@JSONField(name: "security_in")
	String? securityIn;
	@JSONField(name: "def_security_in")
	String? defSecurityIn;
	@JSONField(name: "security_out")
	String? securityOut;
	@JSONField(name: "def_security_out")
	String? defSecurityOut;
	@JSONField(name: "work_in")
	String? workIn;
	@JSONField(name: "def_work_in")
	String? defWorkIn;
	@JSONField(name: "work_out")
	String? workOut;
	@JSONField(name: "def_work_out")
	String? defWorkOut;
	@JSONField(name: "adjust_hours")
	String? adjustHours;
	@JSONField(name: "subtract_hours")
	String? subtractHours;
	@JSONField(name: "ballroom_list")
	List<String> ballroomList = [];
	@JSONField(name: "status_list")
	List<IndexOptionEntity> statusList = [];
	@JSONField(name: "reason_list")
	List<IndexOptionEntity> reasonList = [];

	THAppliedEditEntity();

	factory THAppliedEditEntity.fromJson(Map<String, dynamic> json) => $THAppliedEditEntityFromJson(json);

	Map<String, dynamic> toJson() => $THAppliedEditEntityToJson(this);

	@override
	String toString() {
		return jsonEncode(this);
	}
}

@JsonSerializable()
class THAppliedEditApplied {
	String? id;
	@JSONField(name: "job_id")
	String? jobId;
	@JSONField(name: "s_id")
	String? sId;
	@JSONField(name: "member_id")
	String? memberId;
	@JSONField(name: "labourer_id")
	String? labourerId;
	@JSONField(name: "labourer_name")
	String? labourerName;
	@JSONField(name: "labourer_nric")
	String? labourerNric;
	@JSONField(name: "source_type")
	int sourceType = 0;
	@JSONField(name: "employer_id")
	String? employerId;
	@JSONField(name: "employer_name")
	String? employerName;
	@JSONField(name: "agency_id")
	String? agencyId;
	@JSONField(name: "agency_name")
	String? agencyName;
	@JSONField(name: "job_title")
	String? jobTitle;
	@JSONField(name: "outlet_id")
	String? outletId;
	@JSONField(name: "outlet_name")
	String? outletName;
	@JSONField(name: "ballroom_id")
	String? ballroomId;
	@JSONField(name: "ballroom_name")
	String? ballroomName;
	@JSONField(name: "job_date")
	String? jobDate;
	@JSONField(name: "start_time")
	int? startTime;
	@JSONField(name: "end_time")
	int? endTime;
	@JSONField(name: "working_hours")
	String? workingHours;
	@JSONField(name: "adjust_hours")
	String? adjustHours;
	@JSONField(name: "total_hours")
	String? totalHours;
	@JSONField(name: "hourly_rate")
	String? hourlyRate;
	@JSONField(name: "gross_wage")
	String? grossWage;
	@JSONField(name: "security_clock_in")
	int? securityClockIn;
	@JSONField(name: "security_clock_out")
	int? securityClockOut;
	@JSONField(name: "work_clock_in")
	int? workClockIn;
	@JSONField(name: "work_clock_out")
	int? workClockOut;
	@JSONField(name: "security_in")
	int? securityIn;
	@JSONField(name: "security_out")
	int? securityOut;
	@JSONField(name: "work_in")
	int? workIn;
	@JSONField(name: "work_out")
	int? workOut;
	String? status ;
	@JSONField(name: "remark_status")
	int? remarkStatus;
	@JSONField(name: "created_at")
	String? createdAt;
	@JSONField(name: "updated_at")
	String? updatedAt;
	@JSONField(name: "sync_payroll")
	int? syncPayroll;
	@JSONField(name: "sign_image")
	String? signImage;
	@JSONField(name: "event_name")
	String? eventName;
	@JSONField(name: "event_type")
	String? eventType;
	@JSONField(name: "working_type")
	int? workingType;
	@JSONField(name: "epf_employer")
	String? epfEmployer;
	@JSONField(name: "epf_employee")
	String? epfEmployee;
	@JSONField(name: "epf_total")
	String? epfTotal;
	@JSONField(name: "net_pay")
	String? netPay;
	String? socso;
	@JSONField(name: "payment_status")
	int? paymentStatus;
	@JSONField(name: "paid_time")
	String? paidTime;
	@JSONField(name: "agency_rate")
	String? agencyRate;
	@JSONField(name: "agency_wage")
	String? agencyWage;
	String? remark;
	@JSONField(name: "reason_type")
	String? reasonType;
	@JSONField(name: "audit_reject")
	int? auditReject;
	@JSONField(name: "revise_hours")
	String? reviseHours;
	@JSONField(name: "revise_gross_wage")
	String? reviseGrossWage;
	@JSONField(name: "revise_agency_wage")
	String? reviseAgencyWage;
	@JSONField(name: "is_ot")
	int? isOt;
	@JSONField(name: "reject_msg")
	String? rejectMsg;

	THAppliedEditApplied();

	factory THAppliedEditApplied.fromJson(Map<String, dynamic> json) => $THAppliedEditAppliedFromJson(json);

	Map<String, dynamic> toJson() => $THAppliedEditAppliedToJson(this);

	@override
	String toString() {
		return jsonEncode(this);
	}
}

