InvoiceItemSqlDao.sql.stg

67 lines | 1.679 kB Blame History Raw Download
group InvoiceItemDao;

invoiceItemFields(prefix) ::= <<
  <prefix>id,
  <prefix>invoice_id,
  <prefix>subscription_id,
  <prefix>plan_name,
  <prefix>phase_name,
  <prefix>start_date,
  <prefix>end_date,
  <prefix>recurring_amount,
  <prefix>recurring_rate,
  <prefix>fixed_amount,
  <prefix>currency
>>

getById() ::= <<
  SELECT <invoiceItemFields()>
  FROM invoice_items
  WHERE id = :id;
>>

getInvoiceItemsByInvoice() ::= <<
  SELECT <invoiceItemFields()>
  FROM invoice_items
  WHERE invoice_id = :invoiceId;
>>

getInvoiceItemsByAccount() ::= <<
  SELECT <invoiceItemFields("ii.")>
  FROM invoice_items ii
  INNER JOIN invoices i ON i.id = ii.invoice_id
  WHERE i.account_id = :accountId;
>>

getInvoiceItemsBySubscription() ::= <<
  SELECT <invoiceItemFields()>
  FROM invoice_items
  WHERE subscription_id = :subscriptionId;
>>

create() ::= <<
  INSERT INTO invoice_items(<invoiceItemFields()>)
  VALUES(:id, :invoiceId, :subscriptionId, :planName, :phaseName, :startDate, :endDate,
         :recurringAmount, :recurringRate, :fixedAmount, :currency);
>>

batchCreateFromTransaction() ::= <<
  INSERT INTO invoice_items(<invoiceItemFields()>)
  VALUES(:id, :invoiceId, :subscriptionId, :planName, :phaseName, :startDate, :endDate,
         :recurringAmount, :recurringRate, :fixedAmount, :currency);
>>

update() ::= <<
  UPDATE invoice_items
  SET invoice_id = :invoiceId, subscription_id = :subscriptionId, plan_name = :planName, phase_name = :phaseName,
      start_date = :startDate, end_date = :endDate, recurring_amount = :recurringAmount, recurring_rate = :recurringRate,
      fixed_amount = :fixedAmount, currency = :currency
  WHERE id = :id;
>>

test() ::= <<
  SELECT 1
  FROM invoice_items;
>>
;