import 'package:domain/generated/json/base/json_field.dart';
import 'package:domain/generated/json/t_h_employee_detail_entity.g.dart';
import 'dart:convert';
export 'package:domain/generated/json/t_h_employee_detail_entity.g.dart';

@JsonSerializable()
class THEmployeeDetailEntity {
	@JSONField(name: "member_id")
	String? memberId;
	@JSONField(name: "staff_id")
	String? staffId;
	THEmployeeDetailStaff? staff;
	@JSONField(name: "worker_name")
	String? workerName;
	String? mobile;
	String? icon;
	String? sex;
	String? nric;
	@JSONField(name: "hourly_rate")
	String? hourlyRate;
	@JSONField(name: "clothing_size")
	String? clothingSize;
	THEmployeeDetailReviews? reviews;

	THEmployeeDetailEntity();

	factory THEmployeeDetailEntity.fromJson(Map<String, dynamic> json) => $THEmployeeDetailEntityFromJson(json);

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

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

@JsonSerializable()
class THEmployeeDetailStaff {
	String? id;
	String? name;
	String? sex;
	String? mobile;
	String? nric;
	@JSONField(name: "profile_picture")
	String? profilePicture;
	@JSONField(name: "visitor_key")
	String? visitorKey;
	@JSONField(name: "yy_member_id")
	String? yyMemberId;
	@JSONField(name: "created_at")
	String? createdAt;
	@JSONField(name: "updated_at")
	String? updatedAt;
	String? password;
	@JSONField(name: "default_staff")
	String? defaultStaff;
	@JSONField(name: "typhoid_date")
	String? typhoidDate;
	@JSONField(name: "typhoid_file")
	String? typhoidFile;
	@JSONField(name: "food_hygiene")
	String? foodHygiene;
	@JSONField(name: "criminal_file")
	String? criminalFile;
	@JSONField(name: "criminal_date")
	String? criminalDate;
	String? email;
	@JSONField(name: "own_staff_id")
	String? ownStaffId;
	@JSONField(name: "clothing_size")
	String? clothingSize;

	THEmployeeDetailStaff();

	factory THEmployeeDetailStaff.fromJson(Map<String, dynamic> json) => $THEmployeeDetailStaffFromJson(json);

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

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

@JsonSerializable()
class THEmployeeDetailReviews {
	String? count;
	@JSONField(name: "avg_score")
	String? avgScore;

	THEmployeeDetailReviews();

	factory THEmployeeDetailReviews.fromJson(Map<String, dynamic> json) => $THEmployeeDetailReviewsFromJson(json);

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

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