['nullable', 'string', 'max:255'], /** Filter material berdasarkan ID user/teknisi. */ 'user_id' => ['nullable', 'integer', 'exists:users,id'], /** Filter jenis material. */ 'type' => ['nullable', Rule::in(['serialized', 'consumable'])], /** Filter status material. */ 'status' => ['nullable', 'string', 'max:50'], /** Nomor halaman yang ingin diambil. */ 'page' => ['nullable', 'integer', 'min:1'], /** Jumlah data per halaman, maksimal 100. */ 'per_page' => ['nullable', 'integer', 'min:1', 'max:100'], ]; } }