Erfasst den vollständigen Projektstand mit drei Hauptbereichen:
1. Laravel 11 Application-Skelett
- Standard-Setup (app/, bootstrap/, config/, database/, public/, resources/, routes/, storage/, tests/)
- Composer + npm Konfiguration
- Devcontainer für Laravel Sail (PHP/MySQL/Redis)
- GitHub Actions Workflows (lint + tests)
- Tailwind/Vite Build-Pipeline
2. docs/ – Wissensbasis "Marke macht." (Methodik-Verfassung)
Stand nach Pflegerunde 2026-05-28:
- 00_Methodik-Verfassung: Dok. 000 (v2.0.2) bis Dok. 013 (NEU) + Anhänge
- 10_Quellen-Original: Wala, Sharp, Simon (read-only Quellen)
- 20_Markenwissen: 25 abgeleitete MW-Dokumente (Wala_MW-WAL, Sharp_MW-HBG, Simon_MW-SIM)
- 30_Synthese: Markenwissen_I_Synthese_Gesamt + Scorecard-Regeln
- 40_Implementierung: 011b-Erweiterung
- _Steuerung: 00_START_HIER, Serienübersicht, CHANGELOG.md
Letzte methodische Eingriffe:
- Methodik-Update v2.0 (Ownership Autorenschaft/Anwendung, Geltungsbereich Kernthese,
Score-Ebenen DNA-Reifegrad, Preislogik Governance-Scope)
- Dok. 013 NEU: Akquise- & Conversion-Logik (Auffahrten statt Funnel)
- Rebranding brandwork.io → Brand Rules (brand-rules.com)
- Schichtverletzungen behoben, Ordner-Symmetrie hergestellt, Verweise konsolidiert
3. _markemacht.de/ – Web-Frontend Design-Sandbox
- Statische HTML-Entwürfe (Startseite, Methode, Manifest, Denken, Blog)
- Design-System (warm_intellectualism, based_web_design)
- Assets (CSS, JS, Favicon)
Konfiguration:
- .gitignore um .DS_Store und Thumbs.db erweitert
- Lokale Git-Identity gesetzt: Kevin Adametz <kevin.adametz@me.com>
- .env wird ignoriert (nur .env.example versioniert)
Konfliktregel: Bei Spannung zwischen Code und Methodik gilt die Methodik (Dok. 000).
Co-authored-by: Cursor <cursoragent@cursor.com>
51 lines
1.2 KiB
PHP
51 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Concerns;
|
|
|
|
use App\Models\User;
|
|
use Illuminate\Contracts\Validation\ValidationRule;
|
|
use Illuminate\Validation\Rule;
|
|
|
|
trait ProfileValidationRules
|
|
{
|
|
/**
|
|
* Get the validation rules used to validate user profiles.
|
|
*
|
|
* @return array<string, array<int, ValidationRule|array<mixed>|string>>
|
|
*/
|
|
protected function profileRules(?int $userId = null): array
|
|
{
|
|
return [
|
|
'name' => $this->nameRules(),
|
|
'email' => $this->emailRules($userId),
|
|
];
|
|
}
|
|
|
|
/**
|
|
* Get the validation rules used to validate user names.
|
|
*
|
|
* @return array<int, ValidationRule|array<mixed>|string>
|
|
*/
|
|
protected function nameRules(): array
|
|
{
|
|
return ['required', 'string', 'max:255'];
|
|
}
|
|
|
|
/**
|
|
* Get the validation rules used to validate user emails.
|
|
*
|
|
* @return array<int, ValidationRule|array<mixed>|string>
|
|
*/
|
|
protected function emailRules(?int $userId = null): array
|
|
{
|
|
return [
|
|
'required',
|
|
'string',
|
|
'email',
|
|
'max:255',
|
|
$userId === null
|
|
? Rule::unique(User::class)
|
|
: Rule::unique(User::class)->ignore($userId),
|
|
];
|
|
}
|
|
}
|