import { writeGeneratedFile } from "../../helpers/fs";
import logger from "../../helpers/logger";
import { generateFileHeader } from "./fileHeader";

const FILE_NAME = "note.ts";

// Generate Note interface
export function generateNoteTypes(outputDir: string): void {
  logger.debug(`Generating note types file: ${FILE_NAME}`);

  const content = `
${generateFileHeader(FILE_NAME)}
import { Actor } from './base'

export interface AttioNote {
  id: {
    workspace_id: string;
    note_id: string;
  };
  parent_object: string;
  parent_record_id: string;
  title: string;
  content_plaintext: string;
  content_markdown: string;
  tags: (
    | {
        type: "workspace-member";
        workspace_member_id: string;
      }
    | {
        type: "record";
        object: string;
        record_id: string;
      }
  )[];
  created_by_actor: {
    id: string;
    type: "api-token" | "workspace-member" | "system" | "app";
  };
  created_at: string;
}
`;

  writeGeneratedFile(outputDir, FILE_NAME, content);
}
