class Admin::Legacy::Discipline::Students::LogsController < Admin::Legacy::Discipline::Controller
  def index
    render_success :ok, json: logs.order(:datetime).map { |l| log_props(l) }
  end

  def show
    render_success :ok, json: log_props(log)
  end

  private
    def logs
      params[:victim]&.to_bool ? student.discipline_victim_logs : student.discipline_logs
    end

    def log
      @log ||= logs.find_by(id: params[:id])
    end

    def student
      @student ||= current_school.students.find_by(id: params[:student_id])
    end

    def log_props(log)
      {
        id: log.id,
        aggressor_id: log.student_id,
        aggressor_name: log.student&.full_name(:reverse),
        violation_id: log.violation_id,
        violation_name: log.violation.name,
        victim_id: log.victim_id? ? log.victim_id : nil,
        victim_name: log.victim&.full_name(:reverse),
        author_id: log.author_id,
        author_name: log.author&.full_name(:reverse),
        description: log.description,
        resolution: log.resolution,
        points: log.points,
        datetime: log.decorate.datetime_to_s
      }
    end
end
