[ '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' => 'Conference', 'space' => 'Room', ], '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', ], 'schedule_timezones' => [ 'UTC', 'America/New_York', 'America/Chicago', 'America/Los_Angeles', 'Europe/London', 'Africa/Accra', 'Africa/Lagos', ], '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'), 'invoice' => env('MEET_API_KEY_INVOICE'), ], 'webhook_events' => [ 'meeting.scheduled', 'meeting.started', 'meeting.ended', 'meeting.cancelled', 'recording.ready', ], 'events_app_url' => env('LADILL_EVENTS_APP_URL', 'https://events.ladill.com'), 'events_api_url' => env('LADILL_EVENTS_API_URL', 'https://events.ladill.com/api/service/v1'), 'events_api_key' => env('MEET_API_KEY_EVENTS'), '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', ], ];