group AccountDaoSql;
accountFields(prefix) ::= <<
<prefix>id,
<prefix>external_key,
<prefix>email,
<prefix>name,
<prefix>first_name_length,
<prefix>phone,
<prefix>currency,
<prefix>billing_cycle_day,
<prefix>payment_provider_name,
<prefix>created_dt,
<prefix>updated_dt
>>
create() ::= <<
INSERT INTO accounts (<accountFields()>)
VALUES (:id, :externalKey, :email, :name, :firstNameLength, :phone, :currency, :billingCycleDay, :paymentProviderName, :createdDate, :updatedDate);
>>
update() ::= <<
UPDATE accounts
SET email = :email,
name = :name,
first_name_length = :firstNameLength,
phone = :phone,
currency = :currency,
billing_cycle_day = :billingCycleDay,
payment_provider_name = :paymentProviderName,
updated_dt = NOW()
WHERE id = :id;
>>
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;
>>
;