internetee-registry/app/interactions/domains/force_delete/set_status.rb
2025-05-30 15:33:20 +03:00

50 lines
1.7 KiB
Ruby

module Domains
module ForceDelete
class SetStatus < Base
def execute
domain.force_delete_type = type
type == :fast_track ? force_delete_fast_track : force_delete_soft
set_status_notes
domain.skip_whois_record_update = true
domain.force_delete_domain_statuses_history_data = {
reason: domain.status_notes[DomainStatus::FORCE_DELETE],
date: Time.zone.now
}
end
def force_delete_fast_track
domain.force_delete_date = Time.zone.today +
expire_warning_period_days +
redemption_grace_period_days
domain.force_delete_start = Time.zone.today + 1.day
end
def force_delete_soft
years = (domain.valid_to.to_date - Time.zone.today).to_i / 365
soft_forcedelete_dates(years) if years.positive?
end
private
def set_status_notes
domain.status_notes[DomainStatus::FORCE_DELETE] = "Company no: #{domain.registrant.ident} #{"+ #{notes}" if notes.present?}" if reason == 'invalid_company'
domain.status_notes[DomainStatus::FORCE_DELETE] = email if reason == 'invalid_email'
end
def soft_forcedelete_dates(years)
domain.force_delete_start = domain.valid_to - years.years
domain.force_delete_date = domain.force_delete_start +
Setting.expire_warning_period.days +
Setting.redemption_grace_period.days
end
def redemption_grace_period_days
Setting.redemption_grace_period.days + 1.day
end
def expire_warning_period_days
Setting.expire_warning_period.days
end
end
end
end