components([ Section::make(__('hr.sections.basic_info')) ->schema([ TextEntry::make('employee.full_name') ->label(__('hr.fields.employee')), ]) ->columns(1), Section::make(__('hr.sections.dates')) ->schema([ TextEntry::make('start_date') ->label(__('hr.fields.start_date')) ->date('d.m.Y'), TextEntry::make('end_date') ->label(__('hr.fields.end_date')) ->date('d.m.Y'), TextEntry::make('days') ->label(__('hr.fields.days')) ->suffix(' '.__('hr.messages.days_suffix')), ]) ->columns(2), Section::make(__('hr.sections.medical_details')) ->schema([ TextEntry::make('medical_institution') ->label(__('hr.fields.institution')) ->placeholder('—'), TextEntry::make('document_path') ->label(__('hr.fields.medical_document')) ->formatStateUsing(fn (?string $state): string => filled($state) ? basename($state) : '—'), TextEntry::make('reason') ->label(__('hr.fields.reason')) ->placeholder('—') ->columnSpanFull(), ]) ->columns(2), Section::make(__('hr.sections.metadata')) ->schema([ TextEntry::make('created_at') ->label(__('hr.fields.created_at')) ->dateTime('d.m.Y H:i') ->placeholder('—'), TextEntry::make('updated_at') ->label(__('hr.fields.updated_at')) ->dateTime('d.m.Y H:i') ->placeholder('—'), TextEntry::make('deleted_at') ->label(__('hr.fields.deleted_at')) ->dateTime('d.m.Y H:i') ->visible(fn (SickLeave $record): bool => $record->trashed()), ]) ->columns(2), ]); } }