class Projects::UpdateForm < BaseForm
  attr_accessor :name, :description, :project_category_id, :project_language_id, :private, :identifier, :user_id, :project_identifier, :project_name
  validates :name, presence: true
  validates :name, length: { maximum: 50 }
  validates :description, length: { maximum: 2000 }
  validates :identifier, format: { with: CustomRegexp::REPOSITORY_NAME_REGEX, multiline: true, message: "只能含有数字、字母、下划线且不能以下划线开头和结尾" }

  validate do
    check_project_category(project_category_id)
    check_project_language(project_language_id)

    check_repository_name(user_id, identifier) unless identifier.blank? || identifier == project_identifier
    check_project_name(user_id, name) unless name.blank? || name == project_name
  end

end
