demarches-normaliennes/app/models/individual.rb
Kara Diaby 2ac9c13c4a Models
2023-12-12 22:35:11 +00:00

30 lines
1 KiB
Ruby

class Individual < ApplicationRecord
enum notification_method: {
email: 'email',
no_notification: 'no_notification'
}
belongs_to :dossier, optional: false
validates :dossier_id, uniqueness: true
validates :gender, presence: true, allow_nil: false, on: :update
validates :nom, presence: true, allow_blank: false, allow_nil: false, on: :update
validates :prenom, presence: true, allow_blank: false, allow_nil: false, on: :update
validates :notification_method, presence: true,
inclusion: { in: notification_methods.keys },
if: -> { dossier.for_tiers? },
on: :update
validates :email, presence: true, if: -> { dossier.for_tiers? && self.email? }, on: :update
GENDER_MALE = "M."
GENDER_FEMALE = 'Mme'
def self.from_france_connect(fc_information)
new(
nom: fc_information.family_name,
prenom: fc_information.given_name,
gender: fc_information.gender == 'female' ? GENDER_FEMALE : GENDER_MALE
)
end
end