Add external import sources, work history, screening fields and Phase 1 docs

- New ExternalImportSource and ExternalWorkHistoryEntry models, controller and migrations
- Screening fields on external profile imports
- Admin and provider profile views, routes and workflow tests updated
- Phase 1 validation, route inventory, gap report template and roadmap docs
- Add the Google Sheets work-order parser tool (tools/google-sheets-wo-parser)
This commit is contained in:
Codex
2026-10-02 15:50:18 -05:00
parent 0670f48878
commit 62220186af
37 changed files with 3284 additions and 4 deletions
+12
View File
@@ -4,12 +4,14 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Attributes\Fillable;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Illuminate\Database\Eloquent\Model;
#[Fillable([
'provider_profile_id', 'platform', 'external_id', 'profile_url', 'status',
'visibility', 'verification_status', 'verified_by_id', 'verified_at',
'background_check_status', 'background_check_date', 'drug_test_status', 'drug_test_date',
'rating', 'review_count', 'completed_jobs', 'work_categories', 'endorsements',
'operational_metrics', 'metrics', 'review_snapshots', 'selected_reviews',
'notes', 'imported_at',
@@ -59,6 +61,16 @@ class ExternalProfileImport extends Model
return $this->morphMany(Attachment::class, 'attachable');
}
public function sources(): HasMany
{
return $this->hasMany(ExternalImportSource::class);
}
public function workHistoryEntries(): HasMany
{
return $this->hasMany(ExternalWorkHistoryEntry::class);
}
public function publiclyVisible(): bool
{
return $this->visibility !== 'private';