class Procedure::Card::EmailsComponent < ApplicationComponent
  CUSTOMIZABLE_COUNT = 5

  def initialize(procedure:)
    @procedure = procedure
  end

  def customized_progress
    "#{customized_count} / #{CUSTOMIZABLE_COUNT}"
  end

  def fully_customized?
    customized_count == CUSTOMIZABLE_COUNT
  end

  private

  def error_messages
    [
      @procedure.errors.messages_for(:initiated_mail),
      @procedure.errors.messages_for(:received_mail),
      @procedure.errors.messages_for(:closed_mail),
      @procedure.errors.messages_for(:refused_mail),
      @procedure.errors.messages_for(:without_continuation_mail)
    ].flatten.to_sentence
  end

  def customized_count
    [
      @procedure.initiated_mail,
      @procedure.received_mail,
      @procedure.closed_mail,
      @procedure.refused_mail,
      @procedure.without_continuation_mail
    ].map { |mail| mail&.updated_at }.compact.size
  end
end