const ROOM_TYPES = { economy: { id: '2x-местный', name: '2x-местный', pricePerGuest: 1500 }, standard: { id: '3х-местный', name: '3х-местный', pricePerGuest: 2000 }, family: { id: 'Семейный', name: 'Семейный', pricePerGuest: 3000 }, vip: { id: 'Люкс', name: 'Люкс', pricePerGuest: 4500 } }; const BOOKING_STATUSES = { NEW: 'новая', PAID: 'оплачена', RESERVED: 'зарезервирована', CHECKED_IN: 'заселена', CHECKED_OUT: 'выехала', CANCELLED: 'отменена' }; const DEFAULT_ROOMS = [ { type: ROOM_TYPES.economy.id, name: '2x-местный 1', description: 'Номер на двоих', rooms_count: 15, single_beds: 0, double_beds: 1, has_sofa: 0, has_ac: 1, has_wifi: 1, has_shower: 1, max_guests: 2, price_per_guest: ROOM_TYPES.economy.pricePerGuest }, { type: ROOM_TYPES.standard.id, name: '3х-местный 1', description: 'Номер на троих', rooms_count: 8, single_beds: 0, double_beds: 1, has_sofa: 0, has_ac: 1, has_wifi: 1, has_shower: 1, max_guests: 3, price_per_guest: ROOM_TYPES.standard.pricePerGuest }, { type: ROOM_TYPES.family.id, name: 'Семейный 1', description: 'Семейный номер', rooms_count: 4, single_beds: 0, double_beds: 2, has_sofa: 0, has_ac: 1, has_wifi: 1, has_shower: 1, max_guests: 4, price_per_guest: ROOM_TYPES.family.pricePerGuest }, { type: ROOM_TYPES.vip.id, name: 'Люкс 1', description: 'Люкс', rooms_count: 3, single_beds: 0, double_beds: 1, has_sofa: 1, has_ac: 1, has_wifi: 1, has_shower: 1, max_guests: 4, price_per_guest: ROOM_TYPES.vip.pricePerGuest } ]; const ROOM_PRICES = { [ROOM_TYPES.economy.id]: ROOM_TYPES.economy.pricePerGuest, [ROOM_TYPES.standard.id]: ROOM_TYPES.standard.pricePerGuest, [ROOM_TYPES.family.id]: ROOM_TYPES.family.pricePerGuest, [ROOM_TYPES.vip.id]: ROOM_TYPES.vip.pricePerGuest }; const STATUS_LIST = [ BOOKING_STATUSES.NEW, BOOKING_STATUSES.PAID, BOOKING_STATUSES.RESERVED, BOOKING_STATUSES.CHECKED_IN, BOOKING_STATUSES.CHECKED_OUT, BOOKING_STATUSES.CANCELLED ]; const ROOM_TYPE_LIST = [ '2x-местный', '3х-местный', 'Семейный', 'Люкс' ]; function getRoomPrice(roomType) { return ROOM_PRICES[roomType] || 0; } function calculateNights(checkin, checkout) { const ci = new Date(checkin); const co = new Date(checkout); return Math.ceil((co - ci) / (1000 * 60 * 60 * 24)); } function calculateBasePrice(roomType, checkin, checkout) { const pricePerNight = getRoomPrice(roomType); const nights = calculateNights(checkin, checkout); return pricePerNight * nights; } module.exports = { ROOM_TYPES, BOOKING_STATUSES, DEFAULT_ROOMS, ROOM_PRICES, STATUS_LIST, ROOM_TYPE_LIST, getRoomPrice, calculateNights, calculateBasePrice };