netgescon-day0/app/Models/StabileContratto.php

76 lines
1.9 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
class StabileContratto extends Model
{
use HasFactory;
protected $table = 'stabile_contratti';
protected $fillable = [
'stabile_id',
'fornitore_id',
'documento_principale_id',
'titolo',
'tipo_contratto',
'categoria_impianto',
'servizio_label',
'codice_contratto',
'riferimento_esterno',
'stato',
'data_stipula',
'decorrenza_dal',
'decorrenza_al',
'frequenza_scadenze',
'giorno_scadenza',
'giorni_preavviso',
'rinnovo_automatico',
'importo_periodico',
'valuta',
'dati_contratto',
'codici_collegati',
'note',
'created_by',
'updated_by',
];
protected $casts = [
'data_stipula' => 'date',
'decorrenza_dal' => 'date',
'decorrenza_al' => 'date',
'giorno_scadenza' => 'integer',
'giorni_preavviso' => 'integer',
'rinnovo_automatico' => 'boolean',
'importo_periodico' => 'decimal:2',
'dati_contratto' => 'array',
'codici_collegati' => 'array',
'created_at' => 'datetime',
'updated_at' => 'datetime',
];
public function stabile(): BelongsTo
{
return $this->belongsTo(Stabile::class, 'stabile_id');
}
public function fornitore(): BelongsTo
{
return $this->belongsTo(Fornitore::class, 'fornitore_id');
}
public function documentoPrincipale(): BelongsTo
{
return $this->belongsTo(Documento::class, 'documento_principale_id');
}
public function scadenze(): HasMany
{
return $this->hasMany(Scadenza::class, 'stabile_contratto_id');
}
}