<?php

namespace App\Models\ORM;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Database\Eloquent\Casts\Attribute;

class Place extends Model
{
    use SoftDeletes;

    const CREATED_AT = 'created_at';
    const UPDATED_AT = 'updated_at';
    const DELETED_AT = 'deleted_at';

    protected $primaryKey = 'id';
    protected $table = 'places';

    protected $fillable = [
        'name','gps', 'phone', 'description', 'url', 'address'
    ];

    protected function formattedPhone(): Attribute
    {
        return Attribute::make(
            get: function () {
                // Берем оригинальное значение из базы (например: 79991110101)
                $phone = $this->phone; 

                // Если номер начинается с 8 или 7 и в нем 11 цифр
                if (strlen($phone) === 11) {
                    return '+7 (' . substr($phone, 1, 3) . ') ' . substr($phone, 4, 3) . '-' . substr($phone, 7, 2) . '-' . substr($phone, 9, 2);
                }

                // Если номер записан без семерки (всего 10 цифр, например: 9991110101)
                if (strlen($phone) === 10) {
                    return '+7 (' . substr($phone, 0, 3) . ') ' . substr($phone, 3, 3) . '-' . substr($phone, 6, 2) . '-' . substr($phone, 8, 2);
                }

                // Если формат странный (например, городской короткий), выводим как есть
                return $phone; 
            }
        );
    }
}
