Message.php 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. namespace App\Models;
  3. use App\Enums\Status;
  4. use Illuminate\Database\Eloquent\BroadcastsEvents;
  5. use Illuminate\Database\Eloquent\Concerns\HasUuids;
  6. use Illuminate\Database\Eloquent\Model;
  7. use Illuminate\Database\Eloquent\Relations\BelongsTo;
  8. use Illuminate\Database\Eloquent\Relations\MorphToMany;
  9. class Message extends Model
  10. {
  11. use HasUuids;
  12. use BroadcastsEvents;
  13. protected $fillable = ['content', 'thinking', 'from', 'status', 'fields'];
  14. public function casts(): array
  15. {
  16. return [
  17. 'feidls' => 'array',
  18. 'status' => Status::class,
  19. ];
  20. }
  21. public function batches(): MorphToMany
  22. {
  23. return $this->morphToMany(JobBatch::class, 'batchable')->withPivot('type');
  24. }
  25. public function chat(): BelongsTo
  26. {
  27. return $this->belongsTo(Chat::class);
  28. }
  29. public function broadcastOn(string $event): array
  30. {
  31. return [$this, $this->chat];
  32. }
  33. public function broadcastWith(string $event): array
  34. {
  35. return ['id' => $this->id, 'from' => $this->from, 'status' => $this->status];
  36. }
  37. }