Add owner organization and owner user to audits

- Rename the audit actor columns user_type/user_id to actor_type/actor_id
- Add owner_organization_id and owner_user_id to the audits table as
  foreign keys with cascade on delete, so that the audits of an
  organization or user are deleted together with it. The indexes and
  foreign keys are created without blocking writes on the large table.
- Fill the owner columns for new audits via CustomAuditable. Organizations
  and users no longer record their own deletion audit, since it would
  reference the already deleted owner.
This commit is contained in:
Constantin Graf
2026-10-07 11:49:51 +02:00
committed by Constantin Graf
parent af54b0db73
commit 135984f9ef
11 changed files with 396 additions and 4 deletions

View File

@@ -82,4 +82,12 @@ class ProjectMember extends Model implements AuditableContract
$query->whereBelongsTo($organization, 'organization');
});
}
public function getAuditOwnerOrganizationId(): ?string
{
/** @var string|null $organizationId */
$organizationId = Project::query()->whereKey($this->project_id)->value('organization_id');
return $organizationId;
}
}