class EventDecorator < ApplicationDecorator
  def start_time_label
    return if all_day?

    if minute.zero?
      Time.find_zone('UTC').parse(date_time.to_s).strftime('%l %p')
    else
      Time.find_zone('UTC').parse(date_time.to_s).strftime('%l:%M %p')
    end.strip
  end

  def end_time_label
    return if all_day?

    if ((minute + length) % 60).zero?
      (Time.find_zone('UTC').parse(date_time.to_s) + length.minutes).strftime('%l %p')
    else
      (Time.find_zone('UTC').parse(date_time.to_s) + length.minutes).strftime('%l:%M %p')
    end.strip
  end

  def start_time
    return date if all_day?

    Time.find_zone('UTC').parse(date_time.to_s).strftime('%Y-%m-%d %H:%M')
  end

  def end_time
    return date if all_day?

    (Time.find_zone('UTC').parse(date_time.to_s) + length.minutes).strftime('%Y-%m-%d %H:%M')
  end

  def alexa_response
    "#{description} at #{date_time.strftime('%I:%M %p')}"
  end

  def room_name
    room&.name
  end

  def building_name
    return if room.nil?

    building&.name
  end
end
