i need the ward_bed_number to be unique if only the discharged_date or expiry_date is null, and ignore this on update
if ($admission = $this->route('admission')) {
$rules['patient_id'] = ['required', Rule::exists('patients', 'id')
->where('status', 'alive'), Rule::unique('admissions', 'patient_id')
->ignore($admission->id)
->whereNull('discharged_date')
];
$rules['admission_number'] = 'required|unique:admissions,admission_number, ' . $admission->id;
$rules['ip_number'] = 'required|unique:admissions,ip_number, ' . $admission->id;
$rules['hospital_number'] = 'required|unique:admissions,hospital_number, ' . $admission->id;
$rules['ward_bed_number'] = ['required', Rule::unique('admissions', 'ward_bed_number')->ignore($admission->id)->whereNull('discharged_date')->WhereNull('expiry_date')];
} else {
$rules['patient_id'] = ['required', Rule::exists('patients', 'id')
->where('status', 'alive'), Rule::unique('admissions', 'patient_id')
->whereNull('discharged_date')
];
$rules['admission_number'] = 'required|unique:admissions,admission_number';
$rules['ip_number'] = 'required|unique:admissions,ip_number';
$rules['hospital_number'] = 'required|unique:admissions,hospital_number';
$rules['ward_bed_number'] = ['required', Rule::unique('admissions', 'ward_bed_number')->whereNull('discharged_date')->WhereNull('expiry_date')];
}