<?php
/**
 * Model object generated by: Skipper (http://www.skipper18.com)
 * Do not modify this file manually.
 */

namespace App\Models\AbstractModels;

abstract class AbstractPrimaNota extends \Illuminate\Foundation\Auth\User
{
    /**  
     * The table associated with the model.
     * 
     * @var string
     */
    protected $table = 'prima_nota';
    
    /**  
     * Primary key type.
     * 
     * @var string
     */
    protected $keyType = 'bigInteger';
    
    /**  
     * The model's default values for attributes.
     * 
     * @var array
     */
    // protected $attributes = ['is_gruppo' => 0];
    
    /**  
     * The attributes that should be cast to native types.
     * 
     * @var array
     */
    protected $casts = [
        'id' => 'integer',  
        'attivita_id' => 'integer',
        'pagamento_id' => 'integer',
        'ordine_id' => 'integer',
        'prenotazione_id' => 'integer',
        'evento_id' => 'integer',
        'fornitore_id' => 'integer',
        'riferimento' => 'string',
        'importo' => 'decimal:2',
        'tipo_movimento' => 'string',
        'causale' => 'string',
        'stato' => 'string',
        'categoria_contabile_id' => 'integer',
        'created_at' => 'datetime',
        'updated_at' => 'datetime'
    ];
    
    /**  
     * The attributes that are mass assignable.
     * 
     * @var array
     */
    protected $fillable = [
        'id',
        'attivita_id',
        'pagamento_id',
        'ordine_id',
        'prenotazione_id',
        'evento_id',
        'fornitore_id',
        'riferimento',
        'importo',
        'tipo_movimento',   
        'causale',
        'stato',
        'categoria_contabile_id',
        'created_at',
        'updated_at'
    ];
    
    public function attivita()
    {
        return $this->belongsTo('\App\Models\Attivita', 'attivita_id', 'id');
    }

    public function pagamento()
    {
        return $this->belongsTo('\App\Models\Pagamento', 'pagamento_id', 'id');
    }

    public function ordine()
    {
        return $this->belongsTo('\App\Models\Ordine', 'ordine_id', 'id');
    }
    
    public function prenotazione()
    {
        return $this->belongsTo('\App\Models\Prenotazione', 'prenotazione_id', 'id');
    }

    public function fornitore()
    {
        return $this->belongsTo('\App\Models\Fornitore', 'fornitore_id', 'id');
    }

    public function categoria_contabile()
    {
        return $this->belongsTo('\App\Models\Categoriacontabile', 'categoria_contabile_id', 'id');
    }
}
