demarches-normaliennes/app/models/deleted_dossier.rb

51 lines
1.5 KiB
Ruby
Raw Normal View History

2020-08-06 16:35:45 +02:00
# == Schema Information
#
# Table name: deleted_dossiers
#
2020-11-12 10:38:10 +01:00
# id :bigint not null, primary key
# deleted_at :datetime
# reason :string
# state :string
# created_at :datetime not null
# updated_at :datetime not null
# dossier_id :bigint
# groupe_instructeur_id :bigint
# procedure_id :bigint
# revision_id :bigint
# user_id :bigint
2020-08-06 16:35:45 +02:00
#
class DeletedDossier < ApplicationRecord
belongs_to :procedure, -> { with_discarded }, inverse_of: :deleted_dossiers, optional: false
validates :dossier_id, uniqueness: true
scope :order_by_updated_at, -> (order = :desc) { order(created_at: order) }
2021-05-26 13:50:02 +02:00
scope :deleted_since, -> (since) { where('deleted_dossiers.deleted_at >= ?', since) }
enum reason: {
2020-03-26 09:08:52 +01:00
user_request: 'user_request',
manager_request: 'manager_request',
user_removed: 'user_removed',
procedure_removed: 'procedure_removed',
expired: 'expired',
instructeur_request: 'instructeur_request'
}
def self.create_from_dossier(dossier, reason)
create!(
reason: reasons.fetch(reason),
dossier_id: dossier.id,
2020-11-12 10:38:10 +01:00
groupe_instructeur_id: dossier.groupe_instructeur_id,
revision_id: dossier.revision_id,
user_id: dossier.user_id,
procedure: dossier.procedure,
state: dossier.state,
deleted_at: Time.zone.now
)
end
def procedure_removed?
reason == self.class.reasons.fetch(:procedure_removed)
end
end