second commit
This commit is contained in:
@@ -0,0 +1,153 @@
|
||||
## Code Context
|
||||
|
||||
**Query:** reporting, CSAT survey, campaign, reporting event, reporting rollup, report metrics, inbox CSAT template, dashboard stats
|
||||
|
||||
### Entry Points
|
||||
|
||||
- **CreateReportingEventsRollup** (class) - db/migrate/20260211145813_create_reporting_events_rollup.rb:1
|
||||
- **AddIndexToReportingEvents** (class) - db/migrate/20230612103936_add_index_to_reporting_events.rb:1
|
||||
- **AddIndexToReportingEventsForResponseDistribution** (class) - db/migrate/20260130061021_add_index_to_reporting_events_for_response_distribution.rb:1
|
||||
|
||||
### Related Symbols
|
||||
|
||||
- db/migrate/20260211145813_create_reporting_events_rollup.rb: change:2, create_rollups_table:9, add_rollups_indexes:24
|
||||
- db/migrate/20230612103936_add_index_to_reporting_events.rb: change:4
|
||||
- db/migrate/20260130061021_add_index_to_reporting_events_for_response_distribution.rb: change:4
|
||||
|
||||
### Code
|
||||
|
||||
#### CreateReportingEventsRollup (db/migrate/20260211145813_create_reporting_events_rollup.rb:1)
|
||||
|
||||
```ruby
|
||||
class CreateReportingEventsRollup < ActiveRecord::Migration[7.1]
|
||||
def change
|
||||
create_rollups_table
|
||||
add_rollups_indexes
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def create_rollups_table
|
||||
create_table :reporting_events_rollups do |t|
|
||||
t.integer :account_id, null: false
|
||||
t.date :date, null: false
|
||||
t.string :dimension_type, null: false
|
||||
t.bigint :dimension_id, null: false
|
||||
t.string :metric, null: false
|
||||
t.bigint :count, default: 0, null: false
|
||||
t.float :sum_value, default: 0.0, null: false
|
||||
t.float :sum_value_business_hours, default: 0.0, null: false
|
||||
|
||||
t.timestamps
|
||||
end
|
||||
end
|
||||
|
||||
def add_rollups_indexes
|
||||
add_index :reporting_events_rollups,
|
||||
[:account_id, :date, :dimension_type, :dimension_id, :metric],
|
||||
unique: true, name: 'index_rollup_unique_key'
|
||||
|
||||
add_index :reporting_events_rollups,
|
||||
[:account_id, :metric, :date],
|
||||
name: 'index_rollup_timeseries'
|
||||
|
||||
add_index :reporting_events_rollups,
|
||||
[:account_id, :dimension_type, :date],
|
||||
name: 'index_rollup_summary'
|
||||
end
|
||||
end
|
||||
```
|
||||
|
||||
#### AddIndexToReportingEvents (db/migrate/20230612103936_add_index_to_reporting_events.rb:1)
|
||||
|
||||
```ruby
|
||||
class AddIndexToReportingEvents < ActiveRecord::Migration[7.0]
|
||||
disable_ddl_transaction!
|
||||
|
||||
def change
|
||||
add_index :reporting_events, [:account_id, :name, :created_at], name: 'reporting_events__account_id__name__created_at', algorithm: :concurrently
|
||||
end
|
||||
end
|
||||
```
|
||||
|
||||
#### AddIndexToReportingEventsForResponseDistribution (db/migrate/20260130061021_add_index_to_reporting_events_for_response_distribution.rb:1)
|
||||
|
||||
```ruby
|
||||
class AddIndexToReportingEventsForResponseDistribution < ActiveRecord::Migration[7.1]
|
||||
disable_ddl_transaction!
|
||||
|
||||
def change
|
||||
add_index :reporting_events,
|
||||
[:account_id, :name, :inbox_id, :created_at],
|
||||
name: 'index_reporting_events_for_response_distribution',
|
||||
algorithm: :concurrently,
|
||||
if_not_exists: true
|
||||
end
|
||||
end
|
||||
```
|
||||
|
||||
#### change (db/migrate/20260211145813_create_reporting_events_rollup.rb:2)
|
||||
|
||||
```ruby
|
||||
def change
|
||||
create_rollups_table
|
||||
add_rollups_indexes
|
||||
end
|
||||
```
|
||||
|
||||
#### create_rollups_table (db/migrate/20260211145813_create_reporting_events_rollup.rb:9)
|
||||
|
||||
```ruby
|
||||
def create_rollups_table
|
||||
create_table :reporting_events_rollups do |t|
|
||||
t.integer :account_id, null: false
|
||||
t.date :date, null: false
|
||||
t.string :dimension_type, null: false
|
||||
t.bigint :dimension_id, null: false
|
||||
t.string :metric, null: false
|
||||
t.bigint :count, default: 0, null: false
|
||||
t.float :sum_value, default: 0.0, null: false
|
||||
t.float :sum_value_business_hours, default: 0.0, null: false
|
||||
|
||||
t.timestamps
|
||||
end
|
||||
end
|
||||
```
|
||||
|
||||
#### add_rollups_indexes (db/migrate/20260211145813_create_reporting_events_rollup.rb:24)
|
||||
|
||||
```ruby
|
||||
def add_rollups_indexes
|
||||
add_index :reporting_events_rollups,
|
||||
[:account_id, :date, :dimension_type, :dimension_id, :metric],
|
||||
unique: true, name: 'index_rollup_unique_key'
|
||||
|
||||
add_index :reporting_events_rollups,
|
||||
[:account_id, :metric, :date],
|
||||
name: 'index_rollup_timeseries'
|
||||
|
||||
add_index :reporting_events_rollups,
|
||||
[:account_id, :dimension_type, :date],
|
||||
name: 'index_rollup_summary'
|
||||
end
|
||||
```
|
||||
|
||||
#### change (db/migrate/20230612103936_add_index_to_reporting_events.rb:4)
|
||||
|
||||
```ruby
|
||||
def change
|
||||
add_index :reporting_events, [:account_id, :name, :created_at], name: 'reporting_events__account_id__name__created_at', algorithm: :concurrently
|
||||
end
|
||||
```
|
||||
|
||||
#### change (db/migrate/20260130061021_add_index_to_reporting_events_for_response_distribution.rb:4)
|
||||
|
||||
```ruby
|
||||
def change
|
||||
add_index :reporting_events,
|
||||
[:account_id, :name, :inbox_id, :created_at],
|
||||
name: 'index_reporting_events_for_response_distribution',
|
||||
algorithm: :concurrently,
|
||||
if_not_exists: true
|
||||
end
|
||||
```
|
||||
Reference in New Issue
Block a user