-- +goose Up
CREATE VIEW display_transactions AS 
        SELECT  transactions.id, transactions.date, transactions.memo, 
                transactions.amount, transactions.group_id, transactions.status,
                accounts.name as account, transactions.payee_id, transactions.category_id,
                COALESCE(payees.name, '') as payee, 
                COALESCE(category_groups.name, '') as category_group, 
                COALESCE(categories.name, '') as category,
                COALESCE((
                SELECT CONCAT(otherAccounts.name) 
                FROM transactions otherTransactions 
                LEFT JOIN accounts otherAccounts ON otherAccounts.id = otherTransactions.account_id
                WHERE otherTransactions.group_id = transactions.group_id 
                AND otherTransactions.id != transactions.id
                ), '')::text as transfer_account,
                accounts.budget_id, transactions.account_id
        FROM transactions 
        INNER JOIN accounts ON accounts.id = transactions.account_id
        LEFT JOIN payees ON payees.id = transactions.payee_id
        LEFT JOIN categories ON categories.id = transactions.category_id
        LEFT JOIN category_groups ON category_groups.id = categories.category_group_id
        ORDER BY transactions.date DESC;

-- +goose Down
DROP VIEW display_transactions;