Files
fotospiel-app/app/Services/Compliance/RetentionOverrideService.php
Codex Agent eed7699549
Some checks failed
linter / quality (push) Has been cancelled
tests / ci (push) Has been cancelled
tests / ui (push) Has been cancelled
Implement compliance exports and retention overrides
2026-01-02 20:13:45 +01:00

37 lines
1.1 KiB
PHP

<?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();
}
}