Basic tenant structure

This commit is contained in:
2026-01-31 20:07:41 +01:00
parent 825af15962
commit 3570f442f5
35 changed files with 634 additions and 144 deletions

View File

@@ -0,0 +1,43 @@
<?php
namespace App\Installer;
use App\Enumerations\UserRole;
use App\Models\Tenant;
use App\Models\User;
class DevelopmentDataSeeder {
public function execute() {
$this->installTenants();
$this->installUsers();
}
private function installTenants() {
Tenant::create([
'slug' => 'wilde-moehre',
'local_group_name' => 'Stamm Wilde Möhre',
'url' => 'wilde-moehre.mareike.local',
'account_iban' => 'DE12345678901234567890',
'email' => 'test@example1.com',
'city' => 'Halle (Saale)',
'postcode' => '06120',
'is_active_local_group' => true,
'has_active_instance' => true,
]);
}
private function installUsers() {
User::create([
'firstname' => 'Development',
'lastname' => 'User',
'user_role' => UserRole::USER_ROLE_ADMIN,
'tenant' => 'lv',
'email' => 'th.guenther@saale-mail.de',
'password' => bcrypt('development'),
'local_group_id' => 1,
'username' => 'development',
]);
}
}

View File

@@ -0,0 +1,71 @@
<?php
namespace App\Installer;
use App\Enumerations\CostUnitType;
use App\Enumerations\EatingHabit;
use App\Enumerations\FirstAidPermission;
use App\Enumerations\SwimmingPermission;
use App\Enumerations\UserRole;
use App\Models\Tenant;
class ProductionDataSeeder {
public function execute() {
$this->installUserRoles();
$this->installCostUnitTypes();
$this->installSwimmingPermissions();
$this->installEatingHabits();
$this->installFirstAidPermissions();
$this->installTenants();
}
private function installUserRoles() {
UserRole::create(['name' => 'Administrator*in', 'slug' => UserRole::USER_ROLE_ADMIN]);
UserRole::create(['name' => 'Vorstandsmitglied', 'slug' => UserRole::USER_ROLE_GROUP_LEADER]);
UserRole::create(['name' => 'Benutzer*in', 'slug' => UserRole::USER_ROLE_USER]);
}
private function installSwimmingPermissions() {
SwimmingPermission::create(['name' => 'Mein Kind darf baden und kann schwimmen', 'slug' => SwimmingPermission::SWIMMING_PERMISSION_ALLOWED]);
SwimmingPermission::create(['name' => 'Mein Kind darf baden und kann NICHT schwimmen', 'slug' => SwimmingPermission::SWIMMING_PERMISSION_LIMITED]);
SwimmingPermission::create(['name' => 'Mein Kind darf nicht baden', 'slug' => SwimmingPermission::SWIMMING_PERMISSION_DENIED]);
}
private function installEatingHabits() {
EatingHabit::create(['name' => 'Vegan', 'slug' => EatingHabit::EATING_HABIT_VEGAN]);
EatingHabit::create(['name' => 'Vegetarisch', 'slug' => EatingHabit::EATING_HABIT_VEGETARIAN]);
EatingHabit::create(['name' => 'Omnivor', 'slug' => EatingHabit::EATING_HABIT_OMNIVOR]);
}
private function installFirstAidPermissions() {
FirstAidPermission::create([
'name' => 'Zugestimmt',
'description' => 'Ich STIMME der Anwendung von erweiteren Erste-Hilfe-Maßnahmen an meinem Kind explizit ZU.',
'slug' => FirstAidPermission::FIRST_AID_PERMISSION_ALLOWED]);
FirstAidPermission::create([
'name' => 'Verweigert',
'description' => 'Ich LEHNE die Anwendung von erweiteren Erste-Hilfe-Maßnahmen an meinem Kind explizit AB.',
'slug' => FirstAidPermission::FIRST_AID_PERMISSION_DENIED]);
}
private function installCostUnitTypes() {
CostUnitType::create(['slug' => CostUnitType::COST_UNIT_TYPE_EVENT, 'name' => 'Veranstaltung']);
CostUnitType::create(['slug' => CostUnitType::COST_UNIT_TYPE_RUNNING_JOB, 'name' => 'Laufende Tätigkeit']);
}
private function installTenants() {
Tenant::create([
'slug' => 'lv',
'local_group_name' => 'Landesunmittelbare Mitglieder',
'url' => 'mareike.local',
'account_iban' => 'DE12345678901234567890',
'email' => 'test@example.com',
'city' => 'Lommatzsch',
'postcode' => '01623',
'is_active_local_group' => true,
'has_active_instance' => true,
]);
}
}