140500
This commit is contained in:
111
BACKEND/CONTRACTS.md
Normal file
111
BACKEND/CONTRACTS.md
Normal file
@@ -0,0 +1,111 @@
|
||||
## Модели
|
||||
|
||||
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`: Тип договора.
|
||||
- `contractnumber`: Номер договора.
|
||||
- `contractStartDate`: Дата начала договора.
|
||||
- `contractEndDate`: Дата окончания договора.
|
||||
- `contractEsignature`: Наличие ЭЦП в договоре.
|
||||
- `contractEdo`: Наличие ЭДО в договоре.
|
||||
- `tenant`: Внешний ключ на модель арендатора.
|
||||
- `goods`: Множественный внешний ключ на модель имущества.
|
||||
- `related_objects`: Множественный внешний ключ на модель объектов.
|
||||
- `contractFile`: Файл договора.
|
||||
- `contractPhotoPp`: Фотография при приеме-передаче недвижимости.
|
||||
- `author`: Информация об авторе (использует `AuthorSerializer`).
|
||||
- `createdAt`: Дата создания.
|
||||
- `updatedAt`: Дата обновления.
|
||||
|
||||
2. **PaymentSerializer:**
|
||||
- `id`: Идентификатор платежа.
|
||||
- `contract`: Внешний ключ на модель договора.
|
||||
- `paymentFrequency`: Частота платежей.
|
||||
- `paymentMethod`: Метод оплаты.
|
||||
- `paymentType`: Тип оплаты.
|
||||
- `paymentRentCost`: Стоимость аренды.
|
||||
- `paymentRentRate`: Арендная ставка.
|
||||
- `paymentCompensation`: Компенсация.
|
||||
- `paymentSecurityDeposit`: Залог.
|
||||
- `paymentPaymentDuration`: Дата окончания оплаты.
|
||||
- `paymentIsPaid`: Оплачено ли.
|
||||
- `author`: Информация об авторе (использует `AuthorSerializer`).
|
||||
- `createdAt`: Дата создания.
|
||||
- `updatedAt`: Дата обновления.
|
||||
## Маршрутизатор
|
||||
|
||||
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`: Удаляет указанный платеж по указанному договору.
|
||||
Reference in New Issue
Block a user