user(); if ($user === null || Gate::forUser($user)->denies('create', Lecturer::class)) { return Response::error('Nicht berechtigt, einen Referenten anzulegen.'); } $storeRequest = new StoreLecturerRequest; $validated = $request->validate( $storeRequest->rules(), $storeRequest->messages(), ); $lecturer = Lecturer::create($validated); return Response::json(LecturerResource::make($lecturer->fresh())->resolve()); } /** * @return array */ public function schema(JsonSchema $schema): array { return [ 'name' => $schema->string()->description('Name des Referenten.')->required(), 'subtitle' => $schema->string()->description('Untertitel.'), 'intro' => $schema->string()->description('Einleitungstext.'), 'description' => $schema->string()->description('Beschreibung.'), 'active' => $schema->boolean()->description('Aktiv.'), 'website' => $schema->string()->description('Webseiten-URL.'), 'twitter_username' => $schema->string()->description('Twitter/X-Benutzername.'), 'nostr' => $schema->string()->description('Nostr-Identifier.'), 'lightning_address' => $schema->string()->description('Lightning-Adresse.'), 'lnurl' => $schema->string()->description('LNURL.'), 'node_id' => $schema->string()->description('Lightning-Node-ID.'), 'paynym' => $schema->string()->description('PayNym.'), 'team_id' => $schema->integer()->description('ID des zugehörigen Teams.'), ]; } }