export * from "./mui/theme"; export * from "./DecodeJWT"; /** * Генерирует название медиа по умолчанию в разных форматах * * Примеры использования: * - Для достопримечательности с названием: "Михайловский замок_mikhail-zamok_Фото" * - Для достопримечательности без названия: "Название_mikhail-zamok_Фото" * - Для статьи: "Михайловский замок_mikhail-zamok_Факты" (где "Факты" - название статьи) * * @param objectName - Название объекта (достопримечательности, города и т.д.) * @param fileName - Название файла * @param mediaType - Тип медиа (число) или название статьи * @param isArticle - Флаг, указывающий что медиа добавляется к статье * @returns Строка в нужном формате */ export const generateDefaultMediaName = ( objectName: string, fileName: string, mediaType: number | string, isArticle: boolean = false ): string => { // Убираем расширение из названия файла const fileNameWithoutExtension = fileName.split(".").slice(0, -1).join("."); if (isArticle && typeof mediaType === "string") { // Для статей: "Название достопримечательности_название файла_название статьи" return `${objectName}_${fileNameWithoutExtension}_${mediaType}`; } else if (typeof mediaType === "number") { // Получаем название типа медиа const mediaTypeLabels: Record = { 1: "Фото", 2: "Видео", 3: "Иконка", 4: "Водяной знак", 5: "Панорама", 6: "3Д-модель", }; const mediaTypeLabel = mediaTypeLabels[mediaType] || "Медиа"; if (objectName && objectName.trim() !== "") { // Если есть название объекта: "Название объекта_название файла_тип медиа" return `${objectName}_${fileNameWithoutExtension}_${mediaTypeLabel}`; } else { // Если нет названия объекта: "Название_название файла_тип медиа" return `Название_${fileNameWithoutExtension}_${mediaTypeLabel}`; } } // Fallback return `${objectName || "Название"}_${fileNameWithoutExtension}_Медиа`; };