Mi tipo personalizado "Observaciones" no parece generarse correctamente porque recibo este mensaje de error
Falta la propiedad 'observaciones' en el tipo 'import("/Users/thomasandrew/Documents/webApps/social-innovate/boilerplate/packages/api/node_modules/.prisma/client/index"). ActionPlan' pero requerido en el tipo 'import ("/Usuarios/thomasandrew/Documentos/webApps/social-innovate/boilerplate/packages/api/src/modules/actionPlan/actionPlan.model").ActionPlan'.ts(2741) actionPlan.model.ts(25, 5) : 'observaciones' se declara aquí.
Este es mi archivo de esquema Prisma (se eliminaron algunos campos extraños)
model Observation { id String @id @default(dbgenerated("gen_random_uuid()")) actionPlan ActionPlan @relation(fields: [actionPlanId], references: [id]) actionPlanId String meetingDate DateTime? place String? } model ActionPlan { id String @id @default(dbgenerated("gen_random_uuid()")) @unique testName String observations Observation[] }modelo type-graphql
@ObjectType() export class ActionPlan extends BaseModel implements Prisma.ActionPlan { @Field() testName: string @Field() department: string @Field() code: string @Field() outcome: string @Field() hypothesis: string @Field(type => [Observation]) observations: Observation[] }Sin embargo, incluso cuando ejecuto prisma generate con éxito, no agrega las 'observaciones' al Plan de acción. ¿Me estoy perdiendo de algo? Cualquier ayuda sería genial. También adjunté una captura de pantalla de los tipos generados en node_modules/.prisma/client/index.d.ts
Dado que tiene una relación entre esos 2, su código debe proporcionar un argumento de inclusión, de modo que su @Resolver y @Query puedan completar esa entidad en la respuesta.
Además, no sé si está dentro de su ActionPlanService la conexión prisma (probablemente sí, ya que obtiene este error).
Entonces, por ejemplo, su primera consulta debe apuntar a esta función ActionPlanService :
async getActionPlan(id: string): Promise<ActionPlan> { return await this.prismaService.actionPlan.findFirst({ where: { id, }, include: { observations: true, } });o algo similar, ya que no se como se conecta con prisma en ese servicio
Prisma no incluye relaciones en los tipos generados porque no todas las consultas las incluyen. Las consultas de Prisma devuelven relaciones según las opciones utilizadas, pero en el código generado esto se hace a través de TypeScript complejo.
Pero siempre puede definir tipos con relaciones incluidas manualmente o usando una combinación de las utilidades ReturnType<T> y Awaited<T> .
Ejemplo de definición manual:
type ActionPlanWithObservations = ActionPlan & { observations: Observation[] }Ejemplo usando Awaited y ReturnType:
type ActionPlanWithObservations = Awaited<ReturnType<ActionPlanService["getActionPlan"]>>Donde ActionPlanService es:
class ActionPlanService { getActionPlan(id: string) { return prisma.actionPlan.findFirst({ where: { id, }, include: { observations: true, } }) } } Nota: La utilidad Awaited<T> está disponible desde TypeScript 4.5