From de6ae5b7205d8d2afdb5d6e28c11502759ec4c6b Mon Sep 17 00:00:00 2001 From: jasder Date: Mon, 19 Apr 2021 18:36:02 +0800 Subject: [PATCH] Upate models Schema Information --- app/models/attachment.rb | 8 +-- app/models/chart_rule.rb | 18 ++++++ app/models/ci/stage.rb | 19 ++++++ app/models/ci/user.rb | 12 ++-- app/models/discuss.rb | 35 +++++++++++ app/models/forge_activity.rb | 21 ++++++- app/models/help.rb | 16 ++++- app/models/laboratory.rb | 6 ++ app/models/laboratory_setting.rb | 4 ++ app/models/license.rb | 1 - app/models/live_link.rb | 24 ++++++++ app/models/member.rb | 1 - app/models/message_detail.rb | 15 +++++ app/models/organization.rb | 12 ++-- app/models/project.rb | 9 +-- app/models/project_category.rb | 5 -- app/models/repository.rb | 1 - app/models/school.rb | 36 ++++++++++++ app/models/trustie/course.rb | 85 ++++++++++++++++++++++++++- app/models/trustie/course_group.rb | 24 +++++++- app/models/trustie/homework_common.rb | 53 ++++++++++++++++- app/models/user.rb | 16 +++-- app/models/user_action.rb | 4 +- app/models/user_agent.rb | 5 +- app/models/user_extension.rb | 3 + 25 files changed, 393 insertions(+), 40 deletions(-) diff --git a/app/models/attachment.rb b/app/models/attachment.rb index 461c835fe..1ca173458 100644 --- a/app/models/attachment.rb +++ b/app/models/attachment.rb @@ -17,7 +17,7 @@ # disk_directory :string(255) # attachtype :integer default("1") # is_public :integer default("1") -# copy_from :integer +# copy_from :string(255) # quotes :integer default("0") # is_publish :integer default("1") # publish_time :datetime @@ -26,15 +26,15 @@ # cloud_url :string(255) default("") # course_second_category_id :integer default("0") # delay_publish :boolean default("0") +# link :string(255) +# clone_id :integer # # Indexes # # index_attachments_on_author_id (author_id) +# index_attachments_on_clone_id (clone_id) # index_attachments_on_container_id_and_container_type (container_id,container_type) -# index_attachments_on_course_second_category_id (course_second_category_id) # index_attachments_on_created_on (created_on) -# index_attachments_on_is_public (is_public) -# index_attachments_on_quotes (quotes) # class Attachment < ApplicationRecord diff --git a/app/models/chart_rule.rb b/app/models/chart_rule.rb index a0b344e07..26c7f8084 100644 --- a/app/models/chart_rule.rb +++ b/app/models/chart_rule.rb @@ -1,3 +1,21 @@ +# == Schema Information +# +# Table name: chart_rules +# +# id :integer not null, primary key +# rule_type :string(255) +# content :text(65535) +# created_at :datetime not null +# updated_at :datetime not null +# competition_id :integer +# competition_stage_id :integer +# +# Indexes +# +# index_chart_rules_on_competition_id (competition_id) +# index_chart_rules_on_competition_stage_id (competition_stage_id) +# + class ChartRule < ApplicationRecord validates :content, length: { maximum: 1000, too_long: "不能超过1000个字符" } diff --git a/app/models/ci/stage.rb b/app/models/ci/stage.rb index 2309f05d4..536e51cf6 100644 --- a/app/models/ci/stage.rb +++ b/app/models/ci/stage.rb @@ -1,3 +1,22 @@ +# == Schema Information +# +# Table name: stages +# +# id :integer not null +# subject_id :integer +# name :string(255) +# description :text(65535) +# user_id :integer +# position :integer +# created_at :datetime not null +# updated_at :datetime not null +# shixuns_count :integer default("0") +# +# Indexes +# +# index_stages_on_subject_id (subject_id) +# + class Ci::Stage < Ci::RemoteBase self.primary_key = 'stage_id' diff --git a/app/models/ci/user.rb b/app/models/ci/user.rb index cd6246753..fc82596c4 100644 --- a/app/models/ci/user.rb +++ b/app/models/ci/user.rb @@ -39,13 +39,14 @@ # business :boolean default("0") # profile_completed :boolean default("0") # laboratory_id :integer -# platform :string(255) default("0") -# gitea_token :string(255) -# gitea_uid :integer # is_shixun_marker :boolean default("0") +# admin_visitable :boolean default("0") +# collaborator :boolean default("0") +# gitea_uid :integer # is_sync_pwd :boolean default("1") # watchers_count :integer default("0") # devops_step :integer default("0") +# gitea_token :string(255) # # Indexes # @@ -53,8 +54,9 @@ # index_users_on_homepage_engineer (homepage_engineer) # index_users_on_homepage_teacher (homepage_teacher) # index_users_on_laboratory_id (laboratory_id) -# index_users_on_login (login) -# index_users_on_mail (mail) +# index_users_on_login (login) UNIQUE +# index_users_on_mail (mail) UNIQUE +# index_users_on_phone (phone) UNIQUE # index_users_on_type (type) # diff --git a/app/models/discuss.rb b/app/models/discuss.rb index a4c833b55..1a2efc606 100644 --- a/app/models/discuss.rb +++ b/app/models/discuss.rb @@ -1,3 +1,38 @@ +# == Schema Information +# +# Table name: discusses +# +# id :integer not null, primary key +# user_id :integer +# dis_type :string(255) +# dis_id :integer +# content :text(65535) +# parent_id :integer +# root_id :integer +# praise_count :integer +# created_at :datetime not null +# updated_at :datetime not null +# challenge_id :integer +# reward :integer +# hidden :boolean default("0") +# last_reply_id :integer +# position :integer +# praises_count :integer default("0") +# sticky :boolean default("0") +# course_sticky :boolean default("0") +# course_hidden :boolean default("0") +# copy_message_id :integer +# +# Indexes +# +# index_discusses_on_challenge_id (challenge_id) +# index_discusses_on_copy_message_id (copy_message_id) +# index_discusses_on_course_hidden (course_hidden) +# index_discusses_on_course_sticky (course_sticky) +# index_discusses_on_dis_id_and_dis_type (dis_id,dis_type) +# index_discusses_on_user_id (user_id) +# + class Discuss < ApplicationRecord default_scope { order(created_at: :desc) } diff --git a/app/models/forge_activity.rb b/app/models/forge_activity.rb index 77103d0ff..b9f11c5a8 100644 --- a/app/models/forge_activity.rb +++ b/app/models/forge_activity.rb @@ -1,5 +1,24 @@ +# == Schema Information +# +# Table name: forge_activities +# +# id :integer not null, primary key +# user_id :integer +# project_id :integer +# forge_act_id :integer +# forge_act_type :string(255) +# org_id :integer +# created_at :datetime not null +# updated_at :datetime not null +# +# Indexes +# +# forge_act_index (project_id,forge_act_id,created_at,forge_act_type) +# index_forge_activities_on_forge_act_id (forge_act_id) +# + class ForgeActivity < ApplicationRecord belongs_to :user belongs_to :project belongs_to :forge_act, polymorphic: true -end \ No newline at end of file +end diff --git a/app/models/help.rb b/app/models/help.rb index 2b8bf5813..5a4c480b4 100644 --- a/app/models/help.rb +++ b/app/models/help.rb @@ -1,3 +1,17 @@ +# == Schema Information +# +# Table name: helps +# +# id :integer not null, primary key +# created_at :datetime not null +# updated_at :datetime not null +# about_us :text(65535) +# agreement :text(65535) +# status :text(65535) +# help_center :text(65535) +# join_us :text(65535) +# + class Help < ApplicationRecord -end \ No newline at end of file +end diff --git a/app/models/laboratory.rb b/app/models/laboratory.rb index 73002a841..9d3ca07dd 100644 --- a/app/models/laboratory.rb +++ b/app/models/laboratory.rb @@ -10,6 +10,12 @@ # sync_course :boolean default("0") # sync_subject :boolean default("0") # sync_shixun :boolean default("0") +# is_local :boolean default("0") +# +# Indexes +# +# index_laboratories_on_identifier (identifier) UNIQUE +# index_laboratories_on_school_id (school_id) # class Laboratory < ApplicationRecord diff --git a/app/models/laboratory_setting.rb b/app/models/laboratory_setting.rb index 5013dd547..61c677def 100644 --- a/app/models/laboratory_setting.rb +++ b/app/models/laboratory_setting.rb @@ -6,6 +6,10 @@ # laboratory_id :integer # config :text(65535) # +# Indexes +# +# index_laboratory_settings_on_laboratory_id (laboratory_id) +# class LaboratorySetting < ApplicationRecord belongs_to :laboratory diff --git a/app/models/license.rb b/app/models/license.rb index dcd5528fb..0a14fb85e 100644 --- a/app/models/license.rb +++ b/app/models/license.rb @@ -7,7 +7,6 @@ # content :text(65535) # created_at :datetime not null # updated_at :datetime not null -# is_secret :boolean default("0") # class License < ApplicationRecord diff --git a/app/models/live_link.rb b/app/models/live_link.rb index 9c6531f87..c1c0bf750 100644 --- a/app/models/live_link.rb +++ b/app/models/live_link.rb @@ -1,3 +1,27 @@ +# == Schema Information +# +# Table name: live_links +# +# id :integer not null, primary key +# course_id :integer +# user_id :integer +# url :string(255) +# description :text(65535) +# on_status :boolean default("0") +# created_at :datetime not null +# updated_at :datetime not null +# course_name :string(255) +# platform :string(255) +# live_time :datetime +# duration :integer +# position :integer +# +# Indexes +# +# index_live_links_on_course_id (course_id) +# index_live_links_on_user_id (user_id) +# + class LiveLink < ApplicationRecord # belongs_to :course belongs_to :user diff --git a/app/models/member.rb b/app/models/member.rb index 408710a03..e72ae7c6b 100644 --- a/app/models/member.rb +++ b/app/models/member.rb @@ -11,7 +11,6 @@ # course_group_id :integer default("0") # is_collect :integer default("1") # graduation_group_id :integer default("0") -# is_apply_signature :boolean default("0") # # Indexes # diff --git a/app/models/message_detail.rb b/app/models/message_detail.rb index 51f4b17a9..c009b4744 100644 --- a/app/models/message_detail.rb +++ b/app/models/message_detail.rb @@ -1,3 +1,18 @@ +# == Schema Information +# +# Table name: message_details +# +# id :integer not null, primary key +# content :text(4294967295) +# message_id :integer +# created_at :datetime not null +# updated_at :datetime not null +# +# Indexes +# +# index_message_details_on_message_id (message_id) +# + class MessageDetail < ApplicationRecord # belongs_to :message, :touch => true validates :content, length: { maximum: 10000, too_long: "内容不能超过10000个字符" } diff --git a/app/models/organization.rb b/app/models/organization.rb index 48dab55a2..fbf3def79 100644 --- a/app/models/organization.rb +++ b/app/models/organization.rb @@ -39,13 +39,14 @@ # business :boolean default("0") # profile_completed :boolean default("0") # laboratory_id :integer -# platform :string(255) default("0") -# gitea_token :string(255) -# gitea_uid :integer # is_shixun_marker :boolean default("0") +# admin_visitable :boolean default("0") +# collaborator :boolean default("0") +# gitea_uid :integer # is_sync_pwd :boolean default("1") # watchers_count :integer default("0") # devops_step :integer default("0") +# gitea_token :string(255) # # Indexes # @@ -53,8 +54,9 @@ # index_users_on_homepage_engineer (homepage_engineer) # index_users_on_homepage_teacher (homepage_teacher) # index_users_on_laboratory_id (laboratory_id) -# index_users_on_login (login) -# index_users_on_mail (mail) +# index_users_on_login (login) UNIQUE +# index_users_on_mail (mail) UNIQUE +# index_users_on_phone (phone) UNIQUE # index_users_on_type (type) # diff --git a/app/models/project.rb b/app/models/project.rb index 9aa6283f6..a25d540cc 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -37,8 +37,6 @@ # rep_identifier :string(255) # project_category_id :integer # project_language_id :integer -# license_id :integer -# ignore_id :integer # praises_count :integer default("0") # watchers_count :integer default("0") # issues_count :integer default("0") @@ -52,8 +50,11 @@ # open_devops_count :integer default("0") # recommend :boolean default("0") # platform :integer default("0") +# license_id :integer +# ignore_id :integer # default_branch :string(255) default("master") # website :string(255) +# lesson_url :string(255) # # Indexes # @@ -70,10 +71,6 @@ # index_projects_on_updated_on (updated_on) # - - - - class Project < ApplicationRecord include Matchable include Publicable diff --git a/app/models/project_category.rb b/app/models/project_category.rb index 3a9819816..67b802998 100644 --- a/app/models/project_category.rb +++ b/app/models/project_category.rb @@ -8,11 +8,6 @@ # projects_count :integer default("0") # created_at :datetime not null # updated_at :datetime not null -# ancestry :string(255) -# -# Indexes -# -# index_project_categories_on_ancestry (ancestry) # class ProjectCategory < ApplicationRecord diff --git a/app/models/repository.rb b/app/models/repository.rb index b6d2321fc..978bc3c57 100644 --- a/app/models/repository.rb +++ b/app/models/repository.rb @@ -25,7 +25,6 @@ # # Indexes # -# index_repositories_on_identifier (identifier) # index_repositories_on_project_id (project_id) # index_repositories_on_user_id (user_id) # diff --git a/app/models/school.rb b/app/models/school.rb index f3b7ac0ab..5b30be9a5 100644 --- a/app/models/school.rb +++ b/app/models/school.rb @@ -1,3 +1,39 @@ +# == Schema Information +# +# Table name: schools +# +# id :integer not null, primary key +# name :string(255) +# province :string(255) +# created_at :datetime not null +# updated_at :datetime not null +# logo_link :string(255) +# pinyin :string(255) +# school_type :integer default("0") +# city :string(255) +# address :string(255) +# auto_users_trial :boolean default("0") +# shool_code :string(255) +# authorization_time :datetime +# ec_auth :integer default("0") +# identifier :string(255) +# is_online :boolean default("0") +# video_name :string(255) +# video_desc :string(255) +# course_link :string(255) +# course_name :string(255) +# partner_id :integer +# customer_id :integer +# school_property_id :integer +# +# Indexes +# +# index_schools_on_customer_id (customer_id) +# index_schools_on_identifier (identifier) +# index_schools_on_partner_id (partner_id) +# index_schools_on_school_property_id (school_property_id) +# + class School < ApplicationRecord has_many :departments, dependent: :destroy diff --git a/app/models/trustie/course.rb b/app/models/trustie/course.rb index 6cf6411e1..1c951ad68 100644 --- a/app/models/trustie/course.rb +++ b/app/models/trustie/course.rb @@ -1,4 +1,87 @@ +# == Schema Information +# +# Table name: courses +# +# id :integer not null, primary key +# tea_id :integer +# name :string(255) +# state :integer +# code :string(255) +# time :integer +# extra :string(255) +# created_at :datetime not null +# updated_at :datetime not null +# location :string(255) +# term :string(255) +# string :string(255) +# password :string(255) +# setup_time :string(255) +# endup_time :string(255) +# class_period :integer default("0") +# school_id :integer +# description :text(65535) +# status :integer default("1") +# attachmenttype :integer default("2") +# lft :integer +# rgt :integer +# is_public :integer default("1") +# inherit_members :integer default("1") +# open_student :integer default("0") +# outline :integer default("0") +# publish_resource :integer default("0") +# is_delete :integer default("0") +# end_time :integer +# end_term :string(255) +# is_excellent :integer default("0") +# excellent_option :integer default("0") +# is_copy :integer default("0") +# visits :integer default("0") +# syllabus_id :integer +# invite_code :string(255) +# qrcode :string(255) +# qrcode_expiretime :integer default("0") +# invite_code_halt :integer default("0") +# os_allow :integer default("0") +# credit :float(24) +# is_end :boolean default("0") +# end_date :date +# choose_group_allow :boolean default("0") +# homepage_show :boolean default("0") +# course_list_id :integer +# members_count :integer default("0") +# homework_commons_count :integer default("0") +# show_unit :boolean default("0") +# teacher_list :string(255) default("老师") +# student_list :string(255) default("学生") +# is_hidden :boolean default("0") +# course_members_count :integer default("0") +# course_groups_count :integer default("0") +# authentication :boolean default("0") +# professional_certification :boolean default("0") +# graduation_topics_count :integer default("0") +# graduation_tasks_count :integer default("0") +# polls_count :integer default("0") +# exercises_count :integer default("0") +# start_date :date +# subject_id :integer default("0") +# excellent :boolean default("0") +# email_notify :boolean default("0") +# sticky :boolean default("0") +# sticky_time :datetime +# laboratory_id :integer +# mooc_course_id :integer +# +# Indexes +# +# index_courses_on_invite_code (invite_code) UNIQUE +# index_courses_on_laboratory_id (laboratory_id) +# index_courses_on_mooc_course_id (mooc_course_id) +# index_courses_on_school_id_and_is_delete (school_id,is_delete) +# index_courses_on_subject_id (subject_id) +# index_courses_on_tea_id (tea_id) +# + class Trustie::Course < Trustie::Database has_many :course_groups, class_name: "Trustie::CourseGroup" has_many :homework_commons, class_name: "Trustie::HomeworkCommon" -end \ No newline at end of file +end diff --git a/app/models/trustie/course_group.rb b/app/models/trustie/course_group.rb index d9fee73b3..539ddaa11 100644 --- a/app/models/trustie/course_group.rb +++ b/app/models/trustie/course_group.rb @@ -1,3 +1,25 @@ +# == Schema Information +# +# Table name: course_groups +# +# id :integer not null, primary key +# name :string(255) +# course_id :integer +# created_at :datetime not null +# updated_at :datetime not null +# members_count :integer +# invite_code :string(255) +# position :integer default("0") +# course_members_count :integer default("0") +# invite_code_halt :boolean default("0") +# invite_code_set :integer default("0") +# +# Indexes +# +# index_course_groups_on_course_id (course_id) +# index_course_groups_on_invite_code (invite_code) UNIQUE +# + class Trustie::CourseGroup < Trustie::Database belongs_to :course, class_name: "Trustie::Course" -end \ No newline at end of file +end diff --git a/app/models/trustie/homework_common.rb b/app/models/trustie/homework_common.rb index 70dd31e6a..32af834ef 100644 --- a/app/models/trustie/homework_common.rb +++ b/app/models/trustie/homework_common.rb @@ -1,3 +1,54 @@ +# == Schema Information +# +# Table name: homework_commons +# +# id :integer not null, primary key +# name :string(255) +# user_id :integer +# description :text(65535) +# publish_time :datetime +# end_time :datetime +# homework_type :integer default("1") +# late_penalty :string(255) default("0") +# course_id :integer +# created_at :datetime not null +# updated_at :datetime not null +# teacher_priority :integer default("1") +# anonymous_comment :boolean default("0") +# quotes :integer default("0") +# is_open :integer default("0") +# simi_time :datetime +# score_open :boolean default("0") +# anonymous_appeal :boolean default("0") +# homework_bank_id :integer +# is_update :boolean default("0") +# is_public :boolean default("0") +# reference_answer :text(65535) +# answer_public :boolean default("0") +# archive_time :datetime +# allow_late :boolean default("0") +# late_time :datetime +# work_public :boolean default("0") +# explanation :text(65535) +# unified_setting :boolean default("1") +# comment_public :boolean default("1") +# course_homework_category_id :integer +# work_efficiency :boolean default("0") +# eff_score :float(24) default("0") +# max_efficiency :float(24) default("0") +# course_second_category_id :integer default("0") +# calculation_time :datetime +# position :integer default("0") +# total_score :float(24) default("100") +# category_position :integer default("0") +# +# Indexes +# +# index_homework_commons_on_course_id_and_id (course_id,id) +# index_homework_commons_on_course_second_category_id (course_second_category_id) +# index_homework_commons_on_homework_bank_id (homework_bank_id) +# + class Trustie::HomeworkCommon < Trustie::Database belongs_to :course, class_name: "Trustie::Course" -end \ No newline at end of file +end diff --git a/app/models/user.rb b/app/models/user.rb index 20b3a8543..2bc2dc2c9 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -39,13 +39,14 @@ # business :boolean default("0") # profile_completed :boolean default("0") # laboratory_id :integer -# platform :string(255) default("0") -# gitea_token :string(255) -# gitea_uid :integer # is_shixun_marker :boolean default("0") +# admin_visitable :boolean default("0") +# collaborator :boolean default("0") +# gitea_uid :integer # is_sync_pwd :boolean default("1") # watchers_count :integer default("0") # devops_step :integer default("0") +# gitea_token :string(255) # # Indexes # @@ -53,8 +54,9 @@ # index_users_on_homepage_engineer (homepage_engineer) # index_users_on_homepage_teacher (homepage_teacher) # index_users_on_laboratory_id (laboratory_id) -# index_users_on_login (login) -# index_users_on_mail (mail) +# index_users_on_login (login) UNIQUE +# index_users_on_mail (mail) UNIQUE +# index_users_on_phone (phone) UNIQUE # index_users_on_type (type) # @@ -190,6 +192,10 @@ class User < Owner validate :validate_sensitive_string validate :validate_password_length + def name + login + end + # 删除自动登录的token,一旦退出下次会提示需要登录 def delete_autologin_token(value) Token.where(:user_id => id, :action => 'autologin', :value => value).delete_all diff --git a/app/models/user_action.rb b/app/models/user_action.rb index 3ad8010ea..179359695 100644 --- a/app/models/user_action.rb +++ b/app/models/user_action.rb @@ -12,7 +12,9 @@ # # Indexes # -# index_user_actions_on_ip (ip) +# index_user_actions_on_ip (ip) +# index_user_actions_on_user_id (user_id) +# index_user_actions_on_user_id_and_action_type (user_id,action_type) # class UserAction < ApplicationRecord diff --git a/app/models/user_agent.rb b/app/models/user_agent.rb index 49d7b35a1..ba519d6fb 100644 --- a/app/models/user_agent.rb +++ b/app/models/user_agent.rb @@ -10,10 +10,13 @@ # updated_at :datetime not null # register_status :integer default("0") # action_status :integer default("0") +# is_delete :boolean default("0") +# user_id :integer # # Indexes # -# index_user_agents_on_ip (ip) UNIQUE +# index_user_agents_on_ip (ip) +# index_user_agents_on_user_id (user_id) # class UserAgent < ApplicationRecord diff --git a/app/models/user_extension.rb b/app/models/user_extension.rb index 20e2b5c4f..4afd89bd5 100644 --- a/app/models/user_extension.rb +++ b/app/models/user_extension.rb @@ -22,6 +22,9 @@ # school_id :integer # description :string(255) default("") # department_id :integer +# honor :text(65535) +# edu_background :integer +# edu_entry_year :integer # # Indexes #