Files
comelifacciamo/db/migrations/20260903062920_add_target_audience.php
T
2026-09-09 08:26:26 +02:00

43 lines
1.4 KiB
PHP

<?php
use Phinx\Migration\AbstractMigration;
/**
* Aggiunge il campo "target" (pubblico servito) a shops, staff e services.
* Tipo SET MySQL: si possono selezionare più valori insieme (es. 'uomo,donna').
* Valori: uomo, donna, bambino, unisex.
*
* Scelta SET vs tabelle di collegamento: le categorie sono 4, fisse e senza
* attributi propri, quindi il SET è più semplice e filtrabile con FIND_IN_SET()
* senza JOIN aggiuntive. Nota logica (da applicare in ricerca): "unisex" copre
* sia uomo che donna.
*/
class AddTargetAudience extends AbstractMigration
{
public function change(): void
{
$values = "'uomo','donna','bambino','unisex'";
// shops: default unisex (un salone di norma serve tutti finché non specifica)
$this->execute("
ALTER TABLE `shops`
ADD COLUMN `target` SET($values) NOT NULL DEFAULT 'unisex'
AFTER `description`
");
// staff: chi tratta cosa. Default unisex.
$this->execute("
ALTER TABLE `staff`
ADD COLUMN `target` SET($values) NOT NULL DEFAULT 'unisex'
AFTER `role`
");
// services: a chi è rivolto il servizio. Default unisex.
$this->execute("
ALTER TABLE `services`
ADD COLUMN `target` SET($values) NOT NULL DEFAULT 'unisex'
AFTER `category`
");
}
}