This apartment features 1 living room, 1 separate bedroom and 1 bathroom with a shower and free toiletries. Guests will find a stovetop, a refrigerator, kitchenware and an oven in the kitchen. The apartment also comes with a barbecue. The apartment has tiled floors, a seating area with a flat-screen TV, a tea and coffee maker, a dining area as well as garden views. The unit has 3 beds.
View photo gallery
GALLERY
Apartment Amenities
TV
Wifi
Coat rack
Air conditioning
Iron
Shower
Flat screen TV
Dining room
Refrigerator
Tea/Coffee maker
Kitchenware
Outdoor furniture
Outdoor dining area
Oven
Stovetop
Barbecue
Dining area
Dining table
Free toiletries
Bidet
Toilet
Bathtub or shower
Hairdryer
Toilet paper
Garden view
Landmark view
City view
Carbon monoxide detector
Flat-screen TV
Sofa
Iron
Fan
Drying rack for clothing
Towels
Private apartment in building
Ironing facilities
Sitting area
Socket near the bed
Detached
Linens
Entire unit located on ground floor
Tile/Marble floor
Kitchenette
Kitchen
Sofa bed
Heating
Wardrobe or closet
Cleaning products
Mosquito net
Clothes rack
Columns with icons
Add a title
An icon is worth a thousand words. Use this space to focus on the thing which make you great.
Add a title
An icon is worth a thousand words. Use this space to focus on the thing which make you great.
Add a title
An icon is worth a thousand words. Use this space to focus on the thing which make you great.
I Castagnini✕
Ciao! Sono l'assistente virtuale de I Castagnini. Come posso aiutarti? 🌿
I Castagnini✕
Ciao! Sono l'assistente virtuale de I Castagnini. Come posso aiutarti? 🌿
const IC_WORKER_URL = "https://castagnini-chatbot-proxy.marco-norchi.workers.dev/";
let icHistory = [];
function icToggleChat() {
const win = document.getElementById('ic-chat-window');
win.style.display = (win.style.display === 'flex') ? 'none' : 'flex';
}
async function icSendMessage() {
const input = document.getElementById('ic-chat-input');
const text = input.value.trim();
if (!text) return;
icAddMessage('user', text);
icHistory.push({ role: 'user', content: text });
input.value = '';
icAddMessage('bot', '...');
try {
const response = await fetch(IC_WORKER_URL, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ messages: icHistory })
});
const data = await response.json();
icRemoveLastBotMessage();
if (data.reply) {
icAddMessage('bot', data.reply);
icHistory.push({ role: 'assistant', content: data.reply });
} else {
icAddMessage('bot', 'Mi dispiace, si è verificato un errore. Riprova tra poco.');
}
} catch (err) {
icRemoveLastBotMessage();
icAddMessage('bot', 'Mi dispiace, non riesco a rispondere in questo momento.');
}
}
function icAddMessage(role, text) {
const container = document.getElementById('ic-chat-messages');
const div = document.createElement('div');
div.className = 'ic-msg ' + role;
div.innerHTML = '';
div.querySelector('.bubble').textContent = text;
container.appendChild(div);
container.scrollTop = container.scrollHeight;
}
function icRemoveLastBotMessage() {
const container = document.getElementById('ic-chat-messages');
container.removeChild(container.lastElementChild);
}
const IC_WORKER_URL = "https://castagnini-chatbot-proxy.marco-norchi.workers.dev/";
let icHistory = [];
function icToggleChat() {
const win = document.getElementById('ic-chat-window');
win.style.display = (win.style.display === 'flex') ? 'none' : 'flex';
}
async function icSendMessage() {
const input = document.getElementById('ic-chat-input');
const text = input.value.trim();
if (!text) return;
icAddMessage('user', text);
icHistory.push({ role: 'user', content: text });
input.value = '';
icAddMessage('bot', '...');
try {
const response = await fetch(IC_WORKER_URL, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ messages: icHistory })
});
const data = await response.json();
icRemoveLastBotMessage();
if (data.reply) {
icAddMessage('bot', data.reply);
icHistory.push({ role: 'assistant', content: data.reply });
} else {
icAddMessage('bot', 'Mi dispiace, si è verificato un errore. Riprova tra poco.');
}
} catch (err) {
icRemoveLastBotMessage();
icAddMessage('bot', 'Mi dispiace, non riesco a rispondere in questo momento.');
}
}
function icAddMessage(role, text) {
const container = document.getElementById('ic-chat-messages');
const div = document.createElement('div');
div.className = 'ic-msg ' + role;
div.innerHTML = '';
div.querySelector('.bubble').textContent = text;
container.appendChild(div);
container.scrollTop = container.scrollHeight;
}
function icRemoveLastBotMessage() {
const container = document.getElementById('ic-chat-messages');
container.removeChild(container.lastElementChild);
}