Implement compliance exports and retention overrides
Some checks failed
linter / quality (push) Has been cancelled
tests / ci (push) Has been cancelled
tests / ui (push) Has been cancelled

This commit is contained in:
Codex Agent
2026-01-02 20:13:45 +01:00
parent 5fd546c428
commit eed7699549
45 changed files with 2319 additions and 40 deletions

View File

@@ -0,0 +1,36 @@
<?php
namespace App\Services\Compliance;
use App\Enums\RetentionOverrideScope;
use App\Models\Event;
use App\Models\RetentionOverride;
use App\Models\Tenant;
class RetentionOverrideService
{
public function tenantOnHold(Tenant $tenant): bool
{
return RetentionOverride::query()
->where('scope', RetentionOverrideScope::TENANT->value)
->where('tenant_id', $tenant->id)
->whereNull('released_at')
->exists();
}
public function eventOnHold(Event $event): bool
{
return RetentionOverride::query()
->whereNull('released_at')
->where(function ($query) use ($event) {
$query->where(function ($inner) use ($event) {
$inner->where('scope', RetentionOverrideScope::EVENT->value)
->where('event_id', $event->id);
})->orWhere(function ($inner) use ($event) {
$inner->where('scope', RetentionOverrideScope::TENANT->value)
->where('tenant_id', $event->tenant_id);
});
})
->exists();
}
}