import * as TypeGraphQL from "type-graphql"; import type { GraphQLResolveInfo } from "graphql"; import { GroupByCompanyArgs } from "./args/GroupByCompanyArgs"; import { Company } from "../../../models/Company"; import { CompanyGroupBy } from "../../outputs/CompanyGroupBy"; import { transformInfoIntoPrismaArgs, getPrismaFromContext, transformCountFieldIntoSelectRelationsCount } from "../../../helpers"; @TypeGraphQL.Resolver(_of => Company) export class GroupByCompanyResolver { @TypeGraphQL.Query(_returns => [CompanyGroupBy], { nullable: false }) async groupByCompany(@TypeGraphQL.Ctx() ctx: any, @TypeGraphQL.Info() info: GraphQLResolveInfo, @TypeGraphQL.Args() args: GroupByCompanyArgs): Promise { const { _count, _avg, _sum, _min, _max } = transformInfoIntoPrismaArgs(info); return getPrismaFromContext(ctx).company.groupBy({ ...args, ...Object.fromEntries( Object.entries({ _count, _avg, _sum, _min, _max }).filter(([_, v]) => v != null) ), }); } }