<?php

namespace App\Models;

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

class Profesional extends Model
{
    use HasFactory;

    protected $table = 'profesionales';

    protected $fillable = [
        'matricula',
        'correo',
        'dni',
        'credencialprofesional_id',
        'persona_id',
        'baja_id',
        'profesion_id',
    ];


    //Pertenece a

    public function profesion()
    {
        return $this->belongsTo(Profesion::class, 'profesion_id', 'id');
    }

    public function profesiones()
    {
        return $this->belongsToMany(Profesion::class, 'profesionales_profesiones', 'profesional_id', 'profesion_id');
    }

    public function credencialProfesional() 
    {
        return $this->belongsTo(CredencialProfesional::class, 'credencialprofesional_id', 'id');
    }

    public function persona() 
    {
        return $this->belongsTo(Persona::class, 'persona_id');
    }

    public function baja() 
    {
        return $this->belongsTo(Baja::class, 'baja_id');
    }

    //Tiene una

    public function agenda()
    {
        return $this->hasOne(Agenda::class, 'profesional_id');
    }

    public function turnos()
    {
        return $this->hasMany(Turno::class, 'profesional_id');
    }

    public function documentacionesClientes()
    {
        return $this->hasMany(DocumentacionCliente::class, 'profesional_id');
    }




    //tablas intermedias

    public function formularios()
    {
        return $this->belongsToMany(Formulario::class, 'profesionales_formularios', 'profesional_id', 'formulario_id')
                    ->withPivot('estadoformulario')
                    ->withTimestamps();
    }

    public function servicios()
    {
        return $this->belongsToMany(Servicio::class, 'profesionales_servicios', 'profesional_id', 'servicio_id');
    }

    public function clientes() 
    {
        return $this->belongsToMany(Cliente::class, 'profesionales_clientes', 'profesional_id', 'cliente_id')
                    ->withPivot('estadorelacion')
                    ->withTimestamps();
    }

}
