Files
we_pro_dock/BACKEND/PROPERTIES.md
2024-05-14 11:39:33 +03:00

16 KiB
Raw Blame History

Модель статьи

  1. ObjectTypeNew:
    • Представляет типы недвижимости.
    • object_type (CharField): Тип недвижимости (выбор из предустановленных значений).
    • name (CharField): Название подтипа объекта.
    • Связь с User для автора объекта.
    • Имеет поля времени создания и обновления.
  2. PurposePremises:
    • Представляет назначение объектов недвижимости.
    • name (CharField): Название назначения объекта.
    • Имеет поля времени создания и обновления.
  3. Room:
    • Представляет помещение на этаже.
    • room_number (CharField): Номер помещения.
    • plan_number (CharField): Номер на поэтажном плане.
    • entrance (CharField): Тип входа (выбор из предустановленных значений).
    • area (DecimalField): Площадь помещения.
    • Связь с изображением помещения.
    • Имеет поля времени создания и обновления.
  4. Floor:
    • Представляет этажи в подъезде.
    • floor_number (IntegerField): Номер этажа.
    • Связь с изображением плана этажа.
    • Имеет поля времени создания и обновления.
  5. Entrance:
    • Представляет подъезды в здании.
    • entrance_number (IntegerField): Номер подъезда.
    • Связь с изображением плана подъезда.
    • Имеет поля времени создания и обновления.
  6. Building:
    • Представляет здания.
    • nomber_building (CharField): Номер дома.
    • building_name (CharField): Название здания.
    • year_built (YearField): Год постройки здания.
    • Имеет поля времени создания и обновления.
  7. Territory:
    • Представляет территории.
    • district (CharField): Район.
    • microdistrict (CharField): Микрорайон.
    • Имеет поля времени создания и обновления.
  8. Cluster:
    • Представляет кластеры.
    • region (CharField): Регион.
    • city (CharField): Город.
    • Имеет поля времени создания и обновления.
  9. Object:
    • Представляет объект недвижимости.
    • address (CharField): Адрес объекта.
    • cadastre_number (CharField): Кадастровый номер.
    • Связь с типом объекта, назначением объекта, помещениями, этажами, подъездами, зданиями, территориями, и кластерами.
    • Имеет поля времени создания и обновления.

Сериализатор

  1. ObjectTypeNewSerializer
    • objectType (CharField): Строковое представление типа объекта.
    • nameObjectType (CharField): Название типа объекта.
    • author (AuthorSerializer): Сериализатор для автора объекта.
    • createdAt (DateTimeField): Дата и время создания объекта.
    • updatedAt (DateTimeField): Дата и время последнего обновления объекта.
  2. PurposePremisesSerializer
    • namePurposePremises (CharField): Название назначения помещения.
    • author (AuthorSerializer): Сериализатор для автора назначения помещения.
    • createdAt (DateTimeField): Дата и время создания назначения помещения.
    • updatedAt (DateTimeField): Дата и время последнего обновления назначения помещения.
  3. RoomSerializer
    • roomNumber (CharField): Номер помещения.
    • roomEntrance (CharField): Вход помещения.
    • roomArea (CharField): Площадь помещения.
    • author (AuthorSerializer): Сериализатор для автора помещения.
    • createdAt (DateTimeField): Дата и время создания помещения.
    • updatedAt (DateTimeField): Дата и время последнего обновления помещения.
  4. FloorSerializer
    • floorNumber (IntegerField): Номер этажа.
    • floor_plan_image (ImagePropirtiesFloorPlanSerializer): Сериализатор для изображений плана этажа.
    • author (AuthorSerializer): Сериализатор для автора этажа.
    • createdAt (DateTimeField): Дата и время создания этажа.
    • updatedAt (DateTimeField): Дата и время последнего обновления этажа.
  5. EntranceSerializer
    • entranceNumber (IntegerField): Номер подъезда.
    • entrancePlanImage (ImagePropirtiesEntrancePlanSerializer): Сериализатор для изображений плана подъезда.
    • author (AuthorSerializer): Сериализатор для автора подъезда.
    • createdAt (DateTimeField): Дата и время создания подъезда.
    • updatedAt (DateTimeField): Дата и время последнего обновления подъезда.
  6. BuildingSerializer
    • nombeBuilding (CharField): Номер здания.
    • buildingName (CharField): Название здания.
    • yearBuilt (CharField): Год постройки здания.
    • author (AuthorSerializer): Сериализатор для автора здания.
    • createdAt (DateTimeField): Дата и время создания здания.
    • updatedAt (DateTimeField): Дата и время последнего обновления здания.
  7. TerritorySerializer
    • territoryDistrict (CharField): Район территории.
    • territoryMicrodistrict (CharField): Микрорайон территории.
    • author (AuthorSerializer): Сериализатор для автора территории.
    • createdAt (DateTimeField): Дата и время создания территории.
    • updatedAt (DateTimeField): Дата и время последнего обновления территории.
  8. ClusterSerializer
    • clusterRegion (CharField): Регион кластера.
    • clusterCity (CharField): Город кластера.
    • author (AuthorSerializer): Сериализатор для автора кластера.
    • createdAt (DateTimeField): Дата и время создания кластера.
    • updatedAt (DateTimeField): Дата и время последнего обновления кластера.
  9. ObjectSerializer
    • objectAddress (CharField): Адрес объекта.
    • cadastreNumber (CharField): Кадастровый номер объекта.
    • purposePremises (CharField): Назначение помещения объекта.
    • technicalFeatures (CharField): Технические особенности объекта.
    • objectFiles (FileField): Файлы, связанные с объектом.
    • objectImages (ImageField): Изображения объекта.
    • objectVideos (FileField): Видео, связанные с объектом.
    • room (PrimaryKeyRelatedField): Связанные помещения объекта.
    • floor (PrimaryKeyRelatedField): Связанные этажи объекта.
    • entrance (PrimaryKeyRelatedField): Связанные подъезды объекта.
    • building (PrimaryKeyRelatedField): Связанные здания объекта.
    • territory (PrimaryKeyRelatedField): Связанные территории объекта.
    • cluster (PrimaryKeyRelatedField): Связанные кластеры объекта.
    • author (AuthorSerializer): Сериализатор для автора объекта.
    • createdAt (DateTimeField): Дата и время создания объекта.
    • updatedAt (DateTimeField): Дата и время последнего обновления объекта.

