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

export default class extends BaseSchema {
  protected tableName = 'plans'

  async up() {
    this.schema.createTable(this.tableName, (table) => {
      table.uuid('id').primary().notNullable().defaultTo(this.raw('gen_random_uuid()'))
      table
        .uuid('organization_id')
        .notNullable()
        .references('id')
        .inTable('organizations')
        .onDelete('CASCADE')

      // Slug stable pour les 4 plans pré-fournis (standard-30j, rapide-15j…).
      // null pour les plans custom (V2). On indexe pour le lookup par slug.
      table.string('slug', 60).nullable()
      table.string('name', 80).notNullable()
      table.string('description', 500).notNullable().defaultTo('')
      table.boolean('is_default').notNullable().defaultTo(false)

      table.timestamp('created_at').notNullable()
      table.timestamp('updated_at').nullable()

      table.index(['organization_id'])
      table.unique(['organization_id', 'slug']) // 1 slug max par org
    })
  }

  async down() {
    this.schema.dropTable(this.tableName)
  }
}
