class CourseActivity < ApplicationRecord
  belongs_to :course_act, polymorphic: true
  belongs_to :course
  belongs_to :user
  belongs_to :exercise, optional: true
  belongs_to :poll, optional: true
  belongs_to :course_message, optional: true
  belongs_to :homework_common, optional: true
  belongs_to :course_attendance, optional: true

  # after_create :add_course_lead

  def container_name
    case course_act_type
    when "HomeworkCommon"
      course_act&.name
    when "Exercise"
      course_act&.exercise_name
    when "Poll"
      course_act&.poll_name
    when "Message"
      course_act&.subject
    else
      ""
    end
  end

  # 发布新课导语
  # 导语要放置在课程创建信息之后
  def add_course_lead
    # 避免空数据迁移报错问题
    if self.course_act_type == "Course"
      sample = PlatformSample.where(:samples_type => "courseGuide").first
      if sample.present? && sample.contents.present?
        content = sample.contents
      elsif Message.find(12440)
        lead_message = Message.find(12440)
        content = lead_message.content
      end
      if content
        # message的status状态为0为正常,为1表示创建课程时发送的message
        # author_id 默认为课程使者创建
        message = Message.create(subject: "新课导语",
                                board_id: course.course_board.try(:id),
                                author_id: 1,
                                sticky: true,
                                status: true,
                                message_detail_attributes: {content: content}
                              )
        # 更新的目的是为了排序,因为该条动态的时间可能与课程创建的动态创建时间一致
        message.course_acts.first.update_attribute(:updated_at, message.course_acts.first.updated_at + 1) if message.course_acts.first
      end
    end
  end
end