import { StargateTool } from "@sierai/stargate-toolmaker";
import { Zoom } from "@sierai/stargate-auth";
import { z } from "zod";
import { logger } from "@sierai/stargate-logger";

const createMeeting = new StargateTool({
  name: "create_meeting",
  description:
    "This tool will create a meeting on zoom, use OAuth to connect to zoom if the user is not connected",
  schema: z.object({
    // topic: z.string().describe("The topic of the meeting"),
    // start_time: z.string().describe("The start time of the meeting"),
    // duration: z.string().describe("The duration of the meeting"),
    noOp: z.string().optional().describe("No operation"),
  }),
  runner: async (input, config, oauthProvider: InstanceType<typeof Zoom>) => {
    try {
      return await oauthProvider.createMeeting();
    } catch (error) {
      logger.error({ message: error });
      return error;
    }
  },
});

export default createMeeting;
