diff --git a/data/conf/samples/docker/cgrates.json b/data/conf/samples/docker/cgrates.json index 303288ab7..b2a8a7336 100644 --- a/data/conf/samples/docker/cgrates.json +++ b/data/conf/samples/docker/cgrates.json @@ -10,22 +10,33 @@ "listen": { - "rpc_json": "0.0.0.0:2012", // RPC JSON listening address - "rpc_gob": "0.0.0.0:2013", // RPC GOB listening address - "http": "0.0.0.0:2080", // HTTP listening address - "rpc_json_tls" : "0.0.0.0:2022", // RPC JSON TLS listening address - "rpc_gob_tls": "0.0.0.0:2023", // RPC GOB TLS listening address - "http_tls": "0.0.0.0:2280", // HTTP TLS listening address + "rpc_json": "*env:DOCKER_IP:2012", // RPC JSON listening address + "rpc_gob": "*env:DOCKER_IP:2013", // RPC GOB listening address + "http": "*env:DOCKER_IP:2080", // HTTP listening address + "rpc_json_tls" : "*env:DOCKER_IP:2022", // RPC JSON TLS listening address + "rpc_gob_tls": "*env:DOCKER_IP:2023", // RPC GOB TLS listening address + "http_tls": "*env:DOCKER_IP:2280", // HTTP TLS listening address +}, + +"rpc_conns": { + "conn1": { + "strategy": "*first", + "conns": [{"address": "*env:DOCKER_IP:2012", "transport":"*json"}], + }, }, -"data_db": { - "db_type": "*internal", +"data_db": { // database used to store runtime data (eg: accounts, cdr stats) + "db_type": "*redis", // data_db type: + "db_host": "redis", // data_db host address + "db_port": 6379, // data_db port to reach the database + "db_name": "10", // data_db database name to connect to }, "stor_db": { - "db_type": "*internal", + "db_host": "mariadb", // the host to connect to + "db_password": "CGRateS.org", }, @@ -89,7 +100,7 @@ "sessions": { "enabled": true, - "listen_bijson": "0.0.0.0:2014", + "listen_bijson": "*env:DOCKER_IP:2014", "suppliers_conns": ["*internal"], "resources_conns": ["*internal"], "attributes_conns": ["*internal"], diff --git a/data/docker/scratch/cgr-console.yaml b/data/docker/scratch/cgr-console.yaml index 2f4538fa4..474ee1ece 100644 --- a/data/docker/scratch/cgr-console.yaml +++ b/data/docker/scratch/cgr-console.yaml @@ -4,10 +4,12 @@ services: image: dkr.cgrates.org/nightly/cgr-console container_name: cgr-console command: /cgr-console -server=cgr-engine:2012 - # stdin_open: true + stdin_open: true tty: true networks: default: external: - name: cgrates-net \ No newline at end of file + name: cgrates-net + +# sudo docker-compose -f cgr-console.yaml run --rm cgr-console diff --git a/data/docker/scratch/cgr-engine.yaml b/data/docker/scratch/cgr-engine.yaml index 87fbbef22..1abad3934 100644 --- a/data/docker/scratch/cgr-engine.yaml +++ b/data/docker/scratch/cgr-engine.yaml @@ -3,13 +3,49 @@ services: cgr-engine: image: dkr.cgrates.org/nightly/cgr-engine container_name: cgr-engine + depends_on: + - redis + - mariadb + restart: always ports: - 2012:2012 - 2080:2080 volumes: - ../../conf/samples/docker/:/etc/cgrates/:ro + - ../../tariffplans/tutorial/:/data/:ro + environment: + - DOCKER_IP=0.0.0.0 command: /cgr-engine --logger=*stdout -httprof_path=/pprof + + redis: + image: redis + command: ["redis-server", "--appendonly", "yes"] + restart: always + hostname: redis + volumes: + - /tmp/redis_data:/data:rw + ports: + - 6379:6379 + + mariadb: + image: mariadb + restart: always + environment: + MYSQL_ROOT_PASSWORD: CGRateS.org + MYSQL_DATABASE: cgrates + MYSQL_USER: cgrates + MYSQL_PASSWORD: CGRateS.org + ports: + - 3306:3306 + volumes: + - /tmp/mysql_data/:/var/lib/mysql/:rw + - ../../storage/docker_mysql/scripts/:/scripts + - ../../storage/docker_mysql/:/docker-entrypoint-initdb.d/ + + networks: default: external: - name: cgrates-net \ No newline at end of file + name: cgrates-net + +# sudo docker-compose -f cgr-engine.yaml up diff --git a/data/docker/scratch/cgr-loader.yaml b/data/docker/scratch/cgr-loader.yaml new file mode 100644 index 000000000..22de72450 --- /dev/null +++ b/data/docker/scratch/cgr-loader.yaml @@ -0,0 +1,17 @@ +version: "3.7" +services: + cgr-loader: + image: dkr.cgrates.org/nightly/cgr-loader + container_name: cgr-loader + volumes: + - ../../conf/samples/docker/:/etc/cgrates/:ro + - ../../tariffplans/tutorial/:/data/:ro + environment: + - DOCKER_IP=cgr-engine + command: /cgr-loader -config_path=/etc/cgrates/ -path=/data/ -caches_address="conn1" -scheduler_address="conn1" -verbose +networks: + default: + external: + name: cgrates-net + +# sudo docker-compose -f cgr-loader.yaml up diff --git a/data/docker/scratch/cgr-migrator.yaml b/data/docker/scratch/cgr-migrator.yaml new file mode 100644 index 000000000..cb7395ec5 --- /dev/null +++ b/data/docker/scratch/cgr-migrator.yaml @@ -0,0 +1,16 @@ +version: "3.7" +services: + cgr-migrator: + image: dkr.cgrates.org/nightly/cgr-migrator + container_name: cgr-migrator + volumes: + - ../../conf/samples/docker/:/etc/cgrates/:ro + environment: + - DOCKER_IP=cgr-engine + command: /cgr-migrator -config_path=/etc/cgrates/ --exec=*set_versions +networks: + default: + external: + name: cgrates-net + +# sudo docker-compose -f cgr-migrator.yaml up diff --git a/data/docker/scratch/cgr-tester.yaml b/data/docker/scratch/cgr-tester.yaml new file mode 100644 index 000000000..710d61d62 --- /dev/null +++ b/data/docker/scratch/cgr-tester.yaml @@ -0,0 +1,16 @@ +version: "3.7" +services: + cgr-tester: + image: dkr.cgrates.org/nightly/cgr-tester + container_name: cgr-tester + volumes: + - ../../conf/samples/docker/:/etc/cgrates/:ro + environment: + - DOCKER_IP=cgr-engine + command: /cgr-tester -config_path=/etc/cgrates/ +networks: + default: + external: + name: cgrates-net + +# sudo docker-compose -f cgr-tester.yaml up diff --git a/data/storage/docker_mysql/docker-entrypoint.sh b/data/storage/docker_mysql/docker-entrypoint.sh new file mode 100755 index 000000000..8a88bf2bb --- /dev/null +++ b/data/storage/docker_mysql/docker-entrypoint.sh @@ -0,0 +1,10 @@ +#! /usr/bin/env sh + +host="localhost" + +DIR="/scripts" + +mysql -u root -pCGRateS.org -h $host < "$DIR"/create_db_with_users.sql +mysql -u root -pCGRateS.org -h $host -D cgrates < "$DIR"/create_cdrs_tables.sql +mysql -u root -pCGRateS.org -h $host -D cgrates < "$DIR"/create_tariffplan_tables.sql + diff --git a/data/storage/docker_mysql/scripts/create_cdrs_tables.sql b/data/storage/docker_mysql/scripts/create_cdrs_tables.sql new file mode 100644 index 000000000..6c2a917e6 --- /dev/null +++ b/data/storage/docker_mysql/scripts/create_cdrs_tables.sql @@ -0,0 +1,52 @@ +-- +-- Table structure for table `cdrs` +-- + +DROP TABLE IF EXISTS cdrs; +CREATE TABLE cdrs ( + id int(11) NOT NULL AUTO_INCREMENT, + cgrid varchar(40) NOT NULL, + run_id varchar(64) NOT NULL, + origin_host varchar(64) NOT NULL, + source varchar(64) NOT NULL, + origin_id varchar(128) NOT NULL, + tor varchar(16) NOT NULL, + request_type varchar(24) NOT NULL, + tenant varchar(64) NOT NULL, + category varchar(64) NOT NULL, + account varchar(128) NOT NULL, + subject varchar(128) NOT NULL, + destination varchar(128) NOT NULL, + setup_time datetime NOT NULL, + answer_time datetime NOT NULL, + `usage` BIGINT NOT NULL, + extra_fields text NOT NULL, + cost_source varchar(64) NOT NULL, + cost DECIMAL(20,4) NOT NULL, + cost_details MEDIUMTEXT, + extra_info text, + created_at TIMESTAMP NULL, + updated_at TIMESTAMP NULL, + deleted_at TIMESTAMP NULL, + PRIMARY KEY (id), + UNIQUE KEY cdrrun (cgrid, run_id) +); + +DROP TABLE IF EXISTS session_costs; +CREATE TABLE session_costs ( + id int(11) NOT NULL AUTO_INCREMENT, + cgrid varchar(40) NOT NULL, + run_id varchar(64) NOT NULL, + origin_host varchar(64) NOT NULL, + origin_id varchar(128) NOT NULL, + cost_source varchar(64) NOT NULL, + `usage` BIGINT NOT NULL, + cost_details MEDIUMTEXT, + created_at TIMESTAMP NULL, + deleted_at TIMESTAMP NULL, + PRIMARY KEY (`id`), + UNIQUE KEY costid (cgrid, run_id), + KEY origin_idx (origin_host, origin_id), + KEY run_origin_idx (run_id, origin_id), + KEY deleted_at_idx (deleted_at) +); diff --git a/data/storage/docker_mysql/scripts/create_db_with_users.sql b/data/storage/docker_mysql/scripts/create_db_with_users.sql new file mode 100644 index 000000000..31746b604 --- /dev/null +++ b/data/storage/docker_mysql/scripts/create_db_with_users.sql @@ -0,0 +1,9 @@ + +-- +-- Sample db and users creation. Replace here with your own details +-- + +DROP DATABASE IF EXISTS cgrates; +CREATE DATABASE cgrates; + +GRANT ALL on cgrates.* TO 'cgrates'@'localhost' IDENTIFIED BY 'CGRateS.org'; diff --git a/data/storage/docker_mysql/scripts/create_tariffplan_tables.sql b/data/storage/docker_mysql/scripts/create_tariffplan_tables.sql new file mode 100644 index 000000000..a203d7090 --- /dev/null +++ b/data/storage/docker_mysql/scripts/create_tariffplan_tables.sql @@ -0,0 +1,482 @@ +-- +-- Table structure for table `tp_timings` +-- +DROP TABLE IF EXISTS `tp_timings`; +CREATE TABLE `tp_timings` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `tpid` varchar(64) NOT NULL, + `tag` varchar(64) NOT NULL, + `years` varchar(255) NOT NULL, + `months` varchar(255) NOT NULL, + `month_days` varchar(255) NOT NULL, + `week_days` varchar(255) NOT NULL, + `time` varchar(32) NOT NULL, + `created_at` TIMESTAMP, + PRIMARY KEY (`id`), + KEY `tpid` (`tpid`), + KEY `tpid_tmid` (`tpid`,`tag`), + UNIQUE KEY `tpid_tag` (`tpid`,`tag`) +); + +-- +-- Table structure for table `tp_destinations` +-- + +DROP TABLE IF EXISTS `tp_destinations`; +CREATE TABLE `tp_destinations` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `tpid` varchar(64) NOT NULL, + `tag` varchar(64) NOT NULL, + `prefix` varchar(24) NOT NULL, + `created_at` TIMESTAMP, + PRIMARY KEY (`id`), + KEY `tpid` (`tpid`), + KEY `tpid_dstid` (`tpid`,`tag`), + UNIQUE KEY `tpid_dest_prefix` (`tpid`,`tag`,`prefix`) +); + +-- +-- Table structure for table `tp_rates` +-- + +DROP TABLE IF EXISTS `tp_rates`; +CREATE TABLE `tp_rates` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `tpid` varchar(64) NOT NULL, + `tag` varchar(64) NOT NULL, + `connect_fee` decimal(7,4) NOT NULL, + `rate` decimal(10,4) NOT NULL, + `rate_unit` varchar(16) NOT NULL, + `rate_increment` varchar(16) NOT NULL, + `group_interval_start` varchar(16) NOT NULL, + `created_at` TIMESTAMP, + PRIMARY KEY (`id`), + UNIQUE KEY `unique_tprate` (`tpid`,`tag`,`group_interval_start`), + KEY `tpid` (`tpid`), + KEY `tpid_rtid` (`tpid`,`tag`) +); + +-- +-- Table structure for table `destination_rates` +-- + +DROP TABLE IF EXISTS `tp_destination_rates`; +CREATE TABLE `tp_destination_rates` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `tpid` varchar(64) NOT NULL, + `tag` varchar(64) NOT NULL, + `destinations_tag` varchar(64) NOT NULL, + `rates_tag` varchar(64) NOT NULL, + `rounding_method` varchar(255) NOT NULL, + `rounding_decimals` tinyint(4) NOT NULL, + `max_cost` decimal(7,4) NOT NULL, + `max_cost_strategy` varchar(16) NOT NULL, + `created_at` TIMESTAMP, + PRIMARY KEY (`id`), + KEY `tpid` (`tpid`), + KEY `tpid_drid` (`tpid`,`tag`), + UNIQUE KEY `tpid_drid_dstid` (`tpid`,`tag`,`destinations_tag`) +); + +-- +-- Table structure for table `tp_rating_plans` +-- + +DROP TABLE IF EXISTS `tp_rating_plans`; +CREATE TABLE `tp_rating_plans` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `tpid` varchar(64) NOT NULL, + `tag` varchar(64) NOT NULL, + `destrates_tag` varchar(64) NOT NULL, + `timing_tag` varchar(64) NOT NULL, + `weight` DECIMAL(8,2) NOT NULL, + `created_at` TIMESTAMP, + PRIMARY KEY (`id`), + KEY `tpid` (`tpid`), + KEY `tpid_rpl` (`tpid`,`tag`), + UNIQUE KEY `tpid_rplid_destrates_timings_weight` (`tpid`,`tag`,`destrates_tag`,`timing_tag`) +); + +-- +-- Table structure for table `tp_rate_profiles` +-- + +DROP TABLE IF EXISTS `tp_rating_profiles`; +CREATE TABLE `tp_rating_profiles` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `tpid` varchar(64) NOT NULL, + `loadid` varchar(64) NOT NULL, + `tenant` varchar(64) NOT NULL, + `category` varchar(32) NOT NULL, + `subject` varchar(64) NOT NULL, + `activation_time` varchar(26) NOT NULL, + `rating_plan_tag` varchar(64) NOT NULL, + `fallback_subjects` varchar(64), + `created_at` TIMESTAMP, + PRIMARY KEY (`id`), + KEY `tpid` (`tpid`), + KEY `tpid_loadid` (`tpid`, `loadid`), + UNIQUE KEY `tpid_loadid_tenant_category_subj_atime` (`tpid`,`loadid`, `tenant`,`category`,`subject`,`activation_time`) +); + +-- +-- Table structure for table `tp_shared_groups` +-- + +DROP TABLE IF EXISTS `tp_shared_groups`; +CREATE TABLE `tp_shared_groups` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `tpid` varchar(64) NOT NULL, + `tag` varchar(64) NOT NULL, + `account` varchar(64) NOT NULL, + `strategy` varchar(24) NOT NULL, + `rating_subject` varchar(24) NOT NULL, + `created_at` TIMESTAMP, + PRIMARY KEY (`id`), + KEY `tpid` (`tpid`), + UNIQUE KEY `unique_shared_group` (`tpid`,`tag`,`account`,`strategy`,`rating_subject`) +); + +-- +-- Table structure for table `tp_actions` +-- + +DROP TABLE IF EXISTS `tp_actions`; +CREATE TABLE `tp_actions` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `tpid` varchar(64) NOT NULL, + `tag` varchar(64) NOT NULL, + `action` varchar(24) NOT NULL, + `extra_parameters` varchar(256) NOT NULL, + `filter` varchar(256) NOT NULL, + `balance_tag` varchar(64) NOT NULL, + `balance_type` varchar(24) NOT NULL, + `categories` varchar(32) NOT NULL, + `destination_tags` varchar(64) NOT NULL, + `rating_subject` varchar(64) NOT NULL, + `shared_groups` varchar(64) NOT NULL, + `expiry_time` varchar(26) NOT NULL, + `timing_tags` varchar(128) NOT NULL, + `units` varchar(256) NOT NULL, + `balance_weight` varchar(10) NOT NULL, + `balance_blocker` varchar(5) NOT NULL, + `balance_disabled` varchar(24) NOT NULL, + `weight` DECIMAL(8,2) NOT NULL, + `created_at` TIMESTAMP, + PRIMARY KEY (`id`), + KEY `tpid` (`tpid`), + UNIQUE KEY `unique_action` (`tpid`,`tag`,`action`,`balance_tag`,`balance_type`,`expiry_time`,`timing_tags`,`destination_tags`,`shared_groups`,`balance_weight`,`weight`) +); + +-- +-- Table structure for table `tp_action_timings` +-- + +DROP TABLE IF EXISTS `tp_action_plans`; +CREATE TABLE `tp_action_plans` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `tpid` varchar(64) NOT NULL, + `tag` varchar(64) NOT NULL, + `actions_tag` varchar(64) NOT NULL, + `timing_tag` varchar(64) NOT NULL, + `weight` DECIMAL(8,2) NOT NULL, + `created_at` TIMESTAMP, + PRIMARY KEY (`id`), + KEY `tpid` (`tpid`), + UNIQUE KEY `unique_action_schedule` (`tpid`,`tag`,`actions_tag`,`timing_tag`) +); + +-- +-- Table structure for table `tp_action_triggers` +-- + +DROP TABLE IF EXISTS `tp_action_triggers`; +CREATE TABLE `tp_action_triggers` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `tpid` varchar(64) NOT NULL, + `tag` varchar(64) NOT NULL, + `unique_id` varchar(64) NOT NULL, + `threshold_type` char(64) NOT NULL, + `threshold_value` DECIMAL(20,4) NOT NULL, + `recurrent` BOOLEAN NOT NULL, + `min_sleep` varchar(16) NOT NULL, + `expiry_time` varchar(26) NOT NULL, + `activation_time` varchar(26) NOT NULL, + `balance_tag` varchar(64) NOT NULL, + `balance_type` varchar(24) NOT NULL, + `balance_categories` varchar(32) NOT NULL, + `balance_destination_tags` varchar(64) NOT NULL, + `balance_rating_subject` varchar(64) NOT NULL, + `balance_shared_groups` varchar(64) NOT NULL, + `balance_expiry_time` varchar(26) NOT NULL, + `balance_timing_tags` varchar(128) NOT NULL, + `balance_weight` varchar(10) NOT NULL, + `balance_blocker` varchar(5) NOT NULL, + `balance_disabled` varchar(5) NOT NULL, + `actions_tag` varchar(64) NOT NULL, + `weight` DECIMAL(8,2) NOT NULL, + `created_at` TIMESTAMP, + PRIMARY KEY (`id`), + KEY `tpid` (`tpid`), + UNIQUE KEY `unique_trigger_definition` (`tpid`,`tag`,`balance_tag`,`balance_type`,`threshold_type`,`threshold_value`,`balance_destination_tags`,`actions_tag`) +); + +-- +-- Table structure for table `tp_account_actions` +-- + +DROP TABLE IF EXISTS `tp_account_actions`; +CREATE TABLE `tp_account_actions` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `tpid` varchar(64) NOT NULL, + `loadid` varchar(64) NOT NULL, + `tenant` varchar(64) NOT NULL, + `account` varchar(64) NOT NULL, + `action_plan_tag` varchar(64), + `action_triggers_tag` varchar(64), + `allow_negative` BOOLEAN NOT NULL, + `disabled` BOOLEAN NOT NULL, + `created_at` TIMESTAMP, + PRIMARY KEY (`id`), + KEY `tpid` (`tpid`), + UNIQUE KEY `unique_tp_account` (`tpid`,`loadid`,`tenant`,`account`) +); + +-- +-- Table structure for table `tp_resources` +-- + +DROP TABLE IF EXISTS tp_resources; +CREATE TABLE tp_resources ( + `pk` int(11) NOT NULL AUTO_INCREMENT, + `tpid` varchar(64) NOT NULL, + `tenant` varchar(64) NOT NULL, + `id` varchar(64) NOT NULL, + `filter_ids` varchar(64) NOT NULL, + `activation_interval` varchar(64) NOT NULL, + `usage_ttl` varchar(32) NOT NULL, + `limit` varchar(64) NOT NULL, + `allocation_message` varchar(64) NOT NULL, + `blocker` BOOLEAN NOT NULL, + `stored` BOOLEAN NOT NULL, + `weight` decimal(8,2) NOT NULL, + `threshold_ids` varchar(64) NOT NULL, + `created_at` TIMESTAMP, + PRIMARY KEY (`pk`), + KEY `tpid` (`tpid`), + UNIQUE KEY `unique_tp_resource` (`tpid`,`tenant`, `id`,`filter_ids` ) +); + +-- +-- Table structure for table `tp_stats` +-- + +DROP TABLE IF EXISTS tp_stats; +CREATE TABLE tp_stats ( + `pk` int(11) NOT NULL AUTO_INCREMENT, + `tpid` varchar(64) NOT NULL, + `tenant` varchar(64) NOT NULL, + `id` varchar(64) NOT NULL, + `filter_ids` varchar(64) NOT NULL, + `activation_interval` varchar(64) NOT NULL, + `queue_length` int(11) NOT NULL, + `ttl` varchar(32) NOT NULL, + `min_items` int(11) NOT NULL, + `metric_ids` varchar(128) NOT NULL, + `metric_filter_ids` varchar(64) NOT NULL, + `stored` BOOLEAN NOT NULL, + `blocker` BOOLEAN NOT NULL, + `weight` decimal(8,2) NOT NULL, + `threshold_ids` varchar(64) NOT NULL, + `created_at` TIMESTAMP, + PRIMARY KEY (`pk`), + KEY `tpid` (`tpid`), + UNIQUE KEY `unique_tp_stats` (`tpid`, `tenant`, `id`, `filter_ids`,`metric_ids`) +); + +-- +-- Table structure for table `tp_threshold_cfgs` +-- + +DROP TABLE IF EXISTS tp_thresholds; +CREATE TABLE tp_thresholds ( + `pk` int(11) NOT NULL AUTO_INCREMENT, + `tpid` varchar(64) NOT NULL, + `tenant` varchar(64) NOT NULL, + `id` varchar(64) NOT NULL, + `filter_ids` varchar(64) NOT NULL, + `activation_interval` varchar(64) NOT NULL, + `max_hits` int(11) NOT NULL, + `min_hits` int(11) NOT NULL, + `min_sleep` varchar(16) NOT NULL, + `blocker` BOOLEAN NOT NULL, + `weight` decimal(8,2) NOT NULL, + `action_ids` varchar(64) NOT NULL, + `async` BOOLEAN NOT NULL, + `created_at` TIMESTAMP, + PRIMARY KEY (`pk`), + KEY `tpid` (`tpid`), + UNIQUE KEY `unique_tp_thresholds` (`tpid`,`tenant`, `id`,`filter_ids`,`action_ids`) +); + +-- +-- Table structure for table `tp_filter` +-- + +DROP TABLE IF EXISTS tp_filters; +CREATE TABLE tp_filters ( + `pk` int(11) NOT NULL AUTO_INCREMENT, + `tpid` varchar(64) NOT NULL, + `tenant` varchar(64) NOT NULL, + `id` varchar(64) NOT NULL, + `type` varchar(16) NOT NULL, + `element` varchar(64) NOT NULL, + `values` varchar(256) NOT NULL, + `activation_interval` varchar(64) NOT NULL, + `created_at` TIMESTAMP, + PRIMARY KEY (`pk`), + KEY `tpid` (`tpid`), + UNIQUE KEY `unique_tp_filters` (`tpid`,`tenant`, `id`, `type`, `element`) +); + +-- +-- Table structure for table `tp_suppliers` +-- + + +DROP TABLE IF EXISTS tp_suppliers; +CREATE TABLE tp_suppliers ( + `pk` int(11) NOT NULL AUTO_INCREMENT, + `tpid` varchar(64) NOT NULL, + `tenant` varchar(64) NOT NULL, + `id` varchar(64) NOT NULL, + `filter_ids` varchar(64) NOT NULL, + `activation_interval` varchar(64) NOT NULL, + `sorting` varchar(32) NOT NULL, + `sorting_parameters` varchar(64) NOT NULL, + `supplier_id` varchar(32) NOT NULL, + `supplier_filter_ids` varchar(64) NOT NULL, + `supplier_account_ids` varchar(64) NOT NULL, + `supplier_ratingplan_ids` varchar(64) NOT NULL, + `supplier_resource_ids` varchar(64) NOT NULL, + `supplier_stat_ids` varchar(64) NOT NULL, + `supplier_weight` decimal(8,2) NOT NULL, + `supplier_blocker` BOOLEAN NOT NULL, + `supplier_parameters` varchar(64) NOT NULL, + `weight` decimal(8,2) NOT NULL, + `created_at` TIMESTAMP, + PRIMARY KEY (`pk`), + KEY `tpid` (`tpid`), + UNIQUE KEY `unique_tp_suppliers` (`tpid`,`tenant`, + `id`,`filter_ids`,`supplier_id`,`supplier_filter_ids`,`supplier_account_ids`, + `supplier_ratingplan_ids`,`supplier_resource_ids`,`supplier_stat_ids` ) +); + +-- +-- Table structure for table `tp_attributes` +-- + +DROP TABLE IF EXISTS tp_attributes; +CREATE TABLE tp_attributes ( + `pk` int(11) NOT NULL AUTO_INCREMENT, + `tpid` varchar(64) NOT NULL, + `tenant` varchar(64) NOT NULL, + `id` varchar(64) NOT NULL, + `contexts` varchar(64) NOT NULL, + `filter_ids` varchar(64) NOT NULL, + `activation_interval` varchar(64) NOT NULL, + `attribute_filter_ids` varchar(64) NOT NULL, + `path` varchar(64) NOT NULL, + `type` varchar(64) NOT NULL, + `value` varchar(64) NOT NULL, + `blocker` BOOLEAN NOT NULL, + `weight` decimal(8,2) NOT NULL, + `created_at` TIMESTAMP, + PRIMARY KEY (`pk`), + KEY `tpid` (`tpid`), + UNIQUE KEY `unique_tp_attributes` (`tpid`,`tenant`, + `id`,`filter_ids`,`path`,`value` ) +); + +-- +-- Table structure for table `tp_chargers` +-- + +DROP TABLE IF EXISTS tp_chargers; +CREATE TABLE tp_chargers ( + `pk` int(11) NOT NULL AUTO_INCREMENT, + `tpid` varchar(64) NOT NULL, + `tenant` varchar(64) NOT NULL, + `id` varchar(64) NOT NULL, + `filter_ids` varchar(64) NOT NULL, + `activation_interval` varchar(64) NOT NULL, + `run_id` varchar(64) NOT NULL, + `attribute_ids` varchar(64) NOT NULL, + `weight` decimal(8,2) NOT NULL, + `created_at` TIMESTAMP, + PRIMARY KEY (`pk`), + KEY `tpid` (`tpid`), + UNIQUE KEY `unique_tp_chargers` (`tpid`,`tenant`, + `id`,`filter_ids`,`run_id`,`attribute_ids`) +); + +-- +-- Table structure for table `tp_dispatchers` +-- + +DROP TABLE IF EXISTS tp_dispatcher_profiles; +CREATE TABLE tp_dispatcher_profiles ( + `pk` int(11) NOT NULL AUTO_INCREMENT, + `tpid` varchar(64) NOT NULL, + `tenant` varchar(64) NOT NULL, + `id` varchar(64) NOT NULL, + `subsystems` varchar(64) NOT NULL, + `filter_ids` varchar(64) NOT NULL, + `activation_interval` varchar(64) NOT NULL, + `strategy` varchar(64) NOT NULL, + `strategy_parameters` varchar(64) NOT NULL, + `conn_id` varchar(64) NOT NULL, + `conn_filter_ids` varchar(64) NOT NULL, + `conn_weight` decimal(8,2) NOT NULL, + `conn_blocker` BOOLEAN NOT NULL, + `conn_parameters` varchar(64) NOT NULL, + `weight` decimal(8,2) NOT NULL, + `created_at` TIMESTAMP, + PRIMARY KEY (`pk`), + KEY `tpid` (`tpid`), + UNIQUE KEY `unique_tp_dispatcher_profiles` (`tpid`,`tenant`, + `id`,`filter_ids`,`strategy`,`conn_id`,`conn_filter_ids`) +); + +-- +-- Table structure for table `tp_dispatchers` +-- + +DROP TABLE IF EXISTS tp_dispatcher_hosts; +CREATE TABLE tp_dispatcher_hosts ( + `pk` int(11) NOT NULL AUTO_INCREMENT, + `tpid` varchar(64) NOT NULL, + `tenant` varchar(64) NOT NULL, + `id` varchar(64) NOT NULL, + `address` varchar(64) NOT NULL, + `transport` varchar(64) NOT NULL, + `tls` BOOLEAN NOT NULL, + `created_at` TIMESTAMP, + PRIMARY KEY (`pk`), + KEY `tpid` (`tpid`), + UNIQUE KEY `unique_tp_dispatchers_hosts` (`tpid`,`tenant`, + `id`,`address`) +); + +-- +-- Table structure for table `versions` +-- + +DROP TABLE IF EXISTS versions; +CREATE TABLE versions ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `item` varchar(64) NOT NULL, + `version` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `id_item` (`id`,`item`) +);