Implement compliance exports and retention overrides
This commit is contained in:
36
app/Services/Compliance/RetentionOverrideService.php
Normal file
36
app/Services/Compliance/RetentionOverrideService.php
Normal 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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user