table('job_sub_roles', [ 'id' => false, 'primary_key' => ['id'], 'collation' => 'utf8mb4_unicode_ci', 'encoding' => 'utf8mb4', ]); $table ->addColumn('id', 'integer', [ 'identity' => true, 'signed' => false, ]) ->addColumn('job_role_id', 'integer', [ 'signed' => false, 'null' => false, ]) ->addColumn('name', 'string', [ 'limit' => 255, 'null' => false, ]) ->addColumn('description', 'text', [ 'null' => true, 'default' => null, ]) ->addColumn('sort_order', 'integer', [ 'signed' => false, 'null' => false, 'default' => 999, ]) ->addColumn('is_active', 'boolean', [ 'null' => false, 'default' => 1, ]) ->addColumn('created_at', 'timestamp', [ 'null' => true, 'default' => 'CURRENT_TIMESTAMP', ]) ->addColumn('updated_at', 'timestamp', [ 'null' => true, 'default' => 'CURRENT_TIMESTAMP', 'update' => 'CURRENT_TIMESTAMP', ]) ->addIndex(['job_role_id'], [ 'name' => 'idx_job_sub_roles_job_role_id', ]) ->addIndex(['is_active'], [ 'name' => 'idx_job_sub_roles_is_active', ]) ->addIndex(['sort_order'], [ 'name' => 'idx_job_sub_roles_sort_order', ]) ->addForeignKey( 'job_role_id', 'job_roles', 'id', [ 'delete' => 'CASCADE', 'update' => 'CASCADE', 'constraint' => 'fk_job_sub_roles_job_role', ] ) ->create(); } }