123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- # Copyright (C) 2012-2024 Zammad Foundation, https://zammad-foundation.org/
- class CtiGenericApi < ActiveRecord::Migration[5.1]
- def up
- # return if it's a new setup
- return if !Setting.exists?(name: 'system_init_done')
- Setting.create_if_not_exists(
- title: 'cti integration',
- name: 'cti_integration',
- area: 'Integration::Switch',
- description: 'Defines if generic CTI is enabled or not.',
- options: {
- form: [
- {
- display: '',
- null: true,
- name: 'cti_integration',
- tag: 'boolean',
- options: {
- true => 'yes',
- false => 'no',
- },
- },
- ],
- },
- state: false,
- preferences: {
- prio: 1,
- trigger: ['menu:render', 'cti:reload'],
- authentication: true,
- permission: ['admin.integration'],
- },
- frontend: true
- )
- Setting.create_if_not_exists(
- title: 'cti config',
- name: 'cti_config',
- area: 'Integration::Cti',
- description: 'Defines the cti config.',
- options: {},
- state: { 'outbound' => { 'routing_table' => [], 'default_caller_id' => '' }, 'inbound' => { 'block_caller_ids' => [] } },
- preferences: {
- prio: 2,
- permission: ['admin.integration'],
- },
- frontend: false,
- )
- Setting.create_if_not_exists(
- title: 'CTI Token',
- name: 'cti_token',
- area: 'Integration::Cti',
- description: 'Token for cti.',
- options: {
- form: [
- {
- display: '',
- null: false,
- name: 'cti_token',
- tag: 'input',
- },
- ],
- },
- state: SecureRandom.urlsafe_base64(20),
- preferences: {
- permission: ['admin.integration'],
- },
- frontend: false
- )
- add_column :cti_logs, :queue, :string, limit: 250, null: true if !column_exists?(:cti_logs, :queue)
- add_column :cti_logs, :initialized_at, :string, limit: 250, null: true if !column_exists?(:cti_logs, :initialized_at)
- add_column :cti_logs, :duration_waiting_time, :integer, null: true if !column_exists?(:cti_logs, :duration_waiting_time)
- add_column :cti_logs, :duration_talking_time, :integer, null: true if !column_exists?(:cti_logs, :duration_talking_time)
- # fixes issue #2183 - Mysql2::Error: Invalid default value for 'start_at'
- if ActiveRecord::Base.connection_db_config.configuration_hash[:adapter] == 'mysql2'
- # disable the MySQL strict_mode for the current connection
- execute("SET sql_mode = ''")
- change_column_default :cti_logs, :start, '0000-00-00 00:00:00'
- change_column_default :cti_logs, :end, '0000-00-00 00:00:00'
- end
- rename_column :cti_logs, :start, :start_at
- rename_column :cti_logs, :end, :end_at
- end
- end
|