import 'package:domain/generated/json/base/json_convert_content.dart';
import 'package:domain/entity/response/job_list_applied_work_flow_entity.dart';

JobListAppliedWorkFlowEntity $JobListAppliedWorkFlowEntityFromJson(Map<String, dynamic> json) {
  final JobListAppliedWorkFlowEntity jobListAppliedWorkFlowEntity = JobListAppliedWorkFlowEntity();
  final String? departmentId = jsonConvert.convert<String>(json['department_id']);
  if (departmentId != null) {
    jobListAppliedWorkFlowEntity.departmentId = departmentId;
  }
  final List<JobListAppliedWorkFlowRecords>? records = (json['records'] as List<dynamic>?)?.map(
          (e) => jsonConvert.convert<JobListAppliedWorkFlowRecords>(e) as JobListAppliedWorkFlowRecords).toList();
  if (records != null) {
    jobListAppliedWorkFlowEntity.records = records;
  }
  return jobListAppliedWorkFlowEntity;
}

Map<String, dynamic> $JobListAppliedWorkFlowEntityToJson(JobListAppliedWorkFlowEntity entity) {
  final Map<String, dynamic> data = <String, dynamic>{};
  data['department_id'] = entity.departmentId;
  data['records'] = entity.records?.map((v) => v.toJson()).toList();
  return data;
}

extension JobListAppliedWorkFlowEntityExtension on JobListAppliedWorkFlowEntity {
  JobListAppliedWorkFlowEntity copyWith({
    String? departmentId,
    List<JobListAppliedWorkFlowRecords>? records,
  }) {
    return JobListAppliedWorkFlowEntity()
      ..departmentId = departmentId ?? this.departmentId
      ..records = records ?? this.records;
  }
}

JobListAppliedWorkFlowRecords $JobListAppliedWorkFlowRecordsFromJson(Map<String, dynamic> json) {
  final JobListAppliedWorkFlowRecords jobListAppliedWorkFlowRecords = JobListAppliedWorkFlowRecords();
  final int? serialNumber = jsonConvert.convert<int>(json['serial_number']);
  if (serialNumber != null) {
    jobListAppliedWorkFlowRecords.serialNumber = serialNumber;
  }
  final String? nodeName = jsonConvert.convert<String>(json['node_name']);
  if (nodeName != null) {
    jobListAppliedWorkFlowRecords.nodeName = nodeName;
  }
  final String? statusShow = jsonConvert.convert<String>(json['status_show']);
  if (statusShow != null) {
    jobListAppliedWorkFlowRecords.statusShow = statusShow;
  }
  final String? auditName = jsonConvert.convert<String>(json['audit_name']);
  if (auditName != null) {
    jobListAppliedWorkFlowRecords.auditName = auditName;
  }
  final String? auditTime = jsonConvert.convert<String>(json['audit_time']);
  if (auditTime != null) {
    jobListAppliedWorkFlowRecords.auditTime = auditTime;
  }
  final String? auditMark = jsonConvert.convert<String>(json['audit_mark']);
  if (auditMark != null) {
    jobListAppliedWorkFlowRecords.auditMark = auditMark;
  }
  final String? createdAt = jsonConvert.convert<String>(json['created_at']);
  if (createdAt != null) {
    jobListAppliedWorkFlowRecords.createdAt = createdAt;
  }
  final String? assigneeTypeShow = jsonConvert.convert<String>(json['assignee_type_show']);
  if (assigneeTypeShow != null) {
    jobListAppliedWorkFlowRecords.assigneeTypeShow = assigneeTypeShow;
  }
  final String? designationShow = jsonConvert.convert<String>(json['designation_show']);
  if (designationShow != null) {
    jobListAppliedWorkFlowRecords.designationShow = designationShow;
  }
  return jobListAppliedWorkFlowRecords;
}

Map<String, dynamic> $JobListAppliedWorkFlowRecordsToJson(JobListAppliedWorkFlowRecords entity) {
  final Map<String, dynamic> data = <String, dynamic>{};
  data['serial_number'] = entity.serialNumber;
  data['node_name'] = entity.nodeName;
  data['status_show'] = entity.statusShow;
  data['audit_name'] = entity.auditName;
  data['audit_time'] = entity.auditTime;
  data['audit_mark'] = entity.auditMark;
  data['created_at'] = entity.createdAt;
  data['assignee_type_show'] = entity.assigneeTypeShow;
  data['designation_show'] = entity.designationShow;
  return data;
}

extension JobListAppliedWorkFlowRecordsExtension on JobListAppliedWorkFlowRecords {
  JobListAppliedWorkFlowRecords copyWith({
    int? serialNumber,
    String? nodeName,
    String? statusShow,
    String? auditName,
    String? auditTime,
    String? auditMark,
    String? createdAt,
    String? assigneeTypeShow,
    String? designationShow,
  }) {
    return JobListAppliedWorkFlowRecords()
      ..serialNumber = serialNumber ?? this.serialNumber
      ..nodeName = nodeName ?? this.nodeName
      ..statusShow = statusShow ?? this.statusShow
      ..auditName = auditName ?? this.auditName
      ..auditTime = auditTime ?? this.auditTime
      ..auditMark = auditMark ?? this.auditMark
      ..createdAt = createdAt ?? this.createdAt
      ..assigneeTypeShow = assigneeTypeShow ?? this.assigneeTypeShow
      ..designationShow = designationShow ?? this.designationShow;
  }
}