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

8.1 KiB
Raw Blame History

Модели

  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: Удаляет указанный платеж по указанному договору.