addInput( InputSchema::make() ->key('student_id') ->label(__('domains/finance/field.invoice.detail.student_id')) ->type(InputType::TEXTLINE) ->rules(['required']) ) ->addInput( InputSchema::make() ->key('student_name') ->label(__('domains/finance/field.invoice.detail.student_name')) ->type(InputType::TEXTLINE) ->rules(['required', 'string']) ) ->addInput( InputSchema::make() ->key('faculty') ->label(__('domains/finance/field.invoice.detail.faculty')) ->type(InputType::SELECT) ->rules(['required', 'string']) ->select2() ->live() ->options(fn () => SelectFacultyQuery::fetch()) ) ->addInput( InputSchema::make() ->key('study_program') ->label(__('domains/finance/field.invoice.detail.study_program')) ->type(InputType::SELECT) ->rules(['required', 'string']) ->select2() ->dependsOn('faculty') ->setContextKeys(['faculty']) ->options(fn ($context) => SelectStudyProgramQuery::fetch($context)) ) ->addInput( InputSchema::make() ->key('term_entry') ->label(__('domains/finance/field.invoice.detail.term_entry')) ->type(InputType::SELECT) ->rules(['required']) ->options(fn () => SelectTermQuery::fetch()) ->select2() ) ->addInput( InputSchema::make() ->key('semester') ->label(__('domains/finance/field.invoice.detail.semester')) ->type(InputType::SELECT) ->rules(['required']) ->options(array_combine(range(1, 13), range(1, 13))) ->select2() ) ->addInput( InputSchema::make() ->key('fee_type') ->label(__('domains/finance/field.invoice.detail.fee_type')) ->type(InputType::SELECT) ->rules(['required']) ->select2() ); } }