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
Introduce a "payment_status" flag, initially with PENDING and FULFILLED states.
Import Contracts with is_active=True by default, giving access to the network services right away.
Introduce a "grace period" where for payment_status=PENDING, suggested 2 days. After that, move Contract to is_active=False.
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
PENDING
andFULFILLED
states.is_active=True
by default, giving access to the network services right away.payment_status=PENDING
, suggested 2 days. After that, move Contract tois_active=False
.