diff options
author | Michael Weimann <mail@michael-weimann.eu> | 2019-12-12 21:30:28 +0100 |
---|---|---|
committer | Igor Scheller <igor.scheller@igorshp.de> | 2019-12-30 01:53:20 +0100 |
commit | 95adeca0ae1cd6c5475242d036ee75584aedd2a1 (patch) | |
tree | 593dbc9888cf447429f3c8f954b52b60095d2ca0 /src/Models/Message.php | |
parent | 46f80fbed262a30ba31e1d031e2512f278352e12 (diff) |
Add message model
Diffstat (limited to 'src/Models/Message.php')
-rw-r--r-- | src/Models/Message.php | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/src/Models/Message.php b/src/Models/Message.php new file mode 100644 index 00000000..cb658fc6 --- /dev/null +++ b/src/Models/Message.php @@ -0,0 +1,68 @@ +<?php + +declare(strict_types=1); + +namespace Engelsystem\Models; + +use Engelsystem\Models\User\User; +use Engelsystem\Models\User\UsesUserModel; +use Illuminate\Database\Eloquent\Builder; +use Illuminate\Database\Eloquent\Relations\BelongsTo; +use Illuminate\Support\Carbon; + +/** + * This class represents a message send trough the system. + * + * @property integer $id + * @property integer $receiver_id + * @property boolean $read + * @property string $text + * @property Carbon|null $created_at + * @property Carbon|null $updated_at + * @property-read User $receiver + * @method static Builder|Message newModelQuery() + * @method static Builder|Message newQuery() + * @method static Builder|Message query() + * @method static Builder|Message whereCreatedAt($value) + * @method static Builder|Message whereId($value) + * @method static Builder|Message whereRead($value) + * @method static Builder|Message whereReceiverId($value) + * @method static Builder|Message whereSenderId($value) + * @method static Builder|Message whereText($value) + * @method static Builder|Message whereUpdatedAt($value) + */ +class Message extends BaseModel +{ + use UsesUserModel; + + /** @var bool enable timestamps */ + public $timestamps = true; + + /** @var string[] */ + protected $casts = [ + 'user_id' => 'integer', + 'receiver_id' => 'integer', + 'read' => 'boolean', + ]; + + /** @var string[] */ + protected $fillable = [ + 'user_id', + 'receiver_id', + 'read', + 'text', + ]; + + /** @var array */ + protected $attributes = [ + 'read' => false, + ]; + + /** + * @return BelongsTo + */ + public function receiver(): BelongsTo + { + return $this->belongsTo(User::class, 'receiver_id'); + } +} |