File manager - Edit - /var/www/html/portal/app/Models/Accounts/LinhasDoTempo/Timeline.php
Back
<?php namespace App\Models\Accounts\LinhasDoTempo; use App\Enums\Accounts\LinhasDoTempoTimelineStatus; use App\Models\User; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Support\Str; use DateTimeInterface; /** * Linha do tempo (processo/serviço) pertencente a um usuário da Conta-Angra. */ class Timeline extends Model { use HasFactory; use SoftDeletes; protected $connection = 'mysql'; public $incrementing = false; protected $keyType = 'string'; protected $table = 'lt_timelines'; protected $fillable = [ 'id', 'user_id', 'name', 'description', 'process_text', 'event_date', 'tags', 'status', ]; protected $casts = [ 'event_date' => 'date', 'tags' => 'array', ]; public static function boot(): void { parent::boot(); static::creating(function (self $model): void { if (empty($model->id)) { $model->id = (string) Str::uuid(); } if (empty($model->status)) { $model->status = LinhasDoTempoTimelineStatus::Active->value; } }); } protected function serializeDate(DateTimeInterface $date): string { return $date->format('Y-m-d H:i:s'); } /** * Usuário criador da linha do tempo. */ public function user(): BelongsTo { return $this->belongsTo(User::class, 'user_id', 'id'); } /** * Pontos históricos ordenados por data de acontecimento. */ public function historicalPoints(): HasMany { return $this->hasMany(HistoricalPoint::class, 'timeline_id', 'id') ->orderBy('event_date') ->orderBy('created_at'); } /** * Pontos ativos (não excluídos logicamente). */ public function activeHistoricalPoints(): HasMany { return $this->historicalPoints()->whereNull('deleted_at'); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings