import { FastifyInstance } from "fastify";
import { ZodTypeProvider } from "fastify-type-provider-zod";
import z from "zod";
import { prisma } from "../../lib/prisma";
import { BadRequest } from "../_errors/bad-request";

export async function classAttended(app: FastifyInstance) {
  app
    .withTypeProvider<ZodTypeProvider>()
    .get('/class-attended/:userId/:classId', {
      schema: {
        summary: 'Check-in an user',
        tags: ['user-course'],
        params: z.object({
          userId: z.string().cuid(),
          classId: z.string().cuid(),
        }),
        response: {
          201: z.null(),
        }
      }
    }, async (request, reply) => {
      const {
        userId,
        classId
      } = request.params

      const userCheckIn = await prisma.classAttended.findFirst({
        where: {
          userId,
          classId,
        }
      })

      if (!userCheckIn) {
        await prisma.classAttended.create({
          data: {
            userId,
            classId,
          }
        })
      } 

      return reply.status(201).send()
    })
}