Sha256: 8a01d4923973d31a6f4885d604d805ada8b20d781aa45266469ed1cbf3172909

Contents?: true

Size: 1.23 KB

Versions: 1

Compression:

Stored size: 1.23 KB

Contents

# encoding: utf-8

class Mensagem < ApplicationRecord
  belongs_to :teleconsultoria
  belongs_to :autor, :class_name => 'Profissional'

  has_attached_file :arquivo,
    :url => "/system/:class/:attachment/:id/:basename.:extension",
    :path => ":rails_root/public/system/:class/:attachment/:id/:basename.:extension"

  before_create :set_tipo, :atribuir_teleconsultor

  validates :autor_id, :teleconsultoria_id, presence: true
  validates :corpo, presence: true, if: "tipo == 'texto'"
  validates :arquivo, presence: true, if: "tipo == 'imagem' or tipo == 'audio'"
  validate :verificar_responsabilidade

  private

  def verificar_responsabilidade
    if self.teleconsultoria.teleconsultor.present? and self.autor.usuario.perfil?('supervisor') and self.teleconsultoria.teleconsultor.id != self.autor.id
      errors.add(:autor_id, "Você não é o teleconsultor dessa teleconsultoria")
    end
  end

  def atribuir_teleconsultor
    if self.teleconsultoria.teleconsultor.nil? and self.autor.usuario.perfil?('supervisor')
      self.teleconsultoria.update_attributes(:teleconsultor_id => self.autor.id, :situacao => Teleconsultoria::SITUACOES[:em_atendimento])
    end
  end

  def set_tipo
    if self.tipo.blank?
      self.tipo = 'texto'
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
omniauth-sabia-1.0.1 app/models/mensagem.rb