Маршрутизатор

  1. properties-objecttypenew/ - URL для работы с типами объектов:
    • GET: Получить список всех типов объектов или создать новый тип объекта.
    • POST: Создать новый тип объекта.
  2. properties-purposepremises/ - URL для работы с назначениями помещений:
    • GET: Получить список всех назначений помещений или создать новое назначение помещения.
    • POST: Создать новое назначение помещения.
  3. properties-room/ - URL для работы с помещениями:
    • GET: Получить список всех помещений или создать новое помещение.
    • POST: Создать новое помещение.
  4. properties-floor/ - URL для работы с этажами:
    • GET: Получить список всех этажей или создать новый этаж.
    • POST: Создать новый этаж.
  5. properties-entrance/ - URL для работы с подъездами:
    • GET: Получить список всех подъездов или создать новый подъезд.
    • POST: Создать новый подъезд.
  6. properties-building/ - URL для работы со зданиями:
    • GET: Получить список всех зданий или создать новое здание.
    • POST: Создать новое здание.
  7. properties-territory/ - URL для работы с территориями:
    • GET: Получить список всех территорий или создать новую территорию.
    • POST: Создать новую территорию.
  8. properties-cluster/ - URL для работы с кластерами:
    • GET: Получить список всех кластеров или создать новый кластер.
    • POST: Создать новый кластер.
  9. properties-object/ - URL для работы с объектами:
    • GET: Получить список всех объектов или создать новый объект.
    • POST: Создать новый объект.

Контроллер

  1. ObjectTypeNewViewSet:
    • list: Получает список всех типов объектов или создает новый тип объекта.
    • create: Создает новый тип объекта.
    • retrieve: Получает конкретный тип объекта по его идентификатору.
    • update: Обновляет данные о типе объекта.
    • destroy: Удаляет тип объекта.
  2. PurposePremisesViewSet:
    • list: Получает список всех назначений помещений или создает новое назначение помещения.
    • create: Создает новое назначение помещения.
    • retrieve: Получает конкретное назначение помещения по его идентификатору.
    • update: Обновляет данные о назначении помещения.
    • destroy: Удаляет назначение помещения.
  3. RoomViewSet:
    • list: Получает список всех помещений или создает новое помещение.
    • create: Создает новое помещение.
    • retrieve: Получает конкретное помещение по его идентификатору.
    • update: Обновляет данные о помещении.
    • destroy: Удаляет помещение.
  4. FloorViewSet:
    • list: Получает список всех этажей или создает новый этаж.
    • create: Создает новый этаж.
    • retrieve: Получает конкретный этаж по его идентификатору.
    • update: Обновляет данные об этаже.
    • destroy: Удаляет этаж.
  5. EntranceViewSet:
    • list: Получает список всех подъездов или создает новый подъезд.
    • create: Создает новый подъезд.
    • retrieve: Получает конкретный подъезд по его идентификатору.
    • update: Обновляет данные о подъезде.
    • destroy: Удаляет подъезд.
  6. BuildingViewSet:
    • list: Получает список всех зданий или создает новое здание.
    • create: Создает новое здание.
    • retrieve: Получает конкретное здание по его идентификатору.
    • update: Обновляет данные о здании.
    • destroy: Удаляет здание.
  7. TerritoryViewSet:
    • list: Получает список всех территорий или создает новую территорию.
    • create: Создает новую территорию.
    • retrieve: Получает конкретную территорию по ее идентификатору.
    • update: Обновляет данные о территории.
    • destroy: Удаляет территорию.
  8. ClusterViewSet:
    • list: Получает список всех кластеров или создает новый кластер.
    • create: Создает новый кластер.
    • retrieve: Получает конкретный кластер по его идентификатору.
    • update: Обновляет данные о кластере.
    • destroy: Удаляет кластер.
  9. ObjectViewSet:
    • list: Получает список всех объектов или создает новый объект.
    • create: Создает новый объект.
    • retrieve: Получает конкретный объект по его идентификатору.
    • update: Обновляет данные об объекте.
    • destroy: Удаляет объект.

Проверка введенных данных

  1. validate_year(value):
    • Это функция-валидатор, которая принимает значение года в виде строки.
    • Она проверяет, что длина значения равна 4 символам и что значение состоит только из цифр.
    • Если условия не соблюдаются, функция поднимает исключение ValidationError с соответствующим сообщением об ошибке.
  2. YearField(models.CharField):
    • Это класс, который определяет поле модели Django для хранения года.
    • Он наследуется от CharField и добавляет к нему функциональность валидации года.
    • В конструкторе класса YearField устанавливаются максимальная длина поля в 4 символа и добавляется список валидаторов, включая validate_year.