import uuid from django.db import models from django.core.validators import RegexValidator class Apartament(models.Model): """Модель данных квартиры""" id = models.UUIDField(primary_key=True, default=uuid.uuid4, edtitable=False, help_text="Уникальный индетификатор квартиры") # TODO: Нужно реализовать фотографии. Как вариант, сделать как в этой статье (https://habr.com/ru/articles/505946/) price = models.IntegerField(max_value=450000, help_text="Стоимость аренды квартиры за месяц") bail = models.IntegerField(max_value=450000, help_text="Стоимость залога квартиры") agencyСommission = models.IntegerField(max_value=450000, verbose_name="Коммисия агенству") utilitiesPrice = models.CharField(max_length=100, help_text="Стоимость коммунальных услуг") minimumLeasePeriod = models.IntegerField(max_value=60, help_text="Минимальный срок аренды в месяцах") address = models.CharField(max_length=100, help_text="Адрес квартиры") description = models.TextField(max_length=300, help_text="Описание квартиры") perimetrs = models.FloatField(max_value=250, help_text="Количество квадратных метров") rooms = models.IntegerField(max_value=10, help_text="Количество комнат") ceilingHeight = models.FloatField(max_value=5, help_text="Высота потолков в метрах") floor = models.IntegerField(max_value=50, help_text="Этаж квартиры") floorHouse = models.IntegerField(max_value=50, help_text="Количество этажей в доме") phoneNumberRegex = RegexValidator(regex = r"^\+?1?\d{8,15}$") phoneNumber = models.CharField(validators=[phoneNumberRegex], max_length=16, unique=True, help_text="Номер телефона для связи") timeToBus = models.IntegerField(max_value=60, help_text="Время до ближайшей автобусной остановки в минутах") timeToTrain = models.IntegerField(max_value=60, help_text="Время до ближайшей Ж/Д станции в минутах") """Параметры квартиры""" isFurniture = models.BooleanField(help_text="Имеется мебель в квартире") isAnimal = models.BooleanField(help_text="Можно с питомцем") isTelevision = models.BooleanField(help_text="Имеется телевизор в квартире") isСhild = models.BooleanField(help_text="Можно с детьми") isInternet = models.BooleanField(help_text="Проведен интернет в квартире") isBathroom = models.BooleanField(help_text="Имеется санузел в квартире") isRefrigerator = models.BooleanField(help_text="Имеется холодильник в квартире") isWasher = models.BooleanField(help_text="Имеется стиральная машинка в квартире") isAirConditioning = models.BooleanField(help_text="Имеется кондиционер в квартире") isFreshRepair = models.BooleanField(help_text="Недавно был ремонт в квартире") """Параметры дома""" isElevator = models.BooleanField(help_text="Имеется лифт в доме") isParking = models.BooleanField(help_text="Имеется закрытая парковка у дома") isGarbageChute = models.BooleanField(help_text="Имеется мусоропровод в доме") isConcierge = models.BooleanField(help_text="Имеется консьерж в доме") # TODO: Нужно реализовать количество просмотров. Как вариант, сделать через IP (https://ru.stackoverflow.com/q/1233137) dateCreate = models.DateField(auto_now_add=True, editable=False, help_text="Дата добавления квартиры")