- Spegnimento
- 31 agosto 2026 alle ore 02:12 UTC
- Autore
- Kamo
- Impegno
- a47805a
Aggiunge BillingCycle.TRIENNIAL così un abbonato può commettere per tre anni. The colonna è varchar senza costrizione CHECK ovunque, quindi questo non ha bisogno di migrazione — ma ogni servizio che READS tale fila deve essere prima in esecuzione questo enum, perché valoreOf getta su un nome sconosciuto e getCatalog carica ogni prezzo in una domanda. Tre difetti dovevano essere fissati per il termine per essere sicuri da aggiungere: 1. unitàIl prezzo è un tasso per-seat-per-MONTH su ogni ciclo — BillingCycles in BillingService lo dice e si moltiplica per il mese prima che raggiunga Stripe. Servizio di abbonamento ha fatto il contrario: calcolaMrr DIVIDED un anno tasso di 12 (reporting a $59 sede a $4.92 di MRR) e generare Fattura fatturata tasso di un mese per un intero anno di servizio. A 36 mesi diventano 36x errori. Il mese conta ora vive sull'enum, dove una nuova costante non può essere aggiunto senza rispondere per esso, e fatturare moltiplica per esso. 2. calcolarePrezzo non ha controllato nulla circa una promozione, ma èAttivo. Applicabile piani, cicli di fatturazione applicabili, date di inizio e fine, il minimo del sedile e il cappello di redenzione sono stati tutti perseverati e nessuno è stato letto — un codice scritto per due livelli scontati tutti e quattro, e un codice scaduto non ha mai smesso di funzionare. validatePromoCode ha controllato le date e il tappo ma non il piano o il ciclo, quindi il punto finale che esiste per rispondere "applica questo codice" non concordato con l'aritmetica che l'ha applicata. Entrambi ora chiedono AbbonamentoPromozioni. 3. FLAT PER SEAT ha restituito il valore di sconto nudo senza moltiplicarsi per i sedili, rendendolo un sinonimo silenzioso di FLAT AMOUNT: un codice "$18 per posto" ha preso $18 fuori un ordine di 25 posti invece di $450. Una promozione percentuale ora esce dal subtotale per-seat del piano dopo il termine sconto, non off plan+addons — "33% off the base per il costo del sedile", applicato al valutare il cliente effettivamente impegnato a.