import { buildDriveFolderName, DOSSIER_SUBFOLDERS, type CreateDossierInput } from "./contracts";

export type DriveConfiguration = {
  clientId: string;
  clientSecret: string;
  refreshToken: string;
  rootFolderId: string;
  inProgressFolderId: string;
  completedToFileFolderId: string;
  modelsFolderId?: string;
};

export type DriveFolderRequest = {
  name: string;
  mimeType: "application/vnd.google-apps.folder";
  parents: [string];
};

export function buildDossierFolderPlan(input: CreateDossierInput, inProgressFolderId: string) {
  const rootName = buildDriveFolderName(input);
  return {
    root: {
      name: rootName,
      mimeType: "application/vnd.google-apps.folder" as const,
      parents: [inProgressFolderId] as [string],
    },
    subfolders: DOSSIER_SUBFOLDERS.map((name) => ({ name })),
  };
}

export function buildFolderRequest(name: string, parentId: string): DriveFolderRequest {
  return {
    name,
    mimeType: "application/vnd.google-apps.folder",
    parents: [parentId],
  };
}
