Initial project

This commit is contained in:
2026-05-01 00:41:02 +03:30
parent d324115341
commit cde71d5761
172 changed files with 22074 additions and 12 deletions

View File

@@ -0,0 +1,48 @@
<?php
namespace App\Models;
use Database\Factories\ConversationParticipantFactory;
use Illuminate\Database\Eloquent\Attributes\Fillable;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Model;
#[Fillable(['conversation_id', 'user_id', 'role', 'joined_at', 'last_read_at', 'muted_until'])]
class ConversationParticipant extends Model
{
/** @use HasFactory<ConversationParticipantFactory> */
use HasFactory;
public const string RoleAdmin = 'admin';
public const string RoleMember = 'member';
/**
* @return array<string, string>
*/
protected function casts(): array
{
return [
'joined_at' => 'datetime',
'last_read_at' => 'datetime',
'muted_until' => 'datetime',
];
}
/**
* @return BelongsTo<Conversation, $this>
*/
public function conversation(): BelongsTo
{
return $this->belongsTo(Conversation::class);
}
/**
* @return BelongsTo<User, $this>
*/
public function user(): BelongsTo
{
return $this->belongsTo(User::class);
}
}