38 lines
987 B
Ruby
38 lines
987 B
Ruby
|
# == Schema Information
|
||
|
#
|
||
|
# Table name: data_imports
|
||
|
#
|
||
|
# id :bigint not null, primary key
|
||
|
# data_type :string not null
|
||
|
# processed_records :integer
|
||
|
# processing_errors :text
|
||
|
# status :integer default("pending"), not null
|
||
|
# total_records :integer
|
||
|
# created_at :datetime not null
|
||
|
# updated_at :datetime not null
|
||
|
# account_id :bigint not null
|
||
|
#
|
||
|
# Indexes
|
||
|
#
|
||
|
# index_data_imports_on_account_id (account_id)
|
||
|
#
|
||
|
# Foreign Keys
|
||
|
#
|
||
|
# fk_rails_... (account_id => accounts.id)
|
||
|
#
|
||
|
class DataImport < ApplicationRecord
|
||
|
belongs_to :account
|
||
|
validates :data_type, inclusion: { in: ['contacts'], message: '%<value>s is an invalid data type' }
|
||
|
enum status: { pending: 0, processing: 1, completed: 2, failed: 3 }
|
||
|
|
||
|
has_one_attached :import_file
|
||
|
|
||
|
after_create_commit :process_data_import
|
||
|
|
||
|
private
|
||
|
|
||
|
def process_data_import
|
||
|
DataImportJob.perform_later(self)
|
||
|
end
|
||
|
end
|