Class: CreateAirviewViews

Inherits:
Object
  • Object
show all
Defined in:
lib/generators/airview/install/templates/create_airview_views.rb

Instance Method Summary collapse

Instance Method Details

#changeObject



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/generators/airview/install/templates/create_airview_views.rb', line 4

def change
  create_table :airview_resources do |t|
    t.string :key, null: false
    t.string :record_class_name, null: false
    t.string :label, null: false
    t.string :label_method
    t.boolean :enabled, null: false, default: false
    t.integer :position, null: false, default: 0
    t.json :metadata, null: false, default: {}

    t.timestamps
  end

  add_index :airview_resources, :key, unique: true
  add_index :airview_resources, :record_class_name, unique: true
  add_index :airview_resources, :enabled

  create_table :airview_fields do |t|
    t.references :airview_resource, null: false, foreign_key: { to_table: :airview_resources }
    t.string :name, null: false
    t.string :label, null: false
    t.string :field_type, null: false
    t.boolean :visible, null: false, default: true
    t.boolean :read_only, null: false, default: false
    t.integer :position, null: false, default: 0
    t.string :association_name
    t.string :target_model_name
    t.string :target_label_method
    t.json :metadata, null: false, default: {}

    t.timestamps
  end

  add_index :airview_fields, %i[airview_resource_id name], unique: true
  add_index :airview_fields, :visible

  create_table :airview_views do |t|
    t.string :name, null: false
    t.string :resource_key, null: false
    t.string :owner_key
    t.string :folder
    t.json :columns, null: false, default: []
    t.json :filters, null: false, default: {}
    t.json :sorts, null: false, default: {}
    t.json :preferences, null: false, default: {}

    t.timestamps
  end

  add_index :airview_views, :resource_key
  add_index :airview_views, %i[resource_key folder]
  add_index :airview_views, %i[resource_key name]
end