import { {{ titleCase moduleName }} }  from '@prisma/client';
import { Args, ID, OK, ResolverHandler } from '~/types';
import { {{ titleCase moduleName }}Service } from '~/modules/{{ lowerCase moduleName}}/{{ lowerCase moduleName}}.service';
import { {{ titleCase moduleName }}Payload, {{ titleCase moduleName }}Schema } from '~/modules/{{lowerCase moduleName}}/{{lowerCase moduleName}}.schema';

export const create{{ titleCase moduleName }}Handler: ResolverHandler<Promise<{{ titleCase moduleName }} | null>> = async (
  __,
  args: Args<{{ titleCase moduleName }}Payload, ID>,
  { prisma, user },
) => {
  const cleanedInput = {{ titleCase moduleName }}Schema.parse(args.input);
  throw new Error('Not implemented');
};

export const get{{ titleCase moduleName }}Handler: ResolverHandler<Promise<{{ titleCase moduleName }} | null>> = async (
  __,
  args: Args<{}, ID>,
  { prisma, user },
) => {
  throw new Error('Not implemented');
};

export const get{{  pluralize (titleCase moduleName) }}Handler: ResolverHandler<Promise<{{ titleCase moduleName }} | null>> = async (
  _,
  args: Args<null, ID>,
  { prisma, user },
) => {
  throw new Error('Not implemented');
};

export const update{{ titleCase moduleName }}Handler: ResolverHandler<Promise<OK>> = async (
  _: any,
  args: Args<Partial<{{ titleCase moduleName }}Payload>, ID>,
  { prisma },
) => {
 throw new Error('Not implemented');
};

export const delete{{ titleCase moduleName }}Handler: ResolverHandler<Promise<OK>> = async (
  _: any,
  args: Args<null, ID>,
  { prisma },
) => {
 throw new Error('Not implemented');
};

