updates to UI and add archiving option
This commit is contained in:
@@ -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,
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\ArchiveSetting;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class ArchiveSettingSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
if (ArchiveSetting::query()->count() === 0) {
|
||||
ArchiveSetting::factory()->count(2)->create();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -31,6 +31,7 @@ public function run(): void
|
||||
$this->call([
|
||||
AccountTypeSeeder::class,
|
||||
PaymentSettingSeeder::class,
|
||||
ArchiveEntitySeeder::class,
|
||||
PersonSeeder::class,
|
||||
SegmentSeeder::class,
|
||||
ActionSeeder::class,
|
||||
|
||||
Reference in New Issue
Block a user