<?php

declare(strict_types=1);

namespace App\Models;

use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

/**
 * Prospecto capturado por el bot de ventas de la landing (pre-registro).
 *
 * @property int $id
 * @property string $name
 * @property string $phone
 * @property string|null $email
 * @property string|null $message
 * @property string $source
 * @property string $status
 */
class Lead extends Model
{
    use HasFactory;

    public const STATUS_NEW = 'new';

    public const STATUS_CONTACTED = 'contacted';

    public const STATUS_CONVERTED = 'converted';

    public const STATUS_DISCARDED = 'discarded';

    /** @var array<string,string> */
    public const STATUS_LABELS = [
        self::STATUS_NEW => 'Nuevo',
        self::STATUS_CONTACTED => 'Contactado',
        self::STATUS_CONVERTED => 'Convertido',
        self::STATUS_DISCARDED => 'Descartado',
    ];

    protected $fillable = [
        'name',
        'phone',
        'email',
        'message',
        'source',
        'status',
    ];

    protected $attributes = [
        'source' => 'sales_bot',
        'status' => self::STATUS_NEW,
    ];

    /** Leads sin atender aún. */
    public function scopeNew(Builder $query): Builder
    {
        return $query->where('status', self::STATUS_NEW);
    }
}
