['nullable', 'date'], 'to_date' => ['nullable', 'date'], 'session_id' => ['nullable', 'integer'], 'subject_type' => ['nullable', 'string'], ]; } public function toDTO(): AttendanceSummaryQuery { $validated = $this->validated(); return new AttendanceSummaryQuery( fromDate: $validated['from_date'] ?? null, toDate: $validated['to_date'] ?? null, sessionId: isset($validated['session_id']) ? (int) $validated['session_id'] : null, subjectType: $validated['subject_type'] ?? null, ); } }