lernschiff/app/Models
Boban Blaskovic 6de4131389 feat(license): EnsureActiveLicense full implementation + license/dashboard routes
- EnsureActiveLicense: full child-role check via licenseAssignments().isActive()
- License model: add isActive() method, fix fillable order, expires_at cast to date
- LicenseFactory: active/expired/inactive states
- routes/web.php: /dashboard with auth+license middleware, /lizenz-abgelaufen
- tests: EnsureActiveLicenseTest (3 tests — block/allow/teacher bypass)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 05:16:06 +02:00
..
License.php feat(license): EnsureActiveLicense full implementation + license/dashboard routes 2026-05-22 05:16:06 +02:00
LicenseAssignment.php feat(models): Tenant, User, Role, ParentChild pivot + factories with withRole/withLicense 2026-05-22 00:54:07 +02:00
ParentChild.php feat(models): Tenant, User, Role, ParentChild pivot + factories with withRole/withLicense 2026-05-22 00:54:07 +02:00
Role.php feat(models): Tenant, User, Role, ParentChild pivot + factories with withRole/withLicense 2026-05-22 00:54:07 +02:00
Tenant.php feat(models): Tenant, User, Role, ParentChild pivot + factories with withRole/withLicense 2026-05-22 00:54:07 +02:00
User.php fix(tenant): forceDelete guard, hasRole eager-load, write-path test, migration timestamps 2026-05-22 01:07:26 +02:00