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

/**
 * Ajoute le support Google SSO :
 * - `google_id` : sub OAuth Google (stable, unique). On match les retours
 *   d'auth dessus en priorité, fallback email si non rempli (cas d'un user
 *   email/password qui ajoute Google plus tard).
 * - Rend `password` nullable : un user créé via Google n'a pas de password
 *   en base. Il pourra en définir un plus tard via "mot de passe oublié".
 */
export default class extends BaseSchema {
  protected tableName = 'users'

  async up() {
    this.schema.alterTable(this.tableName, (table) => {
      table.string('google_id', 64).nullable().unique()
      table.string('password').nullable().alter()
    })
  }

  async down() {
    this.schema.alterTable(this.tableName, (table) => {
      table.dropColumn('google_id')
      // On ne re-passe pas password à NOT NULL en down — risquerait de
      // casser les rows SSO existantes.
    })
  }
}
