* Wip * Wip * Wip: History * Wip: テストコード作成 * Fix test * Wip * Wip * Wip * Fix test * Wip * Wip * Wip * Wip * なんとか完成、これから動作確認 * spell miss * Change ng rule timings * Fix test * Wip * Fix test * Wip * Fix form * 表示まわりの改善
64 lines
3 KiB
Ruby
64 lines
3 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
class CreateNgRules < ActiveRecord::Migration[7.1]
|
|
def change
|
|
create_table :ng_rules do |t|
|
|
t.string :title, null: false, default: ''
|
|
t.boolean :available, null: false, default: true
|
|
t.boolean :record_history_also_local, null: false, default: true
|
|
t.string :account_domain, null: false, default: ''
|
|
t.string :account_username, null: false, default: ''
|
|
t.string :account_display_name, null: false, default: ''
|
|
t.string :account_note, null: false, default: ''
|
|
t.string :account_field_name, null: false, default: ''
|
|
t.string :account_field_value, null: false, default: ''
|
|
t.integer :account_avatar_state, null: false, default: 0
|
|
t.integer :account_header_state, null: false, default: 0
|
|
t.boolean :account_include_local, null: false, default: true
|
|
t.boolean :account_allow_followed_by_local, null: false, default: false
|
|
t.string :status_spoiler_text, null: false, default: ''
|
|
t.string :status_text, null: false, default: ''
|
|
t.string :status_tag, null: false, default: ''
|
|
t.string :status_visibility, null: false, default: [], array: true
|
|
t.string :status_searchability, null: false, default: [], array: true
|
|
t.integer :status_media_state, null: false, default: 0
|
|
t.integer :status_sensitive_state, null: false, default: 0
|
|
t.integer :status_cw_state, null: false, default: 0
|
|
t.integer :status_poll_state, null: false, default: 0
|
|
t.integer :status_quote_state, null: false, default: 0
|
|
t.integer :status_reply_state, null: false, default: 0
|
|
t.integer :status_mention_state, null: false, default: 0
|
|
t.integer :status_reference_state, null: false, default: 0
|
|
t.integer :status_tag_threshold, null: false, default: -1
|
|
t.integer :status_media_threshold, null: false, default: -1
|
|
t.integer :status_poll_threshold, null: false, default: -1
|
|
t.integer :status_mention_threshold, null: false, default: -1
|
|
t.boolean :status_allow_follower_mention, null: false, default: true
|
|
t.integer :status_reference_threshold, null: false, default: -1
|
|
t.string :reaction_type, null: false, default: [], array: true
|
|
t.boolean :reaction_allow_follower, null: false, default: true
|
|
t.string :emoji_reaction_name, null: false, default: ''
|
|
t.string :emoji_reaction_origin_domain, null: false, default: ''
|
|
t.datetime :expires_at
|
|
|
|
t.timestamps
|
|
end
|
|
|
|
create_table :ng_rule_histories do |t|
|
|
t.belongs_to :ng_rule, null: false, foreign_key: { on_cascade: :delete }, index: false
|
|
t.belongs_to :account, foreign_key: { on_cascade: :nullify }, index: false
|
|
t.string :text
|
|
t.string :uri, index: true
|
|
t.integer :reason, null: false
|
|
t.integer :reason_action, null: false
|
|
t.boolean :local, null: false, default: true
|
|
t.boolean :hidden, null: false, default: false
|
|
t.jsonb :data
|
|
|
|
t.timestamps
|
|
end
|
|
|
|
add_index :ng_rule_histories, [:ng_rule_id, :account_id]
|
|
add_index :ng_rule_histories, :created_at
|
|
end
|
|
end
|