feature test su institution

This commit is contained in:
Giuseppe Naponiello
2026-06-22 22:14:15 +02:00
parent cc4e174880
commit fe73662903
39 changed files with 2432 additions and 1 deletions

View File

@@ -0,0 +1,56 @@
<?php
namespace App\Models\Lists;
use App\Models\Institution;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
use OwenIt\Auditing\Auditable as AuditableTrait;
use OwenIt\Auditing\Contracts\Auditable;
/**
* Lookup delle categorie di istituzione.
*
* Tabella controllata: gli id sono fissi e coincidono con quelli del DB legacy
* (v1) così l'ETL mappa institutions.category_id 1:1 senza tradurre. La categoria
* legacy 1 ("uncategorized", mai usata) NON viene riportata.
*/
class InstitutionCategory extends Model implements Auditable
{
use AuditableTrait;
use HasFactory;
// Id allineati al legacy (vedi seeder). Nessun id 1 e nessun id 5.
public const LIBRARY = 'library';
public const MUSEUM = 'museum';
public const PUBLIC_ADMINISTRATION = 'public administration';
public const RESEARCH_INSTITUTE = 'research institute';
protected $table = 'institution_categories';
protected $fillable = [
'value',
];
/**
* Istituzioni che appartengono a questa categoria.
*
* @return HasMany<Institution, $this>
*/
public function institutions(): HasMany
{
return $this->hasMany(Institution::class, 'category_id');
}
/**
* La categoria è assegnata ad almeno un'istituzione.
*/
public function isInUse(): bool
{
return $this->institutions()->exists();
}
}