Initial commit

This commit is contained in:
Ronald Huynen
2026-03-23 21:37:59 +01:00
commit 2547717edb
2193 changed files with 972171 additions and 0 deletions

177
config/wirechat.php Normal file
View File

@@ -0,0 +1,177 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Use UUIDs for Conversations
|--------------------------------------------------------------------------
|
| Determines the primary key type for the conversations table and related
| relationships. When enabled, UUIDs (version 7 if supported, otherwise
| version 4) will be used during initial migrations.
|
| ⚠️ This setting is intended for **new applications only** and does not
| affect how new conversations are created at runtime. It controls whether
| migrations generate UUID-based keys or unsigned big integers.
|
*/
'uuids' => false,
/*
|--------------------------------------------------------------------------
| Table Prefix
|--------------------------------------------------------------------------
|
| This value will be prefixed to all Wirechat-related database tables.
| Useful if you're sharing a database with other apps or packages.
|
*/
'table_prefix' => 'wirechat_',
/*
|--------------------------------------------------------------------------
| User Model
|--------------------------------------------------------------------------
|
| Specify the fully qualified class name of the Default model used for user search
| within Wirechat. This is used when searching for users (e.g., to
| start a new conversation)
|
*/
'user_model' => \App\Models\User::class,
/*
|--------------------------------------------------------------------------
| Broadcasting
|--------------------------------------------------------------------------
|
| Configure the queues used for broadcasting messages and notifications.
| 'messages_queue' is used for real-time chat events.
| 'notifications_queue' handles alert or notification broadcasts.
|
*/
'broadcasting' => [
'messages_queue' => 'messages',
'notifications_queue' => 'default',
],
/*
|--------------------------------------------------------------------------
| Theme Color
|--------------------------------------------------------------------------
|
| Define the primary UI color used in the chat interface.
| This will be used to highlight buttons and elements.
|
*/
'color' => '#6b7280',
/*
|--------------------------------------------------------------------------
| Home Route
|--------------------------------------------------------------------------
|
| The route where users are redirected when they leave or close the chat UI.
| This can be any valid route or URL in your application.
|
*/
'home_route' => '/main-page',
/*
|--------------------------------------------------------------------------
| Routes Configuration
|--------------------------------------------------------------------------
|
| Customize the URL prefix, middleware stack, and guards for all Wirechat
| routes. This gives you control over route access and grouping.
|
*/
'routes' => [
'prefix' => 'chats',
'middleware' => ['auth.any:admin,bank,organization,web'],
'guards' => ['admin', 'bank', 'organization', 'web'],
'register_routes' => false, // Customization: set to false, to disable vendor routes. Localized Routes are defined in routes/web.php
],
/*
|--------------------------------------------------------------------------
| Layout View
|--------------------------------------------------------------------------
|
| This is the layout that will be used when rendering Wirechat components
| via built-in routes like /chats or /chats/{id}. The $slot will contain
| the dynamic chat content.
|
*/
'layout' => 'wirechat::layouts.app',
/*
|--------------------------------------------------------------------------
| Feature Toggles
|--------------------------------------------------------------------------
|
| Enable or disable specific frontend features of Wirechat.
|
*/
'show_new_chat_modal_button' => true,
'show_new_group_modal_button' => true,
'allow_chats_search' => true,
'allow_media_attachments' => true,
'allow_file_attachments' => true,
/*
|--------------------------------------------------------------------------
| Notifications
|--------------------------------------------------------------------------
|
| Enable and configure notifications for incoming messages or events.
| 'main_sw_script' should point to your service worker JS file.
|
*/
'notifications' => [
'enabled' => true,
'main_sw_script' => 'sw.js', // Relative to public path
],
/*
|--------------------------------------------------------------------------
| User Searchable Fields
|--------------------------------------------------------------------------
|
| Define which columns to search when users are looking for other users
| to chat with. These fields should exist on your User model.
|
*/
'user_searchable_fields' => ['name', 'full_name'],
/*
|--------------------------------------------------------------------------
| Attachments
|--------------------------------------------------------------------------
|
| Configure media and file uploads within conversations. Control disk usage,
| visibility, allowed MIME types, and maximum upload sizes.
|
| These settings are referenced from the platform-specific timebank config.
| Customize in config/timebank-{platform}.php under 'wirechat.attachments'
|
*/
'attachments' => [
'storage_folder' => timebank_config('wirechat.attachments.storage_folder', 'attachments'),
'storage_disk' => timebank_config('wirechat.attachments.storage_disk', 'public'),
'disk_visibility' => timebank_config('wirechat.attachments.disk_visibility', 'public'),
'max_uploads' => timebank_config('wirechat.attachments.max_uploads', 10),
// Media Upload Settings
'media_mimes' => timebank_config('wirechat.attachments.media_mimes', ['png', 'jpg', 'jpeg', 'gif']),
'media_max_upload_size' => timebank_config('wirechat.attachments.media_max_upload_size', 12288),
// File Upload Settings
'file_mimes' => timebank_config('wirechat.attachments.file_mimes', ['zip', 'rar', 'txt', 'pdf']),
'file_max_upload_size' => timebank_config('wirechat.attachments.file_max_upload_size', 12288),
],
];