Models
Wirechat uses a set of internal Eloquent models for conversations, participants, messages, groups, attachments, actions, invites, join requests, message requests, and settings.
These models are configurable so your application can extend them with app-specific relationships, scopes, observers, casts, accessors, or helper methods while keeping Wirechat's default behavior.
Your application's authenticated user model is configured separately by implementing WirechatUser and using InteractsWithWirechat. See Setup and Users for user-model integration.
Model Setup
Wirechat resolves its package models from the models array in config/wirechat.php:
use Wirechat\Wirechat\Models\Action;
use Wirechat\Wirechat\Models\Attachment;
use Wirechat\Wirechat\Models\Conversation;
use Wirechat\Wirechat\Models\Group;
use Wirechat\Wirechat\Models\Invite;
use Wirechat\Wirechat\Models\JoinRequest;
use Wirechat\Wirechat\Models\Message;
use Wirechat\Wirechat\Models\MessageRequest;
use Wirechat\Wirechat\Models\Participant;
use Wirechat\Wirechat\Models\Setting;
'models' => [
'action' => Action::class,
'attachment' => Attachment::class,
'conversation' => Conversation::class,
'group' => Group::class,
'invite' => Invite::class,
'join_request' => JoinRequest::class,
'message' => Message::class,
'message_request' => MessageRequest::class,
'participant' => Participant::class,
'setting' => Setting::class,
],
Each configured class must extend the matching Wirechat base model. This keeps package relationships, casts, scopes, cleanup hooks, jobs, and UI flows compatible.
Custom Model Classes
Create a custom model when you want to add application behavior to a Wirechat record:
namespace App\Models;
use Wirechat\Wirechat\Models\Conversation as BaseConversation;
class WirechatConversation extends BaseConversation
{
public function supportTicket()
{
return $this->belongsTo(SupportTicket::class);
}
}
Then register the subclass:
'models' => [
'conversation' => \App\Models\WirechatConversation::class,
],
Model Reference
Use the model pages when you need fields, relationships, helpers, query helpers, or safe customization notes: