111 lines
8.5 KiB
Markdown
111 lines
8.5 KiB
Markdown
## Модели
|
||
|
||
1. **Contract:**
|
||
- **`contract_type`** (CharField): выбор типа договора (аренда, продажа).
|
||
- **`number`** (CharField): уникальный номер договора.
|
||
- **`start_date`** (DateField): дата начала договора.
|
||
- **`end_date`** (DateField): дата окончания договора (может быть пустой).
|
||
- **`esignature`** (BooleanField): указывает на наличие ЭЦП в договоре.
|
||
- **`edo`** (BooleanField): указывает на наличие ЭДО в договоре.
|
||
- **`tenant`** (ForeignKey): связь с моделью арендатора.
|
||
- **`goods`** (ManyToManyField): связь с имуществом, связанным с договором.
|
||
- **`related_objects`** (ManyToManyField): связь с объектами, связанными с договором.
|
||
- **`contract_file`** (ManyToManyField): связь с файлами/сканами договора.
|
||
- **`contract_photo_pp`** (ManyToManyField): связь с фотографиями при приеме-передаче недвижимости.
|
||
|
||
2. **Payment:**
|
||
- **`payment_frequency`** (CharField): частота платежей (разовый, ежемесячно и т.д.).
|
||
- **`payment_method`** (CharField): метод оплаты (постоплата, предоплата).
|
||
- **`payment_type`** (CharField): тип оплаты (наличные, безналичные).
|
||
- **`rent_cost`** (DecimalField): стоимость аренды.
|
||
- **`rent_rate`** (DecimalField): арендная ставка.
|
||
- **`compensation`** (CharField): информация о компенсации.
|
||
- `**security_deposit**` (DecimalField): залог.
|
||
- `**payment_duration**` (DateField): дата окончания оплаты.
|
||
- **`is_paid`** (BooleanField): указывает на оплаченность платежа.
|
||
- **`contract`** (ForeignKey): связь с моделью договора.
|
||
## Сериализатор
|
||
|
||
1. **ContractSerializer:**
|
||
- `id`: Идентификатор договора.
|
||
- `contractContractType`(CharField): Тип договора.
|
||
- `contractnumber`(CharField): Номер договора.
|
||
- `contractStartDate`(DateField): Дата начала договора.
|
||
- `contractEndDate`(DateField): Дата окончания договора, может быть пустым.
|
||
- `contractEsignature`(BooleanField): Наличие ЭЦП в договоре.
|
||
- `contractEdo`(BooleanField): Наличие ЭДО в договоре.
|
||
- `tenant`(TenantSerializer): Внешний ключ на модель арендатора.
|
||
- `goods`(PrimaryKeyRelatedField): Множественный внешний ключ на модель имущества.
|
||
- `related_objects`(PrimaryKeyRelatedField): Множественный внешний ключ на модель объектов.
|
||
- `contractFile`(FileField): Файл договора.
|
||
- `contractPhotoPp`(FileField): Фотография при приеме-передаче недвижимости.
|
||
- `author`(PrimaryKeyRelatedField): Информация об авторе (использует `AuthorSerializer`).
|
||
- `createdAt`(DateTimeField): Дата создания.
|
||
- `updatedAt`(DateTimeField): Дата обновления.
|
||
|
||
2. **PaymentSerializer:**
|
||
- `id`: Идентификатор платежа.
|
||
- `contract`(PrimaryKeyRelatedField): Внешний ключ на модель договора.
|
||
- `paymentFrequency`(CharField): Частота платежей.
|
||
- `paymentMethod`(CharField): Метод оплаты.
|
||
- `paymentType`(CharField): Тип оплаты.
|
||
- `paymentRentCost`(DecimalField): Стоимость аренды.
|
||
- `paymentRentRate`(DecimalField): Арендная ставка.
|
||
- `paymentCompensation`(CharField): Компенсация.
|
||
- `paymentSecurityDeposit`(DecimalField): Залог.
|
||
- `paymentPaymentDuration`(DateField): Дата окончания оплаты.
|
||
- `paymentIsPaid`(BooleanField): Оплачено ли.
|
||
- `author`(PrimaryKeyRelatedField): Информация об авторе (использует `AuthorSerializer`).
|
||
- `createdAt`(DateTimeField): Дата создания.
|
||
- `updatedAt`(DateTimeField): Дата обновления.
|
||
## Маршрутизатор
|
||
|
||
1. **URL для списка и деталей договоров:**
|
||
- `''`: Этот URL указывает на корневой URL вашего приложения.
|
||
- Включает все URL из `router`, который зарегистрирован для представления `ContractViewSet`.
|
||
|
||
2. **URL для списка платежей по договору и создания нового платежа:**
|
||
- `contracts/<int:id>/payments`: Этот URL позволяет получить список платежей для определенного договора с идентификатором `id`. Он связан с представлением `PaymentContractViewSet`.
|
||
|
||
3. **URL для удаления платежа по договору:**
|
||
- `contracts/<int:contract_id>/payments/<int:payment_id>/`: Этот URL используется для удаления конкретного платежа для договора с идентификатором `contract_id` и идентификатором платежа `payment_id`. Он связан с представлением `DeletePaymentContractView`.
|
||
## Контроллер
|
||
|
||
1. **ContractViewSet**:
|
||
- `queryset`: Получает все объекты договоров (`Contract`).
|
||
- `serializer_class`: Использует `ContractSerializer` для сериализации и десериализации данных.
|
||
- `permission_classes`: Позволяет доступ только аутентифицированным пользователям.
|
||
- `lookup_field`: Указывает поле, используемое для поиска объектов (в данном случае, идентификатор).
|
||
- `http_method_names`: Определяет доступные методы HTTP.
|
||
- **Методы**:
|
||
- `list`: Получает список договоров.
|
||
- `create`: Создает новый договор.
|
||
- `retrieve`: Получает детали конкретного договора.
|
||
- `update`: Обновляет данные договора.
|
||
- `destroy`: Удаляет договор.
|
||
|
||
2. **PaymentViewSet**:
|
||
- `queryset`: Получает все объекты платежей (`Payment`).
|
||
- `serializer_class`: Использует `PaymentSerializer` для сериализации и десериализации данных.
|
||
- `permission_classes`: Позволяет доступ только аутентифицированным пользователям.
|
||
- `lookup_field`: Указывает поле, используемое для поиска объектов (в данном случае, идентификатор).
|
||
- `http_method_names`: Определяет доступные методы HTTP.
|
||
- **Методы**:
|
||
- `list`: Получает список платежей.
|
||
- `create`: Создает новый платеж.
|
||
- `retrieve`: Получает детали конкретного платежа.
|
||
- `update`: Обновляет данные платежа.
|
||
- `destroy`: Удаляет платеж.
|
||
|
||
3. **PaymentContractViewSet**:
|
||
- Представление для списка и создания платежей по договору.
|
||
- `queryset`: Получает все объекты платежей (`Payment`).
|
||
- `serializer_class`: Использует `PaymentSerializer` для сериализации и десериализации данных.
|
||
- `permission_classes`: Позволяет доступ только аутентифицированным пользователям.
|
||
- **Методы**:
|
||
- `list`: Получает список платежей по конкретному договору.
|
||
- `post`: Создает новый платеж для указанного договора.
|
||
|
||
4. **DeletePaymentContractView**:
|
||
- Представление для удаления платежа по договору.
|
||
- `destroy`: Удаляет указанный платеж по указанному договору. |