59 lines
2.6 KiB
Ruby
Executable File
59 lines
2.6 KiB
Ruby
Executable File
# frozen_string_literal: true
|
|
|
|
# == Schema Information
|
|
#
|
|
# Table name: contacts
|
|
#
|
|
# id :integer not null, primary key
|
|
# additional_attributes :jsonb
|
|
# blocked :boolean default(FALSE), not null
|
|
# contact_type :integer default("visitor")
|
|
# country_code :string default("")
|
|
# custom_attributes :jsonb
|
|
# email :string
|
|
# identifier :string
|
|
# last_activity_at :datetime
|
|
# last_name :string default("")
|
|
# location :string default("")
|
|
# middle_name :string default("")
|
|
# name :string default("")
|
|
# phone_number :string
|
|
# created_at :datetime not null
|
|
# updated_at :datetime not null
|
|
# account_id :integer not null
|
|
# company_id :bigint
|
|
#
|
|
# Indexes
|
|
#
|
|
# index_contacts_on_account_id (account_id)
|
|
# index_contacts_on_account_id_and_contact_type (account_id,contact_type)
|
|
# index_contacts_on_account_id_and_last_activity_at (account_id,last_activity_at DESC NULLS LAST)
|
|
# index_contacts_on_blocked (blocked)
|
|
# index_contacts_on_company_id (company_id)
|
|
# index_contacts_on_lower_email_account_id (lower((email)::text), account_id)
|
|
# index_contacts_on_name_email_phone_number_identifier (name,email,phone_number,identifier) USING gin
|
|
# index_contacts_on_nonempty_fields (account_id,email,phone_number,identifier) WHERE (((email)::text <> ''::text) OR ((phone_number)::text <> ''::text) OR ((identifier)::text <> ''::text))
|
|
# index_contacts_on_phone_number_and_account_id (phone_number,account_id)
|
|
# index_resolved_contact_account_id (account_id) WHERE (((email)::text <> ''::text) OR ((phone_number)::text <> ''::text) OR ((identifier)::text <> ''::text))
|
|
# uniq_email_per_account_contact (email,account_id) UNIQUE
|
|
# uniq_identifier_per_account_contact (identifier,account_id) UNIQUE
|
|
#
|
|
FactoryBot.define do
|
|
factory :contact do
|
|
sequence(:name) { |n| "Contact #{n}" }
|
|
account
|
|
|
|
trait :with_avatar do
|
|
avatar { fixture_file_upload(Rails.root.join('spec/assets/avatar.png'), 'image/png') }
|
|
end
|
|
|
|
trait :with_email do
|
|
sequence(:email) { |n| "contact-#{n}@example.com" }
|
|
end
|
|
|
|
trait :with_phone_number do
|
|
phone_number { Faker::PhoneNumber.cell_phone_in_e164 }
|
|
end
|
|
end
|
|
end
|