140500
This commit is contained in:
213
BACKEND/PROPERTIES.md
Normal file
213
BACKEND/PROPERTIES.md
Normal file
@@ -0,0 +1,213 @@
|
||||
## Модель статьи
|
||||
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.
|
||||
Reference in New Issue
Block a user