import {
  SUPPORT_ATTACHMENT_MAX_BYTES,
  SUPPORT_ATTACHMENT_MAX_PER_MESSAGE,
} from "@edr/types";
import { MulterOptions } from "@nestjs/platform-express/multer/interfaces/multer-options.interface";

/** Multipart field name carrying chat files. */
export const SUPPORT_ATTACHMENT_FIELD = "attachments";

/**
 * Multer-level caps for the chat send routes.
 *
 * These duplicate the checks in `SupportChatService.assertSendable` on purpose,
 * and are not a substitute for them: Multer stops reading the socket once a part
 * exceeds `fileSize`, so an oversized upload is cut off mid-stream instead of
 * being buffered into memory and rejected after the fact. The service-level
 * check is what produces the readable error message and covers callers that
 * don't come through this interceptor.
 */
export const supportAttachmentMulterOptions: MulterOptions = {
  limits: {
    fileSize: SUPPORT_ATTACHMENT_MAX_BYTES,
    files: SUPPORT_ATTACHMENT_MAX_PER_MESSAGE,
  },
};
