import { BaseSchema } from '@adonisjs/lucid/schema'

/**
 * `cancel_at_period_end` : Stripe permet à l'user d'annuler une souscription
 * sans coupure immédiate — le sub reste `active` jusqu'à `current_period_end`,
 * puis Stripe envoie `customer.subscription.deleted`. Pendant cette fenêtre on
 * doit afficher "annulé, accès jusqu'au DD/MM" côté UI au lieu de
 * "prochaine facture le DD/MM" — sinon l'user pense qu'il va re-payer.
 */
export default class extends BaseSchema {
  protected tableName = 'organizations'

  async up() {
    this.schema.alterTable(this.tableName, (table) => {
      table.boolean('cancel_at_period_end').notNullable().defaultTo(false)
    })
  }

  async down() {
    this.schema.alterTable(this.tableName, (table) => {
      table.dropColumn('cancel_at_period_end')
    })
  }
}
