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

const FILE_NAME = "task.ts";

export function generateTaskTypes(outputDir: string): void {
  logger.debug(`Generating task types file: ${FILE_NAME}`);

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

export interface AttioTask {
  id: {
    workspace_id: string;
    task_id: string;
  };
  content_plaintext: string;
  deadline_at: string | null;
  is_completed: boolean;
  linked_records: {
    target_object_id: "people" | "companies";
    target_record_id: string;
  }[];
  assignees: {
    referenced_actor_type: "api-token" | "workspace-member" | "system" | "app";
    referenced_actor_id: string;
  }[];
  created_by_actor: {
    id: string;
    type: "api-token" | "workspace-member" | "system" | "app";
  };
  created_at: string;
}
`;

  writeGeneratedFile(outputDir, FILE_NAME, content);
}
