table('school_user', [ 'id' => false, 'primary_key' => ['idschooluser'], 'engine' => 'InnoDB', 'collation' => 'utf8mb4_unicode_ci', ]) ->addColumn('idschooluser', 'integer', ['signed' => false, 'identity' => true]) ->addColumn('user_id', 'integer', ['signed' => false, 'comment' => 'auth_users.id']) ->addColumn('idschool', 'integer', ['signed' => false]) ->addColumn('school_role', 'string', ['limit' => 20, 'default' => 'student', 'comment' => 'student|teacher|admin|owner']) ->addColumn('active', 'char', ['limit' => 1, 'default' => 'Y']) ->addColumn('joined_at', 'timestamp', ['null' => true, 'default' => 'CURRENT_TIMESTAMP']) ->addIndex(['user_id', 'idschool'], ['unique' => true, 'name' => 'school_user_unique']) ->addIndex(['idschool'], ['name' => 'school_user_idschool_index']) ->addForeignKey('user_id', 'auth_users', 'id', ['delete' => 'CASCADE', 'update' => 'NO_ACTION']) ->addForeignKey('idschool', 'schools', 'idschool', ['delete' => 'CASCADE', 'update' => 'NO_ACTION']) ->create(); // Tutti gli utenti esistenti appartengono a Seregno (1) $this->execute(" INSERT INTO school_user (user_id, idschool, school_role) SELECT id, 1, 'student' FROM auth_users "); } public function down(): void { $this->table('school_user')->drop()->save(); } }