<?php

declare(strict_types=1);

namespace App\Support;

/**
 * Shared constants for the Credify GO! demo company.
 *
 * A single, shared "demo company" (flag `is_demo` on `companies`) replaces the
 * self-serve trial. It ships with 3 fixed users, one per role, so anyone can
 * jump straight into a populated account without registering.
 */
class Demo
{
    public const COMPANY_NAME = 'Credify Demo';

    public const COMPANY_EMAIL = 'demo@credifygo.com';

    /**
     * Demo users, keyed by email, valued by their Spatie role name.
     *
     * @var array<string, string>
     */
    public const USERS = [
        'demo-dueno@credifygo.com' => 'admin',
        'demo-supervisor@credifygo.com' => 'supervisor',
        'demo-cobrador@credifygo.com' => 'collector',
    ];

    /**
     * Mapea el slug de rol en español ("dueno"/"supervisor"/"cobrador") al email
     * del usuario demo. Lo usan el seeder y los tests para resolver el usuario
     * demo por rol, desacoplando el vocabulario en español de los nombres de rol
     * internos de Spatie (admin, supervisor, collector) usados en USERS.
     *
     * @var array<string, string>
     */
    public const ROLE_SLUG_TO_EMAIL = [
        'dueno' => 'demo-dueno@credifygo.com',
        'supervisor' => 'demo-supervisor@credifygo.com',
        'cobrador' => 'demo-cobrador@credifygo.com',
    ];
}
