query listAccounts @auth(level: USER) {
  accounts {
    id
    bank
    type
    last4
    isPrimary
    ownerId
    accountNumber
    routeNumber
    expiryTime
    createdAt
  }
}

query getAccountById($id: UUID!) @auth(level: USER) {
  account(id: $id) {
    id
    bank
    type
    last4
    isPrimary
    ownerId
    accountNumber
    routeNumber
    expiryTime
    createdAt
  }
}

query getAccountsByOwnerId($ownerId: UUID!) @auth(level: USER) {
  accounts(where: { ownerId: { eq: $ownerId } }) {
    id
    bank
    type
    last4
    isPrimary
    ownerId
    accountNumber
    routeNumber
    expiryTime
    createdAt
  }
}

query filterAccounts(
  $bank: String
  $type: AccountType
  $isPrimary: Boolean
  $ownerId: UUID
) @auth(level: USER) {
  accounts(
    where: {
      bank: { eq: $bank }
      type: { eq: $type }
      isPrimary: { eq: $isPrimary }
      ownerId: { eq: $ownerId }
    }
  ) {
    id
    bank
    type
    last4
    isPrimary
    ownerId
    accountNumber
    expiryTime
    routeNumber
  }
}
