# app/policies/consolidacao_policy.rb
class ConsolidacaoPolicy < ApplicationPolicy
  def index?      = user.pode_consolidar?
  def arquivadas? = user.pode_consolidar?
  def show?       = user.pode_consolidar?
  def create?     = user.pode_consolidar?
  def update?  = user.pode_consolidar? && !record_finalizada_para_operador?
  def destroy? = user.admin? || user.gerente?

  # Registrar/estornar pagamento: mesma régua de arquivar/excluir.
  def registrar_pagamento? = user.admin? || user.gerente?
  def cancelar_pagamento?  = registrar_pagamento?

  private

  # Operador não mexe em consolidação finalizada
  def record_finalizada_para_operador?
    record.respond_to?(:finalizada?) && record.finalizada? && user.operador?
  end
end
