diff --git a/pairent_backend/pairent_app/__init__.py b/pairent_backend/pairent_app/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/pairent_backend/pairent_app/admin.py b/pairent_backend/pairent_app/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/pairent_backend/pairent_app/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/pairent_backend/pairent_app/apps.py b/pairent_backend/pairent_app/apps.py new file mode 100644 index 0000000..a65ceac --- /dev/null +++ b/pairent_backend/pairent_app/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class PairentAppConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'pairent_app' diff --git a/pairent_backend/pairent_app/migrations/__init__.py b/pairent_backend/pairent_app/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/pairent_backend/pairent_app/models.py b/pairent_backend/pairent_app/models.py new file mode 100644 index 0000000..bdbc48e --- /dev/null +++ b/pairent_backend/pairent_app/models.py @@ -0,0 +1,55 @@ +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="Дата добавления квартиры") + diff --git a/pairent_backend/pairent_app/tests.py b/pairent_backend/pairent_app/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/pairent_backend/pairent_app/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/pairent_backend/pairent_app/views.py b/pairent_backend/pairent_app/views.py new file mode 100644 index 0000000..91ea44a --- /dev/null +++ b/pairent_backend/pairent_app/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here. diff --git a/pairent_backend/pairent_backend/settings.py b/pairent_backend/pairent_backend/settings.py index 668dc32..8e020e1 100644 --- a/pairent_backend/pairent_backend/settings.py +++ b/pairent_backend/pairent_backend/settings.py @@ -37,6 +37,7 @@ INSTALLED_APPS = [ 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', + 'pairent_app', ] MIDDLEWARE = [ diff --git a/pairent_backend/requirments.txt b/pairent_backend/requirments.txt index dbe7e1c..948326a 100644 --- a/pairent_backend/requirments.txt +++ b/pairent_backend/requirments.txt @@ -1,2 +1,3 @@ django -mysqlclient \ No newline at end of file +mysqlclient +Pillow \ No newline at end of file