<?php

declare(strict_types=1);

namespace Builder\Core\Tests\Fixtures;

use Builder\Core\Foundation\Concerns\HasBuilderAccess;
use Builder\Core\Foundation\Concerns\HasHierarchy;
use Builder\Core\Foundation\Concerns\HasPublishing;
use Builder\Core\Foundation\Concerns\HasRevisionHistory;
use Builder\Core\Foundation\Concerns\HasRevisions;
use Builder\Core\Foundation\Concerns\HasTranslations;
use Illuminate\Database\Eloquent\Model;
use Spatie\Permission\Traits\HasRoles;

/**
 * Static reference for PHPStan: proves that every public-API trait in
 * Foundation\Concerns is consumed somewhere, so phpstan's `trait.unused`
 * rule reports them as legitimately used.
 *
 * Not loaded at runtime outside of the test suite. HasTranslatablePublishing
 * is consumed by {@see TranslatablePublishingConsumer} — the two publish()
 * implementations conflict if combined in a single class.
 */
final class TraitConsumer extends Model
{
    use HasBuilderAccess;
    use HasHierarchy;
    use HasPublishing;
    use HasRevisionHistory;
    use HasRevisions;
    use HasRoles;
    use HasTranslations;
}
