File manager - Edit - /var/www/html/portal/app/Models/Cultura/ArteSacra/Acervo.php
Back
<?php namespace App\Models\Cultura\ArteSacra; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Str; use DateTimeInterface; use App\Enums\ExpoArteSacra; class Acervo extends Model { use HasFactory; protected $connection = 'mysql_arte_sacra'; protected $table = 'acervo'; public $incrementing = false; protected $keyType = 'string'; const CREATED_AT = 'created_at'; const UPDATED_AT = 'updated_at'; protected $fillable = [ 'codigo_acervo', 'tipo_id', 'nome_peca', 'ano_arte', 'roca', 'modo_aquisicao_id', 'periodo_peca', 'descricao', 'material_id', 'tecnica_id', 'proprietario_id', 'localizacao_id', 'designacao_id', 'classe_id', 'tombamento_id', 'autoria', 'dimensao', 'altura', 'comprimento', 'largura', 'diametro', 'profundidade', 'peso', 'imagem', 'data_recebimento', 'entregue_por', 'status_peca', 'permitir_exibicao', ]; protected static function boot() { parent::boot(); static::creating(function ($model) { if (!$model->id) { $model->id = (string) Str::uuid(); } }); } // Mutator para remover hífens no nome_peca antes de salvar no banco public function setNomePecaAttribute($value) { $value = str_replace('-', '', $value); $value = preg_replace('/\s+/', ' ', $value); $this->attributes['nome_peca'] = $value; } // Método para serializar a data no formato desejado protected function serializeDate(DateTimeInterface $date) { return $date->format('Y-m-d H:i:s'); } // Mutators para garantir valores positivos public function setAlturaAttribute($value) { $this->attributes['altura'] = max(0, $value); } public function setComprimentoAttribute($value) { $this->attributes['comprimento'] = max(0, $value); } public function setLarguraAttribute($value) { $this->attributes['largura'] = max(0, $value); } public function setDiametroAttribute($value) { $this->attributes['diametro'] = max(0, $value); } public function setProfundidadeAttribute($value) { $this->attributes['profundidade'] = max(0, $value); } public function setPesoAttribute($value) { $this->attributes['peso'] = max(0, $value); } // Relacionamentos public function tipo() { return $this->belongsTo(TipoAcervo::class, 'tipo_id'); } public function modoAquisicao() { return $this->belongsTo(ModoAquisicao::class, 'modo_aquisicao_id'); } public function material() { return $this->belongsTo(Material::class, 'material_id'); } public function tecnica() { return $this->belongsTo(Tecnica::class, 'tecnica_id'); } public function proprietario() { return $this->belongsTo(Proprietario::class, 'proprietario_id'); } public function localizacao() { return $this->belongsTo(Proprietario::class, 'localizacao_id'); } public function designacao() { return $this->belongsTo(Designacao::class, 'designacao_id'); } public function classe() { return $this->belongsTo(ClasseArte::class, 'classe_id'); } public function tombamento() { return $this->belongsTo(Tombamento::class, 'tombamento_id'); } /** * Relacionamento 1:N (Um Acervo pode ter várias avaliações técnicas) */ public function avaliacoesTecnicas() { return $this->hasMany(AvaliacaoTecnica::class, 'acervo_id', 'id'); } public function historicos() { return $this->hasMany(Historico::class); } public function historiaArte() { return $this->hasMany(HistoriaArte::class); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.01 |
proxy
|
phpinfo
|
Settings