<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Str;
use DateTimeInterface;

class UnidadeOrganizacional extends Model
{
    protected $table = 'unidades_organizacionais';
    public $incrementing = false;
    protected $keyType = 'string';

    protected $fillable = [
        'id',
        'structure_id',
        'name',
        'abbreviation',
        'status',
    ];

    public static function boot(): void
    {
        parent::boot();
        static::creating(function ($model) {
            $model->id = Str::uuid();
        });
    }

    public function secretaria()
    {
        return $this->belongsTo(Structure::class, 'structure_id');
    }

    public function usuarios()
    {
        return $this->belongsToMany(User::class, 'user_unidade_organizacional', 'unidade_organizacional_id', 'user_id')
                    ->withTimestamps();
    }

    protected function serializeDate(DateTimeInterface $date): string
    {
        return $date->format('Y-m-d H:i:s');
    }
}
