```python
def generate_description(data):
description_template = (
" в {Towns.title} {Areas.title}, район {Districts.title}. "
"Адрес: , дом . "
"Метро: {Subways.title} - мин, {SecondSubways.title} - мин, {ThirdSubways.title} - мин. "
"Удобства: . "
"Характеристики: , площадь м², цена руб."
)
description = description_template.format(
TypeName=data.get('TypeName', '').capitalize(),
TypeNameReverse=data.get('TypeNameReverse', '').lower(),
TypeNameGen=data.get('TypeNameGen', '').lower(),
ObjectTypeName=data.get('ObjectTypeName', '').capitalize(),
ObjectTypeNameShort=data.get('ObjectTypeNameShort', '').lower(),
Category=data.get('Category', '').capitalize(),
Towns={'title': data.get('Towns.title', '').capitalize(), 'gent': data.get('Towns.gent', '').lower(), 'loct': data.get('Towns.loct', '').lower()},
Areas={'title': data.get('Areas.title', '').capitalize()},
Districts={'title': data.get('Districts.title', '').capitalize()},
Subways={'title': data.get('Subways.title', '').capitalize(), 'time': data.get('TimeToMetroCool', '')},
SecondSubways={'title': data.get('SecondSubways.title', '').capitalize(), 'time': data.get('TimeToMetroSecondCool', '')},
ThirdSubways={'title': data.get('ThirdSubways.title', '').capitalize(), 'time': data.get('TimeToMetroThirdCool', '')},
Address=data.get('Address', '').capitalize(),
Street=data.get('Street', '').capitalize(),
House=data.get('House', ''),
Corpus=f", корпус {data.get('Corpus', '')}" if data.get('Corpus', '') else '',
Facilities=data.get('Facilities', '').lower(),
rooms_type=data.get('rooms-type', '').lower(),
total_area=data.get('total-area', ''),
price=f"{int(data.get('price', 0)):,.0f}"
)
return description
# Пример использования:
data = {
'TypeName': 'продажа',
'TypeNameReverse': 'купить',
'TypeNameGen': 'продается',
'ObjectTypeName': 'квартира',
'ObjectTypeNameShort': 'кв.',
'Category': 'жилая',
'Towns.title': 'Москва',
'Towns.gent': 'Москвы',
'Towns.loct': 'Москве',
'Areas.title': 'ЦАО',
'Districts.title': 'Арбат',
'Subways.title': 'Смоленская',
'TimeToMetroCool': '5',
'SecondSubways.title': 'Арбатская',
'TimeToMetroSecondCool': '10',
'ThirdSubways.title': 'Киевская',
'TimeToMetroThirdCool': '15',
'Address': 'Новинский бульвар',
'Street': 'Новинский бульвар',
'House': '22',
'Corpus': '2',
'Facilities': 'интернет, телефон, парковка, мусоропровод',
'rooms-type': 'студия',
'total-area': '50',
'price': '12000000'
}
description = generate_description(data)
print(description)
```