import { MigrationInterface, QueryRunner } from "typeorm";

// Revierte 1780000000000-AddFacturacionPosToTenantConfig: la config de
// facturacion POS no puede vivir una sola vez por tenant -- un tenant puede
// operar varias tiendas fisicas (OrdenTrabajo.tiendaId) y "computadora" en
// POSTouch resuelve a UNA tienda/caja puntual (Domicilio::createOrdenesEdngt
// -> login($parG) fija $par segun el computadora recibido). Guardarla aca
// hubiera mandado las OTs de todas las tiendas de un tenant a la misma
// tienda/caja de POSTouch. Se movio a maetie, por tienda (ver
// AddTiendaFacturacionPosConfig en backend/src/migrations/). Segura de
// aplicar: la migracion original nunca llego a activarse en un tenant real
// (facturacionPosHabilitada default false, sin admin que la haya prendido).
export class DropFacturacionPosFromTenantConfig1780300000000
  implements MigrationInterface
{
  name = "DropFacturacionPosFromTenantConfig1780300000000";

  public async up(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(`
      ALTER TABLE tenant_config
        DROP COLUMN facturacion_pos_habilitada,
        DROP COLUMN facturacion_pos_url,
        DROP COLUMN facturacion_pos_username,
        DROP COLUMN facturacion_pos_password_encrypted,
        DROP COLUMN facturacion_pos_computadora,
        DROP COLUMN facturacion_pos_precio_decimales
    `);
  }

  public async down(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(`
      ALTER TABLE tenant_config
        ADD COLUMN facturacion_pos_habilitada TINYINT(1) NOT NULL DEFAULT 0,
        ADD COLUMN facturacion_pos_url VARCHAR(500) NULL,
        ADD COLUMN facturacion_pos_username VARCHAR(128) NULL,
        ADD COLUMN facturacion_pos_password_encrypted TEXT NULL,
        ADD COLUMN facturacion_pos_computadora VARCHAR(64) NULL,
        ADD COLUMN facturacion_pos_precio_decimales INT NULL
    `);
  }
}
