first commit

This commit is contained in:
2026-04-15 22:37:39 +03:00
parent 3c59557946
commit 1590bef227
156 changed files with 13823 additions and 84 deletions

60
scratch/bulk_upload.js Normal file
View File

@@ -0,0 +1,60 @@
const cloudinary = require('cloudinary').v2;
require('dotenv').config({ path: '.env.local' });
const fs = require('fs');
const path = require('path');
cloudinary.config({
cloud_name: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME,
api_key: process.env.CLOUDINARY_API_KEY,
api_secret: process.env.CLOUDINARY_API_SECRET
});
const BASE_DIR = path.join('public', 'images');
const CLOUDINARY_ROOT = 'salvilla';
async function uploadFolder(folderName) {
const folderPath = path.join(BASE_DIR, folderName);
if (!fs.existsSync(folderPath)) return [];
const files = fs.readdirSync(folderPath);
const results = [];
for (const file of files) {
const filePath = path.join(folderPath, file);
if (!fs.lstatSync(filePath).isFile()) continue;
console.log(`Uploading ${folderName}/${file}...`);
try {
const result = await cloudinary.uploader.upload(filePath, {
folder: `${CLOUDINARY_ROOT}/${folderName}`,
use_filename: true,
unique_filename: false,
overwrite: true
});
results.push({
localFile: file,
url: result.secure_url,
public_id: result.public_id
});
console.log(`Done: ${result.public_id}`);
} catch (e) {
console.error(`Failed to upload ${file}:`, e.message);
}
}
return results;
}
async function main() {
const folders = ['villa-melda', 'villa-meyra', 'villa-su', 'villa-tuncay', 'villa-yalikavak'];
const allResults = {};
for (const folder of folders) {
console.log(`\n--- Processing folder: ${folder} ---`);
allResults[folder] = await uploadFolder(folder);
}
fs.writeFileSync('scratch/upload_report.json', JSON.stringify(allResults, null, 2));
console.log('\nAll uploads completed! Report saved to scratch/upload_report.json');
}
main();

View File

