jvdm / inkirinet-hotspot

Inkirinet Hotspot is a Django-based web application offering frontend and management for the Inkiri Center's WiFi hotspot.
Mozilla Public License 2.0
2 stars 0 forks source link

Support activation grace period for Contracts through payment control #1

Open jvdm opened 3 years ago

jvdm commented 3 years ago

Problem

Forcing customers to wait before accessing the infrastructure is sub-optimal experience: considering that the majority of the cases payment will be fulfilled the waiting time induces unnecessary pain for customers. The number of contracts coming and going are relatively high to justify the customer impact.

Current State

Contracts imported from Google Sheets are created "inactive" by default. This allows the administrator to perform manual or automated checks on their end before activating the device (for example, payments). Customer's will only be able to add devices after Contracts are activated.

Desired State

Customers have access to the service immediately after Contract creating/importing and while payment is being processed. Administrators can ignore Contracts with expired payments deadlines.

Plan

  1. Introduce a "payment_status" flag, initially with PENDING and FULFILLED states.
  2. Import Contracts with is_active=True by default, giving access to the network services right away.
  3. Introduce a "grace period" where for payment_status=PENDING, suggested 2 days. After that, move Contract to is_active=False.