Files
ladill-meet/config/meet.php
T
isaaccladandCursor 5c1affcca5
Deploy Ladill Meet / deploy (push) Successful in 46s
Bill all meet sessions per participant instead of per hour.
Meetings and webinars now share GHS 0.30 per peak participant, with usage UI and plan quotas updated to match.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-01 18:28:35 +00:00

207 lines
6.5 KiB
PHP

<?php
return [
'roles' => [
'owner' => 'Owner',
'admin' => 'Administrator',
'moderator' => 'Moderator',
'member' => 'Member',
'guest' => 'Guest',
],
'room_types' => [
'instant' => 'Instant meeting',
'scheduled' => 'Scheduled meeting',
'personal' => 'Personal room',
'recurring' => 'Recurring meeting',
'webinar' => 'Webinar',
'town_hall' => 'Town hall',
],
'room_statuses' => [
'scheduled' => 'Scheduled',
'live' => 'Live',
'ended' => 'Ended',
'cancelled' => 'Cancelled',
'recording_processing' => 'Recording processing',
],
'recording_statuses' => [
'recording' => 'Recording',
'processing' => 'Processing',
'ready' => 'Ready',
'failed' => 'Failed',
],
'recurrence_rules' => [
'daily' => 'Daily',
'weekly' => 'Weekly',
'monthly' => 'Monthly',
],
'participant_roles' => [
'host' => 'Host',
'co_host' => 'Co-host',
'panelist' => 'Panelist',
'participant' => 'Participant',
'attendee' => 'Attendee',
'guest' => 'Guest',
],
'session_statuses' => [
'live' => 'Live',
'ended' => 'Ended',
],
'default_settings' => [
'waiting_room' => true,
'join_before_host' => false,
'mute_on_join' => true,
'video_off_on_join' => false,
'allow_screen_share' => true,
'allow_chat' => true,
'allow_reactions' => true,
'lock_meeting' => false,
'auto_record' => false,
'live_captions' => false,
'auto_ai_summary' => true,
'lobby_mode' => false,
'webinar_auto_approve' => false,
'stage_mode' => true,
],
'breakouts' => [
'default_timer_minutes' => 15,
'max_rooms' => 20,
],
'files' => [
'disk' => env('MEET_FILES_DISK', 'local'),
'default_expiry_days' => (int) env('MEET_FILES_EXPIRY_DAYS', 30),
'drive_api_url' => env('LADILL_DRIVE_API_URL'),
'drive_api_key' => env('LADILL_DRIVE_API_KEY_MEET'),
],
'whiteboard_templates' => [
'blank' => 'Blank canvas',
'grid' => 'Grid',
'retrospective' => 'Retrospective',
],
'security_defaults' => [
'org_only' => false,
'authenticated_only' => false,
'allowed_domains' => [],
'recording_host_only' => true,
'guest_recording_disabled' => true,
'watermark_enabled' => false,
'session_idle_minutes' => 120,
],
'recordings' => [
'disk' => env('MEET_RECORDINGS_DISK', 'local'),
'max_mb' => (int) env('MEET_RECORDING_MAX_MB', 512),
],
'ai' => [
'enabled' => env('MEET_AI_ENABLED', true),
'auto_summarize' => env('MEET_AI_AUTO_SUMMARIZE', true),
'api_key' => env('MEET_AI_API_KEY', env('OPENAI_API_KEY')),
'model' => env('MEET_AI_MODEL', 'gpt-4o-mini'),
'platform_api_url' => env('IDENTITY_API_URL', 'https://ladill.com/api'),
'platform_api_key' => env('IDENTITY_API_KEY_MEET'),
],
'media' => [
'provider' => env('MEET_MEDIA_PROVIDER', 'livekit'),
'livekit' => [
'url' => env('LIVEKIT_URL', ''),
'api_key' => env('LIVEKIT_API_KEY', ''),
'api_secret' => env('LIVEKIT_API_SECRET', ''),
],
],
'report_types' => [
'summary' => 'Organization summary',
'meetings' => 'Meeting analytics',
'users' => 'Participant analytics',
'invitations' => 'Invitation & RSVP',
'branches' => 'Branch rollup',
],
'service_api_keys' => [
'care' => env('MEET_API_KEY_CARE'),
'crm' => env('MEET_API_KEY_CRM'),
'bookings' => env('MEET_API_KEY_BOOKINGS'),
'events' => env('MEET_API_KEY_EVENTS'),
'frontdesk' => env('MEET_API_KEY_FRONTDESK'),
'hr' => env('MEET_API_KEY_HR'),
'support' => env('MEET_API_KEY_SUPPORT'),
],
'webhook_events' => [
'meeting.scheduled',
'meeting.started',
'meeting.ended',
'meeting.cancelled',
'recording.ready',
],
'calendar' => [
'google' => [
'client_id' => env('GOOGLE_CALENDAR_CLIENT_ID'),
'client_secret' => env('GOOGLE_CALENDAR_CLIENT_SECRET'),
'redirect' => env('GOOGLE_CALENDAR_REDIRECT_URI'),
],
'microsoft' => [
'client_id' => env('MICROSOFT_CALENDAR_CLIENT_ID'),
'client_secret' => env('MICROSOFT_CALENDAR_CLIENT_SECRET'),
'redirect' => env('MICROSOFT_CALENDAR_REDIRECT_URI'),
'tenant' => env('MICROSOFT_CALENDAR_TENANT', 'common'),
],
'mail' => [
'api_url' => env('LADILL_MAIL_API_URL', 'https://mail.ladill.com/api/service/v1'),
'api_key' => env('MAIL_API_KEY_MEET'),
],
],
'live_stream' => [
'platforms' => ['youtube', 'facebook', 'linkedin', 'custom'],
'layouts' => ['speaker', 'gallery', 'screen'],
],
'billing' => [
'price_per_participant_ghs' => (float) env('MEET_PRICE_PER_PARTICIPANT', env('MEET_PRICE_PER_HOUR', 0.30)),
'price_per_gb_month_ghs' => (float) env('MEET_PRICE_PER_GB_MONTH', 0.30),
'billing_period_days' => (int) env('MEET_BILLING_PERIOD_DAYS', 30),
'grace_period_days' => (int) env('MEET_GRACE_PERIOD_DAYS', 15),
],
'audit_actions' => [
'organization.created' => 'Organization created',
'organization.updated' => 'Organization updated',
'organization.security_updated' => 'Security policy updated',
'branch.created' => 'Branch created',
'branch.updated' => 'Branch updated',
'member.created' => 'Member added',
'member.deleted' => 'Member removed',
'room.created' => 'Meeting created',
'room.updated' => 'Meeting updated',
'room.cancelled' => 'Meeting cancelled',
'session.started' => 'Meeting started',
'session.ended' => 'Meeting ended',
'participant.joined' => 'Participant joined',
'participant.left' => 'Participant left',
'participant.removed' => 'Participant removed',
'meeting.locked' => 'Meeting locked',
'meeting.unlocked' => 'Meeting unlocked',
'recording.started' => 'Recording started',
'recording.stopped' => 'Recording stopped',
'recording.ready' => 'Recording ready',
'recording.deleted' => 'Recording deleted',
'notification.meeting_started' => 'Meeting started notification',
],
];