Commit 298796cc authored by yhirano's avatar yhirano Committed by Eugen Rochko
Browse files

annotate models (#2697)

* add annotate to Gemfile

* rails g annotate:install

* configure annotate_models

* add schema info to models

* fix rubocop to add frozen_string_literal
parent a4859446
......@@ -90,6 +90,7 @@ group :development do
gem 'letter_opener_web'
gem 'bullet'
gem 'active_record_query_trace'
gem 'annotate'
gem 'capistrano', '3.8.0'
gem 'capistrano-rails'
......
......@@ -43,6 +43,9 @@ GEM
public_suffix (~> 2.0, >= 2.0.2)
airbrussh (1.2.0)
sshkit (>= 1.6.1, != 1.7.0)
annotate (2.7.1)
activerecord (>= 3.2, < 6.0)
rake (>= 10.4, < 12.0)
arel (7.1.4)
ast (2.3.0)
attr_encrypted (3.0.3)
......@@ -345,7 +348,7 @@ GEM
thor (>= 0.18.1, < 2.0)
rainbow (2.2.2)
rake
rake (12.0.0)
rake (11.3.0)
react-rails (1.11.0)
babel-transpiler (>= 0.7.0)
connection_pool
......@@ -483,6 +486,7 @@ PLATFORMS
DEPENDENCIES
active_record_query_trace
addressable
annotate
autoprefixer-rails
aws-sdk (>= 2.0)
best_in_place (~> 3.0.1)
......
# frozen_string_literal: true
# == Schema Information
#
# Table name: accounts
#
# id :integer not null, primary key
# username :string default(""), not null
# domain :string
# secret :string default(""), not null
# private_key :text
# public_key :text default(""), not null
# remote_url :string default(""), not null
# salmon_url :string default(""), not null
# hub_url :string default(""), not null
# created_at :datetime not null
# updated_at :datetime not null
# note :text default(""), not null
# display_name :string default(""), not null
# uri :string default(""), not null
# url :string
# avatar_file_name :string
# avatar_content_type :string
# avatar_file_size :integer
# avatar_updated_at :datetime
# header_file_name :string
# header_content_type :string
# header_file_size :integer
# header_updated_at :datetime
# avatar_remote_url :string
# subscription_expires_at :datetime
# silenced :boolean default(FALSE), not null
# suspended :boolean default(FALSE), not null
# locked :boolean default(FALSE), not null
# header_remote_url :string default(""), not null
# statuses_count :integer default(0), not null
# followers_count :integer default(0), not null
# following_count :integer default(0), not null
# last_webfingered_at :datetime
#
class Account < ApplicationRecord
include Targetable
......
# frozen_string_literal: true
# == Schema Information
#
# Table name: blocks
#
# id :integer not null, primary key
# account_id :integer not null
# target_account_id :integer not null
# created_at :datetime not null
# updated_at :datetime not null
#
class Block < ApplicationRecord
include Paginable
......
# frozen_string_literal: true
# == Schema Information
#
# Table name: domain_blocks
#
# id :integer not null, primary key
# domain :string default(""), not null
# created_at :datetime not null
# updated_at :datetime not null
# severity :integer default("silence")
# reject_media :boolean
#
class DomainBlock < ApplicationRecord
enum severity: [:silence, :suspend]
......
# frozen_string_literal: true
# == Schema Information
#
# Table name: favourites
#
# id :integer not null, primary key
# account_id :integer not null
# status_id :integer not null
# created_at :datetime not null
# updated_at :datetime not null
#
class Favourite < ApplicationRecord
include Paginable
......
# frozen_string_literal: true
# == Schema Information
#
# Table name: follows
#
# id :integer not null, primary key
# account_id :integer not null
# target_account_id :integer not null
# created_at :datetime not null
# updated_at :datetime not null
#
class Follow < ApplicationRecord
include Paginable
......
# frozen_string_literal: true
# == Schema Information
#
# Table name: follow_requests
#
# id :integer not null, primary key
# account_id :integer not null
# target_account_id :integer not null
# created_at :datetime not null
# updated_at :datetime not null
#
class FollowRequest < ApplicationRecord
include Paginable
......
# frozen_string_literal: true
# == Schema Information
#
# Table name: imports
#
# id :integer not null, primary key
# account_id :integer not null
# type :integer not null
# approved :boolean
# created_at :datetime not null
# updated_at :datetime not null
# data_file_name :string
# data_content_type :string
# data_file_size :integer
# data_updated_at :datetime
#
class Import < ApplicationRecord
FILE_TYPES = ['text/plain', 'text/csv'].freeze
......
# frozen_string_literal: true
# == Schema Information
#
# Table name: media_attachments
#
# id :integer not null, primary key
# status_id :integer
# file_file_name :string
# file_content_type :string
# file_file_size :integer
# file_updated_at :datetime
# remote_url :string default(""), not null
# account_id :integer
# created_at :datetime not null
# updated_at :datetime not null
# shortcode :string
# type :integer default("image"), not null
# file_meta :json
#
class MediaAttachment < ApplicationRecord
self.inheritance_column = nil
......
# frozen_string_literal: true
# == Schema Information
#
# Table name: mentions
#
# id :integer not null, primary key
# account_id :integer
# status_id :integer
# created_at :datetime not null
# updated_at :datetime not null
#
class Mention < ApplicationRecord
belongs_to :account, inverse_of: :mentions, required: true
......
# frozen_string_literal: true
# == Schema Information
#
# Table name: mutes
#
# id :integer not null, primary key
# account_id :integer not null
# target_account_id :integer not null
# created_at :datetime not null
# updated_at :datetime not null
#
class Mute < ApplicationRecord
include Paginable
......
# frozen_string_literal: true
# == Schema Information
#
# Table name: notifications
#
# id :integer not null, primary key
# account_id :integer
# activity_id :integer
# activity_type :string
# created_at :datetime not null
# updated_at :datetime not null
# from_account_id :integer
#
class Notification < ApplicationRecord
include Paginable
......
# frozen_string_literal: true
# == Schema Information
#
# Table name: preview_cards
#
# id :integer not null, primary key
# status_id :integer
# url :string default(""), not null
# title :string
# description :string
# image_file_name :string
# image_content_type :string
# image_file_size :integer
# image_updated_at :datetime
# created_at :datetime not null
# updated_at :datetime not null
# type :integer default("link"), not null
# html :text default(""), not null
# author_name :string default(""), not null
# author_url :string default(""), not null
# provider_name :string default(""), not null
# provider_url :string default(""), not null
# width :integer default(0), not null
# height :integer default(0), not null
#
class PreviewCard < ApplicationRecord
IMAGE_MIME_TYPES = ['image/jpeg', 'image/png', 'image/gif'].freeze
......
# frozen_string_literal: true
# == Schema Information
#
# Table name: reports
#
# id :integer not null, primary key
# account_id :integer not null
# target_account_id :integer not null
# status_ids :integer default([]), not null, is an Array
# comment :text default(""), not null
# action_taken :boolean default(FALSE), not null
# created_at :datetime not null
# updated_at :datetime not null
# action_taken_by_account_id :integer
#
class Report < ApplicationRecord
belongs_to :account
......
# frozen_string_literal: true
# == Schema Information
#
# Table name: settings
#
# id :integer not null, primary key
# var :string not null
# value :text
# thing_type :string
# thing_id :integer
# created_at :datetime
# updated_at :datetime
#
class Setting < RailsSettings::Base
source Rails.root.join('config/settings.yml')
......
# frozen_string_literal: true
# == Schema Information
#
# Table name: statuses
#
# id :integer not null, primary key
# uri :string
# account_id :integer not null
# text :text default(""), not null
# created_at :datetime not null
# updated_at :datetime not null
# in_reply_to_id :integer
# reblog_of_id :integer
# url :string
# sensitive :boolean default(FALSE)
# visibility :integer default("public"), not null
# in_reply_to_account_id :integer
# application_id :integer
# spoiler_text :text default(""), not null
# reply :boolean default(FALSE)
# favourites_count :integer default(0), not null
# reblogs_count :integer default(0), not null
# language :string default("en"), not null
#
class Status < ApplicationRecord
include Paginable
......
# frozen_string_literal: true
# == Schema Information
#
# Table name: stream_entries
#
# id :integer not null, primary key
# account_id :integer
# activity_id :integer
# activity_type :string
# created_at :datetime not null
# updated_at :datetime not null
# hidden :boolean default(FALSE), not null
#
class StreamEntry < ApplicationRecord
include Paginable
......
# frozen_string_literal: true
# == Schema Information
#
# Table name: subscriptions
#
# id :integer not null, primary key
# callback_url :string default(""), not null
# secret :string
# expires_at :datetime
# confirmed :boolean default(FALSE), not null
# account_id :integer not null
# created_at :datetime not null
# updated_at :datetime not null
# last_successful_delivery_at :datetime
#
class Subscription < ApplicationRecord
MIN_EXPIRATION = 3600 * 24 * 7
......
# frozen_string_literal: true
# == Schema Information
#
# Table name: tags
#
# id :integer not null, primary key
# name :string default(""), not null
# created_at :datetime not null
# updated_at :datetime not null
#
class Tag < ApplicationRecord
has_and_belongs_to_many :statuses
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment