--- tags: +AgentCRM --- # Создание объекта недвижимости ## Основные концепции В первую очередь пользователь выбирает **тип** объекта и **категорию** объявления. После этого идёт запрос на сервер и загружаются разделы и поля для данного типа и категории и в результате рендерится постраничная форма. Пользователь заполняет поля в разделе; перед переходом к следующему происходит валидация. К предыдущим разделам можно вернуться с помощью кнопок навигации по форме (далее и назад). ## Разделы и поля Разделы: - [Основное](#Поля-в-разделе-“Основное”) - [Собственники](#Поля-в-разделе-“Собственник”) - [Об объекте](#Поля-в-разделе-“Об-объекте”) - [Отделка и мебель](#Поля-в-разделе-“Отделка-и-мебель”) | *Квартира, комната, частный дом* - [О здании](#Поля-в-разделе-“О-здании”) | *Квартира, комната, частный дом* - [Объявление](#Поля-в-разделе-“Объявление”) ### Поля в разделе "Основное" 1. Адрес - Тип: *Адрес* - Обязательное 1. Размер доли | *Доля в квартире* - Тип: *Доля* - Обязательное 1. Номер квартиры | *Квартира*, *Доля в квартире*, *Комната* - Тип: строка - Ограничения: рег. `/^\d{1,5}[A-zА-я/]{0,5}$/` - Пояснение: “Номер квартиры в системе не видит никто, кроме участников объявления”. 1. Номер комнаты | *Квартира*, *Комната* - Тип: строка - Ограничения: рег. `/^\d{1,5}[A-zА-я/]{0,5}$/` - Пояснение: “Номер комнаты в системе не видит никто, кроме участников объявления”. 1. Номер подъезда | *Квартира*, *Доля в квартире*, *Комната* - Тип: число - Ограничения: целое, больше 0, меньше 1000 1. Номер | *Гараж* - Тип: строка - Ограничения: рег. `/^\d{1,5}[A-zА-я/]{0,5}$/` 1. Кадастровый номер - Тип: строка - Ограничения: рег. `/[0-9:]{16,24}/` - Пояснение: “Кадастровый номер всегда можно найти на сайте ЕГРП 365”. ### Поля в разделе "Собственник" 1. Имя - Тип: строка - Обязательное - Ограничения: не менее 2, не более 256 1. Фамилия - Тип: строка - Ограничения: не менее 2, не более 256 1. Отчество - Тип: строка - Ограничения: не менее 2, не более 256 1. Дата рождения - Тип: дата 1. Контактные телефоны: - Тип: *СписокТелефонов* - Обязательное - Пояснение: “Добавьте больше номеров, если у собственника есть дополнительные контактные лица.” 1. Электронная почта - Тип: строка - Ограничения: email 1. Тип собственника - Тип: выбор одного - Обязательное - Варианты: - Физ. лицо - Юр. лицо - Агентство 1. Название компании - Тип: [*НазваниеКомпании*](#НазваниеКомпании) (не показывается для типа собственника "Физ. лицо") 1. ОГРН предприятия: - Тип: [*ОгрнПредприятия*](#ОгрнПредприятия) (показывается только для типа собственника "Юр. лицо") 1. ИНН предприятия: - Тип: [*ИннПредприятия*](#ИннПредприятия) (показывается только для типа собственника "Юр. лицо") ### Поля в разделе "Об объекте" 1. Подтип объекта: - Тип: ПодтипОбъекта - Обязательное 1. Площадь объекта | *все, кроме Участка* - Тип: число - Обязательное - Ограничения: больше 0, менее 10,000,000 1. Площадь участка, сот | *Участок* - Тип: число - Обязательное - Ограничения: больше 0, менее 10,000,000 1. Площадь участка, сот | *Частный дом* - Тип: число - Ограничения: больше 0, менее 10,000,000 1. Жилая площадь | *Квартира*, *Доля в квартире* - Тип: число - Обязательное - Ограничения: больше 0, менее 10,000,000 1. Количесто комнат | *Квартира*, *Доля в квартире* - Тип: [*КоличествоКомнат*](#КоличествоКомнат) - Обязательное 1. Кухня гостинная | *Квартира*, *Доля в квартире* - Тип: [*КухняГостинная*](#КухняГостинная) - Обязательное 1. Количесто спален | *Частный дом* - Тип: число - Обязательное - Ограничения: целое, больше 0, меньше 1000 1. Кухня-гостинная | *Квартира*, *Доля в квартире* - Тип: логический - Обязательное 1. Комнат в секции | *Комната* - Тип: число - Обязательное - Ограничения: целое, больше 0, менее 1000 1. Этаж | *Квартира*, *Доля в квартире*, *Комната* - Тип: число - Обязательное - Ограничения: целое, больше 0, менее 1000 1. Этажей в квартире | *Квартира*, *Доля в квартире* - Тип: число - Обязательное - Ограничения: целое, больше 0, менее 100 - По умолчанию: 1 1. Санузел | *Квартира*, *Доля в квартире*, *Комната*, *Частный дом* - Тип: выбор одного - Обязательное - Варианты: - Совмещенный - Раздельный - Несколько 1. Балкон | *Квартира - Тип: выбор одного - Обязательное - Варианты: - Нет - Есть балкон - Есть лоджия - Несколько 1. Куда выходят окна | *Квартира*, *Доля в квартире*, *Комната* - Тип: выбор одного - Обязательное - Варианты: - Двор - Улица - Во двор и на улицу 1. Высота потолков | *Квартира*, *Доля в квартире*, *Комната*, *Частный дом*, *Гараж* - Тип: число - Ограничения: больше 0, не менее 10,000,000 1. Сделана перепланировка | *Квартира*, *Доля в квартире* - Тип: логический - Обязательное - Пояснение: “Перепланировка – когда планировка в квартире отличается от технического плана.” 1. Планировка комнат | *Квартира*, *Доля в квартире* - Тип: выбор одного - Варианты: - Изолированные - Проходные - Смешанные - Свободная 1. Планировка | *Квартира*, *Доля в квартире* - Тип: [*Изображение*](#Изображение) 1. Статус земли | *Участок*, *Частный дом* - Тип: выбор одного - Варианты: - Индивидуальное жилищное строительство (ИСЖ) - Фермерское хозяйство (КХФ) - Личное подсобное хозяйство (ЛПХ) - Садоводство - Дачное строительство - Промышленное назначение 1. Газоснабжение | *Участок* - Тип: логический 1. Электричество | *Участок* - Тип: логический 1. Водоснабжение | *Участок* - Тип: логический 1. Канализация | *Участок* - Тип: логический ### Поля в разделе "Отделка и мебель" 1. Отделка - Тип: выбор нескольких - Обязательное - Пояснение: “Выберите несколько вариантов, если в разных помещениях выполнена разная отделка.” - Варианты: - Черновая отделка - Требуется ремонт - Косметический ремонт - Евроремонт - Дизайнерский ремонт 1. Материал окон - Тип: выбор нескольких - Пояснение: “Выберите несколько вариантов, если в разных помещениях установлены разные типы окон.” - Варианты: - Алюминиевые - Деревянные - Евро окна - Пластиковые - Комбинированные 1. Мебель - Тип: выбор одного - Обязательное - Варианты: - Нет мебели - Есть только необходимое - Остаётся часть мебели - Остаётся вся мебель 1. Стоимость и состояние мебели: - Тип: выбор одного - Пояснение: `Оцените стоимость мебели на данный момент с учётом её состояния.` - Варианты: - Бюджетная - Стандартная - Дорогая - Элитная 1. Техника: - Тип: выбор одного - Обязательное - Варианты: - Нет мебели - Есть только необходимое - Остаётся часть техники - Остаётся вся техника 1. Стоимость и состояние техники: - Тип: выбор одного - Пояснение: `Оцените стоимость техники на данный момент с учётом её состояния.` - Варианты: - Бюджетная - Стандартная - Дорогая ### Поля раздела "О здании" 1. Количество этажей - Тип: число - Обязательное - Ограничения: целое, больше 0, менее 1000 1. Проект | *Квартира*, *Доля в квартире* - Тип: асинхронный выбор одного с поиском 1. Здание сдано? | "Квартира", *Доля в квартире* - Тип: логический - Обязательное 1. Год сдачи дома: - Тип: число - Ограничения: целое, больше 1600, менее 10000 1. Материал стен: - Тип: выбор одного - Варианты: - Блочный - Щитовой - Кирпичный - Монолитный - Монолитно-кирпичный - Панельный - Каркасный - Деревянный 1. Количество подъездов | *Квартира*, *Доля в квартире*, *Комната* - Тип: число - Ограничения: целое, больше 0, менее 1000 1. Пассажирские лифты | *Квартира*, *Доля в квартире*, *Комната*: - Обязательное: да - Тип: логический 1. Грузовые лифты | *Квартира*, *Доля в квартире*, *Комната*: - Обязательное: да - Тип: логический 1. Отопление - Тип: логический 1. Холодное водоснабжение - Тип: логический 1. Горячее водоснабжение - Тип: логический 1. Электроснабжение - Тип: логический 1. Газоснабжение: - Тип: логический 1. Канализация - Тип: логический 1. Видеонаблюдение - Тип: логический 1. Консьерж | *Квартира*, *Доля в квартире*, *Комната* - Тип: логический 1. Мусоропровод | *Квартира*, *Доля в квартире*, *Комната* - Тип: логический 1. Парковка - Тип: выбор одного - Варианты: - Отсутствует - Подземная - Придомовая - На крыше ### Поля раздела "Объявление" 1. Цена - Тип: число - Обязательное - Ограничения: целое, больше 0 - Доп. проверка: если категория объявления "Продажа", проверить, что цена больше 10000 1. Ликвидность цены - Тип: [*Ликвидность*](#Ликвидность) - Обязательное - Пояснение: `Оцените соотношение цены-качества этого объекта` - Варианты: - Отличная (Зеленая) - Хорошая (Синяя) - Нормальная (Оранжевая) 1. Размер залога | *Аренда* - Тип: число - Обязательное - Ограничения: целое, больше 0 1. Срок сдачи | *Аренда* - Тип: выбор одного - Обязательное - Варианты: - Посучточно - На несколько месяцев - Длительный 1. Обременение | *Продажа* - Тип: логический - Обязательный 1. Описание - Тип: текст - Обязательное - Ограничения: больше 40 символов 1. Дополнительные статусы - Тип: [*ДопСтатусы*](#ДопСтатусы) 1. Фотографии - Тип: [*Фотографии*](#Фотографии) - Ограничения: не менее двух 1. Видео YouTube - Тип: строка - Ограничение: url 1. Администратор объявления: - Тип: [*ВыборСпециалиста*](#ВыборСпециалиста) 1. Администратор объявления: - Тип: [*ВыборСпециалиста*](#ВыборСпециалиста) 1. Дополнительные специалисты: - Тип: [*ВыборСпециалиста*](#ВыборСпециалиста) (с возможностью выбора нескольких) ### Типы полей #### Адрес Реализация этого поля является отдельной задачей ввиду его крайне высокой сложности и не раскрывается в данном документе. #### НазваниеКомпании - Описание: представляет собой поле с вводом строки. Показывается только для типа собственника "Юр. лицо" и "Агентство") - Ограничения: не короче 2 символов, не длинее 512 #### ОгрнПредприятия - Описание: представляет собой поле с вводом строки. Показывается только для типа собственника "Юр. лицо") - Ограничения: не короче 2 символов, не длинее 512 #### ИннПредприятия - Описание: представляет собой поле с вводом строки. Показывается только для типа собственника "Юр. лицо") - Ограничения: не короче 2 символов, не длинее 512 #### КоличествоКомнат - Описание: представляет собой поле с вводом числа. Не показывается, если выбран подтип объекта "Студия" - Ограничения: целое; больше 0, менее 1000 - Доп. параметры: - Наименование поля с подтипом #### КухняГостинная - Описание: представляет собой логическое поле; не показывается, если выбран подтип объекта "Студия" - Доп. параметры: - Наименование поля с подтипом - По умолчанию: ложь #### Изображение - **Сложное поле** - Универсальное поле - Описание: загрузка одного изображения. - Особое поведение: должно быть ограничение на максимальный размер файла: 16 мегабайт. #### Ликидность - Описание: представляет собой выбор одного элемента; варианты имеют цвет текста #### Фотографии - **Сложное поле** - Универсальное поле - Описание: загрузка нескольких изображений с возможностью изменения порядка - Особое поведение: изображение на сервере должно быть сжато до 1200 пикселей по длинной стороне (если длинная сторона больше этого размера). Должно быть ограничение на максимальный размер файла: 16 мегабайт. - Доп. параметры: - Ограничение на минимальное количество фото - Ограничение на максимальное количество фото #### ВыборСпециалиста - **Сложное поле** - Описание: представляет собой асинхронный выбор одного или несколько элементов с поиском. У каждого элемента есть аватар. Невозможно отменить выбор поля с выбором одного. - Особое поведение: если пользователь - администратор, то устанавливается автоматически в поле "Администратор"; если пользователь - агент, то устанавливается автоматически в поле "Главный агент". - Доп. параметры: - Адрес получения вариантов по поиску - Выбор одного или нескольких (логический) - Ограничения: максимальное количество выбранных элементов в режиме выбора нескольких: 10 - Доп. проверка: должно быть установлено либо поле "Администратор", либо поле "Главный агент". Специалист, установленный в поле "Главный агент" должен быть агентом, а специалист, установленный в поле "Администратор" должен быть администратором. Каждый специалист в поле "Дополнительные агенты" должны быть агентами. #### ДопСтатусы - **Сложное поле** - Описание: представляет выбор нескольких с поиском с ограничением количества выбранных элементов; варианты имеют точку с определённым цветом. - Ограничения: максимальное количество выбранных элементов: 5 - Доп. проверка: каждый установленный статус должен существовать.