updates to UI and add archiving option

This commit is contained in:
Simon Pocrnjič
2025-10-05 19:45:49 +02:00
parent fe91c7e4bc
commit bab9d6561f
50 changed files with 3337 additions and 416 deletions
+59
View File
@@ -0,0 +1,59 @@
<?php
namespace Database\Seeders;
use App\Models\ArchiveEntity;
use Illuminate\Database\Seeder;
class ArchiveEntitySeeder extends Seeder
{
/**
* Seed archive focus entities and their selectable related tables.
*/
public function run(): void
{
$entities = [
[
'focus' => 'contracts',
'name' => 'Contracts',
'description' => 'Contracts and their financial / activity related records.',
'related' => [
// Direct related tables
'accounts',
'activities',
'documents', // polymorphic (contract documents only when used as focus)
// Chained relations (dot notation) resolve via contract -> account -> payments/bookings
'account.payments',
'account.bookings',
],
],
[
'focus' => 'client_cases',
'name' => 'Client Cases',
'description' => 'Client cases and subordinate contractual / financial records.',
'related' => [
'contracts', // direct contracts under case
'contracts.account', // via contracts (hasOne account)
'activities', // case level activities (and possibly contract-linked)
'documents', // case level documents
// Chained relations:
'contracts.account.payments', // contracts -> account -> payments
'contracts.account.bookings', // contracts -> account -> bookings
'contracts.documents', // contracts -> documents (polymorphic)
],
],
];
foreach ($entities as $data) {
ArchiveEntity::query()->updateOrCreate(
['focus' => $data['focus']],
[
'name' => $data['name'],
'description' => $data['description'],
'related' => $data['related'],
'enabled' => true,
]
);
}
}
}