feat: person identity matching with detection, confirmation and audit trail
Implements enterprise-grade identity resolution (detect → suggest → confirm) for Person ↔ User linking. Matches are detected automatically on person creation and user account creation, then surfaced to organisers for explicit confirmation or dismissal. No silent auto-linking. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
11
api/app/Enums/IdentityMatchConfidence.php
Normal file
11
api/app/Enums/IdentityMatchConfidence.php
Normal file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Enums;
|
||||
|
||||
enum IdentityMatchConfidence: string
|
||||
{
|
||||
case EXACT = 'exact';
|
||||
case FUZZY = 'fuzzy';
|
||||
}
|
||||
12
api/app/Enums/IdentityMatchMethod.php
Normal file
12
api/app/Enums/IdentityMatchMethod.php
Normal file
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Enums;
|
||||
|
||||
enum IdentityMatchMethod: string
|
||||
{
|
||||
case EMAIL = 'email';
|
||||
case PHONE = 'phone';
|
||||
case MANUAL = 'manual';
|
||||
}
|
||||
12
api/app/Enums/IdentityMatchStatus.php
Normal file
12
api/app/Enums/IdentityMatchStatus.php
Normal file
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Enums;
|
||||
|
||||
enum IdentityMatchStatus: string
|
||||
{
|
||||
case PENDING = 'pending';
|
||||
case CONFIRMED = 'confirmed';
|
||||
case DISMISSED = 'dismissed';
|
||||
}
|
||||
Reference in New Issue
Block a user