@@ -0,0 +1,282 @@
[
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\odalar\\aileodası\\a1b (1).jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266592/salhotel/rooms/aileodas%C4%B1/a1b_1.jpg",
"publicId": "salhotel/rooms/aileodası/a1b_1"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\odalar\\aileodası\\a1b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266593/salhotel/rooms/aileodas%C4%B1/a1b.jpg",
"publicId": "salhotel/rooms/aileodası/a1b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\odalar\\aileodası\\a2b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266594/salhotel/rooms/aileodas%C4%B1/a2b.jpg",
"publicId": "salhotel/rooms/aileodası/a2b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\odalar\\aileodası\\a3b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266595/salhotel/rooms/aileodas%C4%B1/a3b.jpg",
"publicId": "salhotel/rooms/aileodası/a3b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\odalar\\aileodası\\a4b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266596/salhotel/rooms/aileodas%C4%B1/a4b.jpg",
"publicId": "salhotel/rooms/aileodası/a4b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\odalar\\juniorsuite\\j1b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266596/salhotel/rooms/juniorsuite/j1b.jpg",
"publicId": "salhotel/rooms/juniorsuite/j1b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\odalar\\juniorsuite\\j2b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266597/salhotel/rooms/juniorsuite/j2b.jpg",
"publicId": "salhotel/rooms/juniorsuite/j2b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\odalar\\juniorsuite\\j3b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266598/salhotel/rooms/juniorsuite/j3b.jpg",
"publicId": "salhotel/rooms/juniorsuite/j3b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\odalar\\juniorsuite\\j4b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266599/salhotel/rooms/juniorsuite/j4b.jpg",
"publicId": "salhotel/rooms/juniorsuite/j4b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\odalar\\juniorsuite\\j5b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266600/salhotel/rooms/juniorsuite/j5b.jpg",
"publicId": "salhotel/rooms/juniorsuite/j5b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\odalar\\juniorsuite\\j6b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266600/salhotel/rooms/juniorsuite/j6b.jpg",
"publicId": "salhotel/rooms/juniorsuite/j6b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\odalar\\kingsuite\\k1b (1).jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266601/salhotel/rooms/kingsuite/k1b_1.jpg",
"publicId": "salhotel/rooms/kingsuite/k1b_1"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\odalar\\kingsuite\\k1b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266602/salhotel/rooms/kingsuite/k1b.jpg",
"publicId": "salhotel/rooms/kingsuite/k1b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\odalar\\kingsuite\\k2b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266603/salhotel/rooms/kingsuite/k2b.jpg",
"publicId": "salhotel/rooms/kingsuite/k2b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\odalar\\kingsuite\\k3b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266604/salhotel/rooms/kingsuite/k3b.jpg",
"publicId": "salhotel/rooms/kingsuite/k3b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\odalar\\kingsuite\\k4b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266604/salhotel/rooms/kingsuite/k4b.jpg",
"publicId": "salhotel/rooms/kingsuite/k4b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\odalar\\kingsuite\\k5b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266605/salhotel/rooms/kingsuite/k5b.jpg",
"publicId": "salhotel/rooms/kingsuite/k5b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\odalar\\kingsuite\\k6b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266606/salhotel/rooms/kingsuite/k6b.jpg",
"publicId": "salhotel/rooms/kingsuite/k6b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\odalar\\penthousesuite\\1b (1).jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266607/salhotel/rooms/penthousesuite/1b_1.jpg",
"publicId": "salhotel/rooms/penthousesuite/1b_1"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\odalar\\penthousesuite\\1b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266614/salhotel/rooms/penthousesuite/1b.jpg",
"publicId": "salhotel/rooms/penthousesuite/1b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\odalar\\penthousesuite\\2b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266615/salhotel/rooms/penthousesuite/2b.jpg",
"publicId": "salhotel/rooms/penthousesuite/2b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\odalar\\penthousesuite\\3b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266616/salhotel/rooms/penthousesuite/3b.jpg",
"publicId": "salhotel/rooms/penthousesuite/3b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\odalar\\penthousesuite\\4b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266617/salhotel/rooms/penthousesuite/4b.jpg",
"publicId": "salhotel/rooms/penthousesuite/4b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\odalar\\penthousesuite\\5b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266618/salhotel/rooms/penthousesuite/5b.jpg",
"publicId": "salhotel/rooms/penthousesuite/5b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\odalar\\penthousesuite\\6b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266619/salhotel/rooms/penthousesuite/6b.jpg",
"publicId": "salhotel/rooms/penthousesuite/6b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\odalar\\standartoda\\s1b (1).jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266620/salhotel/rooms/standartoda/s1b_1.jpg",
"publicId": "salhotel/rooms/standartoda/s1b_1"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\odalar\\standartoda\\s1b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266620/salhotel/rooms/standartoda/s1b.jpg",
"publicId": "salhotel/rooms/standartoda/s1b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\odalar\\standartoda\\s2b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266621/salhotel/rooms/standartoda/s2b.jpg",
"publicId": "salhotel/rooms/standartoda/s2b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\odalar\\standartoda\\s3b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266622/salhotel/rooms/standartoda/s3b.jpg",
"publicId": "salhotel/rooms/standartoda/s3b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\odalar\\standartoda\\s4b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266623/salhotel/rooms/standartoda/s4b.jpg",
"publicId": "salhotel/rooms/standartoda/s4b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\rezidans\\rezidans1+1\\r1b (1).jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266624/salhotel/residence/rezidans1%2B1/r1b_1.jpg",
"publicId": "salhotel/residence/rezidans1+1/r1b_1"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\rezidans\\rezidans1+1\\r1b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266624/salhotel/residence/rezidans1%2B1/r1b.jpg",
"publicId": "salhotel/residence/rezidans1+1/r1b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\rezidans\\rezidans1+1\\r2b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266625/salhotel/residence/rezidans1%2B1/r2b.jpg",
"publicId": "salhotel/residence/rezidans1+1/r2b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\rezidans\\rezidans1+1\\r3b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266626/salhotel/residence/rezidans1%2B1/r3b.jpg",
"publicId": "salhotel/residence/rezidans1+1/r3b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\rezidans\\rezidans1+1\\r4b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266627/salhotel/residence/rezidans1%2B1/r4b.jpg",
"publicId": "salhotel/residence/rezidans1+1/r4b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\rezidans\\rezidans1+1\\r5b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266627/salhotel/residence/rezidans1%2B1/r5b.jpg",
"publicId": "salhotel/residence/rezidans1+1/r5b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\rezidans\\rezidans1+1\\r7b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266628/salhotel/residence/rezidans1%2B1/r7b.jpg",
"publicId": "salhotel/residence/rezidans1+1/r7b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\rezidans\\rezidans2+1\\rr2b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266629/salhotel/residence/rezidans2%2B1/rr2b.jpg",
"publicId": "salhotel/residence/rezidans2+1/rr2b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\rezidans\\rezidans2+1\\rr3b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266629/salhotel/residence/rezidans2%2B1/rr3b.jpg",
"publicId": "salhotel/residence/rezidans2+1/rr3b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\rezidans\\rezidans2+1\\rr4b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266631/salhotel/residence/rezidans2%2B1/rr4b.jpg",
"publicId": "salhotel/residence/rezidans2+1/rr4b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\rezidans\\rezidans2+1\\rr5b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266631/salhotel/residence/rezidans2%2B1/rr5b.jpg",
"publicId": "salhotel/residence/rezidans2+1/rr5b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\rezidans\\rezidans2+1\\rr6b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266632/salhotel/residence/rezidans2%2B1/rr6b.jpg",
"publicId": "salhotel/residence/rezidans2+1/rr6b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\rezidans\\rezidans2+1\\rr7b (1).jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266633/salhotel/residence/rezidans2%2B1/rr7b_1.jpg",
"publicId": "salhotel/residence/rezidans2+1/rr7b_1"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\konaklama\\rezidans\\rezidans2+1\\rr7b.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266634/salhotel/residence/rezidans2%2B1/rr7b.jpg",
"publicId": "salhotel/residence/rezidans2+1/rr7b"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\restaurant\\anarestoran\\,.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266635/salhotel/dining/anarestoran/nevunbtt7fu1x9cj31pf.jpg",
"publicId": "salhotel/dining/anarestoran/nevunbtt7fu1x9cj31pf"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\restaurant\\anarestoran\\2.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266636/salhotel/dining/anarestoran/2.jpg",
"publicId": "salhotel/dining/anarestoran/2"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\restaurant\\anarestoran\\3 (1).jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266636/salhotel/dining/anarestoran/3_1.jpg",
"publicId": "salhotel/dining/anarestoran/3_1"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\restaurant\\anarestoran\\3.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266637/salhotel/dining/anarestoran/3.jpg",
"publicId": "salhotel/dining/anarestoran/3"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\restaurant\\anarestoran\\4.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266638/salhotel/dining/anarestoran/4.jpg",
"publicId": "salhotel/dining/anarestoran/4"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\restaurant\\Pastane\\1a.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266639/salhotel/dining/pastane/1a.jpg",
"publicId": "salhotel/dining/pastane/1a"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\restaurant\\Pastane\\2a.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266640/salhotel/dining/pastane/2a.jpg",
"publicId": "salhotel/dining/pastane/2a"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\restaurant\\Pastane\\3a.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266640/salhotel/dining/pastane/3a.jpg",
"publicId": "salhotel/dining/pastane/3a"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\restaurant\\Pastane\\4a.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266641/salhotel/dining/pastane/4a.jpg",
"publicId": "salhotel/dining/pastane/4a"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\restaurant\\poseidonalacarte\\2p.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266642/salhotel/dining/poseidonalacarte/2p.jpg",
"publicId": "salhotel/dining/poseidonalacarte/2p"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\restaurant\\poseidonalacarte\\3p.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266642/salhotel/dining/poseidonalacarte/3p.jpg",
"publicId": "salhotel/dining/poseidonalacarte/3p"
},
{
"localPath": "C:\\Users\\ayris.dev\\salhotel\\docs\\restaurant\\poseidonalacarte\\4p.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776266644/salhotel/dining/poseidonalacarte/4p.jpg",
"publicId": "salhotel/dining/poseidonalacarte/4p"
}
]

