*/ protected $fillable = ['ticket_id', 'parent_id', 'user_id', 'body', 'is_internal']; /** @var array */ protected $casts = ['is_internal' => 'boolean']; /** @return BelongsTo */ public function ticket(): BelongsTo { return $this->belongsTo(Ticket::class, 'ticket_id'); } /** @return BelongsTo */ public function parent(): BelongsTo { return $this->belongsTo(self::class, 'parent_id'); } /** @return HasMany */ public function replies(): HasMany { return $this->hasMany(self::class, 'parent_id')->oldest(); } /** @return BelongsTo */ public function user(): BelongsTo { return $this->belongsTo(User::class, 'user_id'); } /** @return HasMany */ public function attachments(): HasMany { return $this->hasMany(Attachment::class, 'comment_id'); } }