CloudPrime Database Structure Diagnostic
This script will inspect all tables used by the CloudPrime module and show their exact column structure.
Table: `tenants`
| Column Name | Type | Null | Key |
|---|
| id | int unsigned | NO | PRI |
| service_id | int unsigned | YES | MUL |
| subdomain | varchar(100) | NO | UNI |
| domain_uuid | varchar(36) | YES | |
| status | enum('active','suspended','terminated') | YES | MUL |
| created_at | timestamp | YES | |
| updated_at | timestamp | YES | |
Table: `cloudprime_services`
| Column Name | Type | Null | Key |
|---|
| id | int unsigned | NO | PRI |
| service_id | int unsigned | YES | MUL |
| tenant_id | int unsigned | YES | MUL |
| package_tier | varchar(50) | NO | |
| created_at | timestamp | NO | |
Table: `cloudprime_voice_preferences`
| Column Name | Type | Null | Key |
|---|
| id | int unsigned | NO | PRI |
| tenant_id | int unsigned | NO | MUL |
| voice_id | varchar(50) | NO | |
| voice_name | varchar(100) | YES | |
| language | varchar(10) | YES | |
| accent | varchar(50) | YES | |
| gender | enum('male','female','neutral') | YES | |
| age_range | varchar(20) | YES | |
| is_default | tinyint(1) | NO | |
| created_at | timestamp | NO | |
| updated_at | timestamp | NO | |
Table: `cloudprime_ai_settings`
| Column Name | Type | Null | Key |
|---|
| id | int unsigned | NO | PRI |
| tenant_id | int unsigned | NO | UNI |
| enabled | tinyint(1) | YES | MUL |
| language | varchar(10) | YES | |
| greeting | text | YES | |
| voice_id | varchar(100) | YES | |
| fallback_action | varchar(50) | YES | |
| model | varchar(50) | YES | |
| settings | json | YES | |
| created_at | timestamp | YES | |
| updated_at | timestamp | YES | |
| business_hours_days | json | YES | |
| greeting_after_hours | text | YES | |
| voice_tone | varchar(50) | YES | |
| confidence_threshold | decimal(3,2) | YES | |
| business_hours_start | time | YES | |
| business_hours_end | time | YES | |
Table: `cloudprime_routing_config`
| Column Name | Type | Null | Key |
|---|
| id | int unsigned | NO | PRI |
| tenant_id | int unsigned | NO | UNI |
| primary_route | enum('ai_first','ivr_first','smart') | NO | |
| ai_timeout | int | NO | |
| ivr_fallback | tinyint(1) | NO | |
| business_hours_only | tinyint(1) | NO | |
| after_hours_route | enum('ai','ivr','voicemail') | NO | |
| created_at | timestamp | NO | |
| updated_at | timestamp | NO | |
Table: `cloudprime_extensions`
| Column Name | Type | Null | Key |
|---|
| id | int unsigned | NO | PRI |
| tenant_id | int unsigned | NO | MUL |
| extension_uuid | varchar(36) | NO | MUL |
| extension_number | varchar(10) | NO | MUL |
| extension_password | varchar(100) | NO | |
| enabled | tinyint(1) | YES | |
| created_at | timestamp | YES | |
| updated_at | timestamp | YES | |
| password | varchar(50) | YES | |
Table: `cloudprime_inbound_routes`
| Column Name | Type | Null | Key |
|---|
| id | int unsigned | NO | PRI |
| tenant_id | int unsigned | NO | MUL |
| dialplan_uuid | varchar(36) | NO | MUL |
| did_number | varchar(20) | NO | MUL |
| destination_type | varchar(50) | YES | |
| enabled | tinyint(1) | YES | |
| created_at | timestamp | YES | |
| updated_at | timestamp | YES | |
Table: `cloudprime_credentials`
| Column Name | Type | Null | Key |
|---|
| id | int unsigned | NO | PRI |
| service_id | int unsigned | NO | UNI |
| credentials | text | NO | |
| created_at | timestamp | YES | |
| updated_at | timestamp | YES | |
Diagnostic Complete
Please copy and paste the entire output from this page and send it back for a final fix.