View File

@@ -0,0 +1,38 @@
const cloudinary = require('cloudinary').v2;
require('dotenv').config({ path: '.env.local' });
cloudinary.config({
cloud_name: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME,
api_key: process.env.CLOUDINARY_API_KEY,
api_secret: process.env.CLOUDINARY_API_SECRET
});
async function listResources() {
try {
console.log('Fetching assets from Cloudinary...');
let allResources = [];
let nextCursor = null;
do {
const result = await cloudinary.api.resources({
type: 'upload',
prefix: 'salmakisyat/',
max_results: 500,
next_cursor: nextCursor
});
allResources = allResources.concat(result.resources);
nextCursor = result.next_cursor;
} while (nextCursor);
const mapping = allResources.map(res => ({
public_id: res.public_id,
folder: res.folder
}));
console.log(JSON.stringify(mapping, null, 2));
} catch (error) {
console.error('Error fetching resources:', error);
}
}
listResources();

622
scratch/upload_report.json Normal file
View File

@@ -0,0 +1,622 @@
{
"villa-melda": [
{
"localFile": "melda-36-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166899/salvilla/villa-melda/melda-36-800x550.jpg",
"public_id": "salvilla/villa-melda/melda-36-800x550"
},
{
"localFile": "melda-37-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166900/salvilla/villa-melda/melda-37-800x550.jpg",
"public_id": "salvilla/villa-melda/melda-37-800x550"
},
{
"localFile": "melda-38-800x550 (1).jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166901/salvilla/villa-melda/melda-38-800x550_1.jpg",
"public_id": "salvilla/villa-melda/melda-38-800x550_1"
},
{
"localFile": "melda-38-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166902/salvilla/villa-melda/melda-38-800x550.jpg",
"public_id": "salvilla/villa-melda/melda-38-800x550"
},
{
"localFile": "melda-39-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166903/salvilla/villa-melda/melda-39-800x550.jpg",
"public_id": "salvilla/villa-melda/melda-39-800x550"
},
{
"localFile": "melda-40-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166904/salvilla/villa-melda/melda-40-800x550.jpg",
"public_id": "salvilla/villa-melda/melda-40-800x550"
},
{
"localFile": "melda-41-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166905/salvilla/villa-melda/melda-41-800x550.jpg",
"public_id": "salvilla/villa-melda/melda-41-800x550"
},
{
"localFile": "melda-42-800x550 (1).jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166906/salvilla/villa-melda/melda-42-800x550_1.jpg",
"public_id": "salvilla/villa-melda/melda-42-800x550_1"
},
{
"localFile": "melda-42-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166908/salvilla/villa-melda/melda-42-800x550.jpg",
"public_id": "salvilla/villa-melda/melda-42-800x550"
},
{
"localFile": "melda-43-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166909/salvilla/villa-melda/melda-43-800x550.jpg",
"public_id": "salvilla/villa-melda/melda-43-800x550"
},
{
"localFile": "melda-44-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166910/salvilla/villa-melda/melda-44-800x550.jpg",
"public_id": "salvilla/villa-melda/melda-44-800x550"
},
{
"localFile": "melda-45-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166911/salvilla/villa-melda/melda-45-800x550.jpg",
"public_id": "salvilla/villa-melda/melda-45-800x550"
},
{
"localFile": "melda-49-scaled-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166911/salvilla/villa-melda/melda-49-scaled-800x550.jpg",
"public_id": "salvilla/villa-melda/melda-49-scaled-800x550"
},
{
"localFile": "melda-52-scaled-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166912/salvilla/villa-melda/melda-52-scaled-800x550.jpg",
"public_id": "salvilla/villa-melda/melda-52-scaled-800x550"
},
{
"localFile": "melda-53-scaled-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166914/salvilla/villa-melda/melda-53-scaled-800x550.jpg",
"public_id": "salvilla/villa-melda/melda-53-scaled-800x550"
},
{
"localFile": "melda-55-scaled-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166915/salvilla/villa-melda/melda-55-scaled-800x550.jpg",
"public_id": "salvilla/villa-melda/melda-55-scaled-800x550"
},
{
"localFile": "melda-57-scaled-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166915/salvilla/villa-melda/melda-57-scaled-800x550.jpg",
"public_id": "salvilla/villa-melda/melda-57-scaled-800x550"
},
{
"localFile": "melda-58-scaled-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166916/salvilla/villa-melda/melda-58-scaled-800x550.jpg",
"public_id": "salvilla/villa-melda/melda-58-scaled-800x550"
},
{
"localFile": "melda-60-scaled-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166917/salvilla/villa-melda/melda-60-scaled-800x550.jpg",
"public_id": "salvilla/villa-melda/melda-60-scaled-800x550"
},
{
"localFile": "melda-62-scaled-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166918/salvilla/villa-melda/melda-62-scaled-800x550.jpg",
"public_id": "salvilla/villa-melda/melda-62-scaled-800x550"
},
{
"localFile": "melda-63-scaled-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166919/salvilla/villa-melda/melda-63-scaled-800x550.jpg",
"public_id": "salvilla/villa-melda/melda-63-scaled-800x550"
},
{
"localFile": "melda-65-scaled-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166919/salvilla/villa-melda/melda-65-scaled-800x550.jpg",
"public_id": "salvilla/villa-melda/melda-65-scaled-800x550"
},
{
"localFile": "melda-67-scaled-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166920/salvilla/villa-melda/melda-67-scaled-800x550.jpg",
"public_id": "salvilla/villa-melda/melda-67-scaled-800x550"
}
],
"villa-meyra": [
{
"localFile": "leila-1.png",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166923/salvilla/villa-meyra/leila-1.png",
"public_id": "salvilla/villa-meyra/leila-1"
},
{
"localFile": "leila-10.png",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166925/salvilla/villa-meyra/leila-10.png",
"public_id": "salvilla/villa-meyra/leila-10"
},
{
"localFile": "leila-11.png",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166928/salvilla/villa-meyra/leila-11.png",
"public_id": "salvilla/villa-meyra/leila-11"
},
{
"localFile": "leila-12.png",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166930/salvilla/villa-meyra/leila-12.png",
"public_id": "salvilla/villa-meyra/leila-12"
},
{
"localFile": "leila-14.png",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166933/salvilla/villa-meyra/leila-14.png",
"public_id": "salvilla/villa-meyra/leila-14"
},
{
"localFile": "leila-16.png",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166936/salvilla/villa-meyra/leila-16.png",
"public_id": "salvilla/villa-meyra/leila-16"
},
{
"localFile": "leila-18.png",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166939/salvilla/villa-meyra/leila-18.png",
"public_id": "salvilla/villa-meyra/leila-18"
},
{
"localFile": "leila-19.png",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166942/salvilla/villa-meyra/leila-19.png",
"public_id": "salvilla/villa-meyra/leila-19"
},
{
"localFile": "leila-2.png",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166945/salvilla/villa-meyra/leila-2.png",
"public_id": "salvilla/villa-meyra/leila-2"
},
{
"localFile": "leila-20.png",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166947/salvilla/villa-meyra/leila-20.png",
"public_id": "salvilla/villa-meyra/leila-20"
},
{
"localFile": "leila-21.png",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166949/salvilla/villa-meyra/leila-21.png",
"public_id": "salvilla/villa-meyra/leila-21"
},
{
"localFile": "leila-22.png",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166952/salvilla/villa-meyra/leila-22.png",
"public_id": "salvilla/villa-meyra/leila-22"
},
{
"localFile": "leila-24.png",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166955/salvilla/villa-meyra/leila-24.png",
"public_id": "salvilla/villa-meyra/leila-24"
},
{
"localFile": "leila-26.png",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166957/salvilla/villa-meyra/leila-26.png",
"public_id": "salvilla/villa-meyra/leila-26"
},
{
"localFile": "leila-28.png",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166960/salvilla/villa-meyra/leila-28.png",
"public_id": "salvilla/villa-meyra/leila-28"
},
{
"localFile": "leila-29.png",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166962/salvilla/villa-meyra/leila-29.png",
"public_id": "salvilla/villa-meyra/leila-29"
},
{
"localFile": "leila-4.png",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166966/salvilla/villa-meyra/leila-4.png",
"public_id": "salvilla/villa-meyra/leila-4"
},
{
"localFile": "leila-5.png",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166969/salvilla/villa-meyra/leila-5.png",
"public_id": "salvilla/villa-meyra/leila-5"
},
{
"localFile": "leila-6.png",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166972/salvilla/villa-meyra/leila-6.png",
"public_id": "salvilla/villa-meyra/leila-6"
},
{
"localFile": "leila-7.png",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166973/salvilla/villa-meyra/leila-7.png",
"public_id": "salvilla/villa-meyra/leila-7"
},
{
"localFile": "leila-8.png",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166975/salvilla/villa-meyra/leila-8.png",
"public_id": "salvilla/villa-meyra/leila-8"
},
{
"localFile": "leila-9.png",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166977/salvilla/villa-meyra/leila-9.png",
"public_id": "salvilla/villa-meyra/leila-9"
}
],
"villa-su": [
{
"localFile": "SU-1-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166978/salvilla/villa-su/SU-1-800x550.jpg",
"public_id": "salvilla/villa-su/SU-1-800x550"
},
{
"localFile": "SU-11-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166980/salvilla/villa-su/SU-11-800x550.jpg",
"public_id": "salvilla/villa-su/SU-11-800x550"
},
{
"localFile": "SU-12-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166981/salvilla/villa-su/SU-12-800x550.jpg",
"public_id": "salvilla/villa-su/SU-12-800x550"
},
{
"localFile": "SU-13-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166981/salvilla/villa-su/SU-13-800x550.jpg",
"public_id": "salvilla/villa-su/SU-13-800x550"
},
{
"localFile": "SU-14-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166982/salvilla/villa-su/SU-14-800x550.jpg",
"public_id": "salvilla/villa-su/SU-14-800x550"
},
{
"localFile": "SU-16-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166983/salvilla/villa-su/SU-16-800x550.jpg",
"public_id": "salvilla/villa-su/SU-16-800x550"
},
{
"localFile": "SU-17-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166984/salvilla/villa-su/SU-17-800x550.jpg",
"public_id": "salvilla/villa-su/SU-17-800x550"
},
{
"localFile": "SU-18-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166985/salvilla/villa-su/SU-18-800x550.jpg",
"public_id": "salvilla/villa-su/SU-18-800x550"
},
{
"localFile": "SU-2-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166985/salvilla/villa-su/SU-2-800x550.jpg",
"public_id": "salvilla/villa-su/SU-2-800x550"
},
{
"localFile": "SU-20-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166986/salvilla/villa-su/SU-20-800x550.jpg",
"public_id": "salvilla/villa-su/SU-20-800x550"
},
{
"localFile": "SU-22-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166987/salvilla/villa-su/SU-22-800x550.jpg",
"public_id": "salvilla/villa-su/SU-22-800x550"
},
{
"localFile": "SU-24-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166988/salvilla/villa-su/SU-24-800x550.jpg",
"public_id": "salvilla/villa-su/SU-24-800x550"
},
{
"localFile": "SU-25-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166988/salvilla/villa-su/SU-25-800x550.jpg",
"public_id": "salvilla/villa-su/SU-25-800x550"
},
{
"localFile": "SU-26-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166989/salvilla/villa-su/SU-26-800x550.jpg",
"public_id": "salvilla/villa-su/SU-26-800x550"
},
{
"localFile": "SU-27-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166990/salvilla/villa-su/SU-27-800x550.jpg",
"public_id": "salvilla/villa-su/SU-27-800x550"
},
{
"localFile": "SU-28-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166991/salvilla/villa-su/SU-28-800x550.jpg",
"public_id": "salvilla/villa-su/SU-28-800x550"
},
{
"localFile": "SU-29-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166992/salvilla/villa-su/SU-29-800x550.jpg",
"public_id": "salvilla/villa-su/SU-29-800x550"
},
{
"localFile": "SU-3-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166993/salvilla/villa-su/SU-3-800x550.jpg",
"public_id": "salvilla/villa-su/SU-3-800x550"
},
{
"localFile": "SU-30-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166994/salvilla/villa-su/SU-30-800x550.jpg",
"public_id": "salvilla/villa-su/SU-30-800x550"
},
{
"localFile": "SU-31-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166994/salvilla/villa-su/SU-31-800x550.jpg",
"public_id": "salvilla/villa-su/SU-31-800x550"
},
{
"localFile": "SU-4-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166995/salvilla/villa-su/SU-4-800x550.jpg",
"public_id": "salvilla/villa-su/SU-4-800x550"
},
{
"localFile": "SU-5-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166996/salvilla/villa-su/SU-5-800x550.jpg",
"public_id": "salvilla/villa-su/SU-5-800x550"
},
{
"localFile": "SU-7-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166997/salvilla/villa-su/SU-7-800x550.jpg",
"public_id": "salvilla/villa-su/SU-7-800x550"
},
{
"localFile": "SU-8-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166998/salvilla/villa-su/SU-8-800x550.jpg",
"public_id": "salvilla/villa-su/SU-8-800x550"
}
],
"villa-tuncay": [
{
"localFile": "TUNCAY-1-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166999/salvilla/villa-tuncay/TUNCAY-1-800x550.jpg",
"public_id": "salvilla/villa-tuncay/TUNCAY-1-800x550"
},
{
"localFile": "TUNCAY-10-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776166999/salvilla/villa-tuncay/TUNCAY-10-800x550.jpg",
"public_id": "salvilla/villa-tuncay/TUNCAY-10-800x550"
},
{
"localFile": "TUNCAY-11-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167001/salvilla/villa-tuncay/TUNCAY-11-800x550.jpg",
"public_id": "salvilla/villa-tuncay/TUNCAY-11-800x550"
},
{
"localFile": "TUNCAY-12-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167001/salvilla/villa-tuncay/TUNCAY-12-800x550.jpg",
"public_id": "salvilla/villa-tuncay/TUNCAY-12-800x550"
},
{
"localFile": "TUNCAY-14-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167002/salvilla/villa-tuncay/TUNCAY-14-800x550.jpg",
"public_id": "salvilla/villa-tuncay/TUNCAY-14-800x550"
},
{
"localFile": "TUNCAY-16-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167003/salvilla/villa-tuncay/TUNCAY-16-800x550.jpg",
"public_id": "salvilla/villa-tuncay/TUNCAY-16-800x550"
},
{
"localFile": "TUNCAY-17-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167004/salvilla/villa-tuncay/TUNCAY-17-800x550.jpg",
"public_id": "salvilla/villa-tuncay/TUNCAY-17-800x550"
},
{
"localFile": "TUNCAY-18-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167005/salvilla/villa-tuncay/TUNCAY-18-800x550.jpg",
"public_id": "salvilla/villa-tuncay/TUNCAY-18-800x550"
},
{
"localFile": "TUNCAY-19-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167006/salvilla/villa-tuncay/TUNCAY-19-800x550.jpg",
"public_id": "salvilla/villa-tuncay/TUNCAY-19-800x550"
},
{
"localFile": "TUNCAY-2-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167007/salvilla/villa-tuncay/TUNCAY-2-800x550.jpg",
"public_id": "salvilla/villa-tuncay/TUNCAY-2-800x550"
},
{
"localFile": "TUNCAY-20-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167008/salvilla/villa-tuncay/TUNCAY-20-800x550.jpg",
"public_id": "salvilla/villa-tuncay/TUNCAY-20-800x550"
},
{
"localFile": "TUNCAY-22-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167008/salvilla/villa-tuncay/TUNCAY-22-800x550.jpg",
"public_id": "salvilla/villa-tuncay/TUNCAY-22-800x550"
},
{
"localFile": "TUNCAY-23-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167009/salvilla/villa-tuncay/TUNCAY-23-800x550.jpg",
"public_id": "salvilla/villa-tuncay/TUNCAY-23-800x550"
},
{
"localFile": "TUNCAY-25-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167010/salvilla/villa-tuncay/TUNCAY-25-800x550.jpg",
"public_id": "salvilla/villa-tuncay/TUNCAY-25-800x550"
},
{
"localFile": "TUNCAY-27-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167011/salvilla/villa-tuncay/TUNCAY-27-800x550.jpg",
"public_id": "salvilla/villa-tuncay/TUNCAY-27-800x550"
},
{
"localFile": "TUNCAY-28-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167012/salvilla/villa-tuncay/TUNCAY-28-800x550.jpg",
"public_id": "salvilla/villa-tuncay/TUNCAY-28-800x550"
},
{
"localFile": "TUNCAY-3-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167013/salvilla/villa-tuncay/TUNCAY-3-800x550.jpg",
"public_id": "salvilla/villa-tuncay/TUNCAY-3-800x550"
},
{
"localFile": "TUNCAY-4-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167014/salvilla/villa-tuncay/TUNCAY-4-800x550.jpg",
"public_id": "salvilla/villa-tuncay/TUNCAY-4-800x550"
},
{
"localFile": "TUNCAY-5-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167015/salvilla/villa-tuncay/TUNCAY-5-800x550.jpg",
"public_id": "salvilla/villa-tuncay/TUNCAY-5-800x550"
},
{
"localFile": "TUNCAY-7-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167016/salvilla/villa-tuncay/TUNCAY-7-800x550.jpg",
"public_id": "salvilla/villa-tuncay/TUNCAY-7-800x550"
},
{
"localFile": "TUNCAY-8-800x550.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167016/salvilla/villa-tuncay/TUNCAY-8-800x550.jpg",
"public_id": "salvilla/villa-tuncay/TUNCAY-8-800x550"
}
],
"villa-yalikavak": [
{
"localFile": "10.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167017/salvilla/villa-yalikavak/10.jpg",
"public_id": "salvilla/villa-yalikavak/10"
},
{
"localFile": "11.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167018/salvilla/villa-yalikavak/11.jpg",
"public_id": "salvilla/villa-yalikavak/11"
},
{
"localFile": "12.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167019/salvilla/villa-yalikavak/12.jpg",
"public_id": "salvilla/villa-yalikavak/12"
},
{
"localFile": "13.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167019/salvilla/villa-yalikavak/13.jpg",
"public_id": "salvilla/villa-yalikavak/13"
},
{
"localFile": "14.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167020/salvilla/villa-yalikavak/14.jpg",
"public_id": "salvilla/villa-yalikavak/14"
},
{
"localFile": "15.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167021/salvilla/villa-yalikavak/15.jpg",
"public_id": "salvilla/villa-yalikavak/15"
},
{
"localFile": "16.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167021/salvilla/villa-yalikavak/16.jpg",
"public_id": "salvilla/villa-yalikavak/16"
},
{
"localFile": "17.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167022/salvilla/villa-yalikavak/17.jpg",
"public_id": "salvilla/villa-yalikavak/17"
},
{
"localFile": "18.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167023/salvilla/villa-yalikavak/18.jpg",
"public_id": "salvilla/villa-yalikavak/18"
},
{
"localFile": "19.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167024/salvilla/villa-yalikavak/19.jpg",
"public_id": "salvilla/villa-yalikavak/19"
},
{
"localFile": "2.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167024/salvilla/villa-yalikavak/2.jpg",
"public_id": "salvilla/villa-yalikavak/2"
},
{
"localFile": "20.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167025/salvilla/villa-yalikavak/20.jpg",
"public_id": "salvilla/villa-yalikavak/20"
},
{
"localFile": "21.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167026/salvilla/villa-yalikavak/21.jpg",
"public_id": "salvilla/villa-yalikavak/21"
},
{
"localFile": "22.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167026/salvilla/villa-yalikavak/22.jpg",
"public_id": "salvilla/villa-yalikavak/22"
},
{
"localFile": "23.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167027/salvilla/villa-yalikavak/23.jpg",
"public_id": "salvilla/villa-yalikavak/23"
},
{
"localFile": "24.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167028/salvilla/villa-yalikavak/24.jpg",
"public_id": "salvilla/villa-yalikavak/24"
},
{
"localFile": "25.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167028/salvilla/villa-yalikavak/25.jpg",
"public_id": "salvilla/villa-yalikavak/25"
},
{
"localFile": "26.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167029/salvilla/villa-yalikavak/26.jpg",
"public_id": "salvilla/villa-yalikavak/26"
},
{
"localFile": "27.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167030/salvilla/villa-yalikavak/27.jpg",
"public_id": "salvilla/villa-yalikavak/27"
},
{
"localFile": "28.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167031/salvilla/villa-yalikavak/28.jpg",
"public_id": "salvilla/villa-yalikavak/28"
},
{
"localFile": "29.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167031/salvilla/villa-yalikavak/29.jpg",
"public_id": "salvilla/villa-yalikavak/29"
},
{
"localFile": "3.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167033/salvilla/villa-yalikavak/3.jpg",
"public_id": "salvilla/villa-yalikavak/3"
},
{
"localFile": "30.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167033/salvilla/villa-yalikavak/30.jpg",
"public_id": "salvilla/villa-yalikavak/30"
},
{
"localFile": "31.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167035/salvilla/villa-yalikavak/31.jpg",
"public_id": "salvilla/villa-yalikavak/31"
},
{
"localFile": "4.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167036/salvilla/villa-yalikavak/4.jpg",
"public_id": "salvilla/villa-yalikavak/4"
},
{
"localFile": "5.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167036/salvilla/villa-yalikavak/5.jpg",
"public_id": "salvilla/villa-yalikavak/5"
},
{
"localFile": "6.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167037/salvilla/villa-yalikavak/6.jpg",
"public_id": "salvilla/villa-yalikavak/6"
},
{
"localFile": "7.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167038/salvilla/villa-yalikavak/7.jpg",
"public_id": "salvilla/villa-yalikavak/7"
},
{
"localFile": "8.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167039/salvilla/villa-yalikavak/8.jpg",
"public_id": "salvilla/villa-yalikavak/8"
},
{
"localFile": "9.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167040/salvilla/villa-yalikavak/9.jpg",
"public_id": "salvilla/villa-yalikavak/9"
},
{
"localFile": "master-bedroom.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167041/salvilla/villa-yalikavak/master-bedroom.jpg",
"public_id": "salvilla/villa-yalikavak/master-bedroom"
},
{
"localFile": "YALIKAVAK-VILLA-1.jpg",
"url": "https://res.cloudinary.com/du7xohbct/image/upload/v1776167042/salvilla/villa-yalikavak/YALIKAVAK-VILLA-1.jpg",
"public_id": "salvilla/villa-yalikavak/YALIKAVAK-VILLA-1"
}
]
}

