43 lines
1.4 KiB
PHP
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`
|
|
");
|
|
}
|
|
}
|