group AccountDaoSql;
accountFields(prefix) ::= <<
<prefix>id,
<prefix>external_key,
<prefix>email,
<prefix>name,
<prefix>first_name_length,
<prefix>currency,
<prefix>billing_cycle_day,
<prefix>payment_provider_name,
<prefix>time_zone,
<prefix>locale,
<prefix>address1,
<prefix>address2,
<prefix>company_name,
<prefix>city,
<prefix>state_or_province,
<prefix>country,
<prefix>postal_code,
<prefix>phone,
<prefix>migrated,
<prefix>is_notified_for_invoices,
<prefix>created_by,
<prefix>created_date,
<prefix>updated_by,
<prefix>updated_date
>>
create() ::= <<
INSERT INTO accounts
(<accountFields()>)
VALUES
(:id, :externalKey, :email, :name, :firstNameLength, :currency, :billingCycleDay,
:paymentProviderName, :timeZone, :locale,
:address1, :address2, :companyName, :city, :stateOrProvince, :country, :postalCode, :phone,
:migrated, :isNotifiedForInvoices, :userName, :createdDate, :userName, :updatedDate);
>>
update() ::= <<
UPDATE accounts
SET external_key = :externalKey, email = :email, name = :name, first_name_length = :firstNameLength,
currency = :currency, billing_cycle_day = :billingCycleDay, payment_provider_name = :paymentProviderName,
time_zone = :timeZone, locale = :locale,
address1 = :address1, address2 = :address2, company_name = :companyName, city = :city, state_or_province = :stateOrProvince,
country = :country, postal_code = :postalCode, phone = :phone,
is_notified_for_invoices = :isNotifiedForInvoices, updated_date = :updatedDate, updated_by = :userName
WHERE id = :id;
>>
insertAccountHistoryFromTransaction() ::= <<
INSERT INTO account_history
(history_record_id, id, external_key, email, name, first_name_length, currency,
billing_cycle_day, payment_provider_name, time_zone, locale,
address1, address2, company_name, city, state_or_province,
country, postal_code, phone, migrated, is_notified_for_invoices, change_type, updated_by, date)
VALUES
(:historyRecordId, :id, :externalKey, :email, :name, :firstNameLength, :currency,
:billingCycleDay, :paymentProviderName, :timeZone, :locale,
:address1, :address2, :companyName, :city, :stateOrProvince,
:country, :postalCode, :phone, :migrated, :isNotifiedForInvoices, :changeType, :userName, :createdDate);
>>
getAccountByKey() ::= <<
select <accountFields()>
from accounts
where external_key = :externalKey;
>>
getById() ::= <<
SELECT <accountFields()>
FROM accounts
WHERE id = :id;
>>
get() ::= <<
SELECT <accountFields()>
FROM accounts;
>>
getIdFromKey() ::= <<
SELECT id
FROM accounts
WHERE external_key = :externalKey;
>>
test() ::= <<
SELECT 1 FROM accounts;
>>
;