View File

@@ -0,0 +1,85 @@
const cloudinary = require('cloudinary').v2;
require('dotenv').config({ path: '.env.local' });
const fs = require('fs');
const path = require('path');
cloudinary.config({
cloud_name: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME,
api_key: process.env.CLOUDINARY_API_KEY,
api_secret: process.env.CLOUDINARY_API_SECRET
});
const CLOUDINARY_ROOT = 'salhotel';
async function uploadFile(filePath, cloudinaryFolder) {
console.log(`Uploading ${filePath} to ${cloudinaryFolder}...`);
try {
const result = await cloudinary.uploader.upload(filePath, {
folder: `${CLOUDINARY_ROOT}/${cloudinaryFolder}`,
use_filename: true,
unique_filename: false,
overwrite: true
});
console.log(`Successfully uploaded: ${result.public_id}`);
return {
localPath: filePath,
url: result.secure_url,
publicId: result.public_id
};
} catch (e) {
console.error(`Failed to upload ${filePath}:`, e.message);
return null;
}
}
async function scanAndUpload(dir, currentCloudinaryPath = '') {
const entries = fs.readdirSync(dir, { withFileTypes: true });
let results = [];
for (const entry of entries) {
const fullPath = path.join(dir, entry.name);
if (entry.isDirectory()) {
// Normalize folder names for Cloudinary (e.g., konaklama -> rooms)
let nextCloudinaryPath = currentCloudinaryPath;
const folderName = entry.name.toLowerCase();
if (folderName === 'konaklama') nextCloudinaryPath = ''; // Root konaklama
else if (folderName === 'odalar') nextCloudinaryPath = 'rooms';
else if (folderName === 'rezidans') nextCloudinaryPath = 'residence';
else if (folderName === 'restaurant') nextCloudinaryPath = 'dining';
else {
nextCloudinaryPath = currentCloudinaryPath ? `${currentCloudinaryPath}/${folderName}` : folderName;
}
const recursiveResults = await scanAndUpload(fullPath, nextCloudinaryPath);
results = results.concat(recursiveResults);
} else {
const ext = path.extname(entry.name).toLowerCase();
if (['.jpg', '.jpeg', '.png', '.webp'].includes(ext)) {
const uploadResult = await uploadFile(fullPath, currentCloudinaryPath);
if (uploadResult) {
results.push(uploadResult);
}
}
}
}
return results;
}
async function main() {
const docsDir = path.join(process.cwd(), 'docs');
if (!fs.existsSync(docsDir)) {
console.error('Docs directory not found!');
return;
}
console.log('--- Starting Resort Photos Upload ---');
const allUploads = await scanAndUpload(docsDir);
fs.writeFileSync('scratch/resort_upload_report.json', JSON.stringify(allUploads, null, 2));
console.log(`\nUpload completed! ${allUploads.length} images processed.`);
console.log('Report saved to scratch/resort_upload_report.json');
}
main();