use BookStack\App\Model;
use BookStack\Users\Models\HasCreatorAndUpdater;
use Illuminate\Database\Eloquent\Factories\HasFactory;
+use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\MorphTo;
/**
* @property string $html
* @property int|null $parent_id
* @property int $local_id
+ * @property string $entity_type
+ * @property int $entity_id
*/
-class Comment extends Model
+class Comment extends Model implements Loggable
{
use HasFactory;
use HasCreatorAndUpdater;
return $this->morphTo('entity');
}
+ /**
+ * Get the parent comment this is in reply to (if existing).
+ */
+ public function parent(): BelongsTo
+ {
+ return $this->belongsTo(Comment::class);
+ }
+
/**
* Check if a comment has been updated since creation.
*/
/**
* Get created date as a relative diff.
- *
- * @return mixed
*/
- public function getCreatedAttribute()
+ public function getCreatedAttribute(): string
{
return $this->created_at->diffForHumans();
}
/**
* Get updated date as a relative diff.
- *
- * @return mixed
*/
- public function getUpdatedAttribute()
+ public function getUpdatedAttribute(): string
{
return $this->updated_at->diffForHumans();
}
+
+ public function logDescriptor(): string
+ {
+ return "Comment #{$this->local_id} (ID: {$this->id}) for {$this->entity_type} (ID: {$this->entity_id})";
+ }
}