demarches-normaliennes/app/models/service.rb
Colin Darie 7d39cc6b3e chore(schema): +services#etablissement_{infos,geopoint}
- `etablissement_infos` est une représentation partielle en jsonb
de ce qui est renvoyé par l'API Entreprise.
(On ne conserve que l'adresse pour le moment, utilisée pour le geocodage)
- `etablissement_geopoint` est le point (x,y) issu du géocodage de
l'établissement
2022-09-06 09:23:52 +02:00

59 lines
2.2 KiB
Ruby

# == Schema Information
#
# Table name: services
#
# id :bigint not null, primary key
# adresse :text
# email :string
# etablissement_infos :jsonb
# etablissement_lat :decimal(10, 6)
# etablissement_lng :decimal(10, 6)
# horaires :text
# nom :string not null
# organisme :string
# siret :string
# telephone :string
# type_organisme :string not null
# created_at :datetime not null
# updated_at :datetime not null
# administrateur_id :bigint
#
class Service < ApplicationRecord
has_many :procedures
belongs_to :administrateur, optional: false
scope :ordered, -> { order(nom: :asc) }
enum type_organisme: {
administration_centrale: 'administration_centrale',
association: 'association',
collectivite_territoriale: 'collectivite_territoriale',
etablissement_enseignement: 'etablissement_enseignement',
operateur_d_etat: "operateur_d_etat",
service_deconcentre_de_l_etat: 'service_deconcentre_de_l_etat',
autre: 'autre'
}
validates :nom, presence: { message: 'doit être renseigné' }, allow_nil: false
validates :nom, uniqueness: { scope: :administrateur, message: 'existe déjà' }
validates :organisme, presence: { message: 'doit être renseigné' }, allow_nil: false
validates :siret, siret_format: true, allow_nil: true
validates :type_organisme, presence: { message: 'doit être renseigné' }, allow_nil: false
validates :email, presence: { message: 'doit être renseigné' }, allow_nil: false
validates :telephone, phone: { possible: true, allow_blank: true }
validates :horaires, presence: { message: 'doivent être renseignés' }, allow_nil: false
validates :adresse, presence: { message: 'doit être renseignée' }, allow_nil: false
validates :administrateur, presence: { message: 'doit être renseigné' }, allow_nil: false
def clone_and_assign_to_administrateur(administrateur)
service_cloned = self.dup
service_cloned.administrateur = administrateur
service_cloned
end
def telephone_url
if telephone.present?
"tel:#{telephone.gsub(/[[:blank:]]/, '')}"
end
end
end