#import "~/graphql_shared/fragments/pageInfo.fragment.graphql"

fragment TreeEntry on Entry {
  id
  sha
  name
  flatPath
  type
}

query getFiles(
  $projectPath: ID!
  $path: String
  $ref: String!
  $pageSize: Int!
  $nextPageCursor: String
) {
  project(fullPath: $projectPath) {
    repository {
      tree(path: $path, ref: $ref) {
        trees(first: $pageSize, after: $nextPageCursor) {
          edges {
            node {
              ...TreeEntry
              webPath
            }
          }
          pageInfo {
            ...PageInfo
          }
        }
        submodules(first: $pageSize, after: $nextPageCursor) {
          edges {
            node {
              ...TreeEntry
              webUrl
              treeUrl
            }
          }
          pageInfo {
            ...PageInfo
          }
        }
        blobs(first: $pageSize, after: $nextPageCursor) {
          edges {
            node {
              ...TreeEntry
              mode
              webPath
              lfsOid
            }
          }
          pageInfo {
            ...PageInfo
          }
        }
      }
    }
  }
}
