datatable.directory codebase https://datatable.directory/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
datatable.directory/app/Models/TableComment.php

62 lines
1.4 KiB

<?php
namespace App\Models;
use App\Models\Concerns\Reportable;
use Illuminate\Database\Eloquent\Collection;
/**
* Comment on a data table
*
* @property int $id
* @property \Carbon\Carbon $created_at
* @property \Carbon\Carbon $updated_at
* @property int $table_id
* @property int $author_id
* @property int $ancestor_id
* @property string $message
* @property-read User $author
* @property-read Table $table
* @property-read TableComment|null $ancestor
* @property-read TableComment[]|Collection $replies
*/
class TableComment extends BaseModel
{
use Reportable;
protected $guarded = [];
protected $touches = ['table'];
protected static function boot()
{
parent::boot();
static::deleting(function(TableComment $self) {
$self->reportsOf()->delete();
});
}
/** Context data table */
public function table()
{
return $this->belongsTo(Table::class);
}
/** Parent comment (that we reply to; can be null) */
public function ancestor()
{
return $this->belongsTo(TableComment::class, 'ancestor_id');
}
/** Replies to this comment */
public function replies()
{
return $this->hasMany(TableComment::class, 'ancestor_id');
}
/** Authoring user */
public function author()
{
return $this->belongsTo(User::class, 'author_id');
}
}