class Ecs::SaveCourseEvaluationForm
  include ActiveModel::Model

  attr_accessor :name, :evaluation_count, :status, :course_evaluation_subitems

  validates :name, presence: true
  validates :evaluation_count, presence: true, numericality: { only_integer: true }
  validates :status, presence: true, inclusion: { in: %w[partly totality] }

  validate :course_evaluation_subitems_validate
  def course_evaluation_subitems_validate
    if course_evaluation_subitems.blank?
      errors.add(:course_evaluation_subitems, :blank)
      return
    end

    if course_evaluation_subitems.any? { |item| item[:name].blank? }
      errors.add(:course_evaluation_subitems, :name_blank)
      return
    end
  end
end