package com.constellio.app.services.migrations.scripts;
import static com.constellio.app.services.migrations.CoreRoles.ADMINISTRATOR;
import static com.constellio.model.entities.CorePermissions.USE_EXTERNAL_APIS_FOR_COLLECTION;
import static com.constellio.model.entities.schemas.MetadataValueType.STRING;
import static java.util.Arrays.asList;
import com.constellio.app.entities.modules.MetadataSchemasAlterationHelper;
import com.constellio.app.entities.schemasDisplay.MetadataDisplayConfig;
import com.constellio.app.entities.schemasDisplay.enums.MetadataInputType;
import com.constellio.app.services.schemasDisplay.SchemasDisplayManager;
import com.constellio.model.entities.Language;
import com.constellio.model.entities.records.wrappers.Event;
import com.constellio.model.entities.schemas.MetadataValueType;
import com.constellio.model.entities.security.global.SolrUserCredential;
import com.constellio.model.services.schemas.MetadataSchemaTypesAlteration;
import com.constellio.model.services.schemas.MetadataSchemasManager;
import com.constellio.model.services.schemas.builders.MetadataSchemaBuilder;
import com.constellio.model.services.schemas.builders.MetadataSchemaTypesBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.constellio.app.entities.modules.MigrationResourcesProvider;
import com.constellio.app.entities.modules.MigrationScript;
import com.constellio.app.services.factories.AppLayerFactory;
import com.constellio.model.services.security.roles.RolesManager;
import java.util.HashMap;
import java.util.Map;
public class CoreMigrationTo_6_5_50 implements MigrationScript {
private final static Logger LOGGER = LoggerFactory.getLogger(CoreMigrationTo_6_5_50.class);
@Override
public String getVersion() {
return "6.5.50";
}
@Override
public void migrate(String collection, MigrationResourcesProvider provider, AppLayerFactory appLayerFactory)
throws Exception {
new CoreSchemaAlterationFor6_5_50(collection, provider, appLayerFactory).migrate();
modifyEvents(collection, appLayerFactory.getModelLayerFactory().getMetadataSchemasManager(), appLayerFactory);
}
private void modifyEvents(final String collection, MetadataSchemasManager manager, AppLayerFactory appLayerFactory) {
SchemasDisplayManager schemasDisplayManager = appLayerFactory.getMetadataSchemasDisplayManager();
schemasDisplayManager
.saveMetadata(new MetadataDisplayConfig(collection, Event.DEFAULT_SCHEMA + "_" + Event.RECORD_VERSION, true,
MetadataInputType.FIELD, true, "default", null));
}
private class CoreSchemaAlterationFor6_5_50 extends MetadataSchemasAlterationHelper {
public CoreSchemaAlterationFor6_5_50(String collection, MigrationResourcesProvider migrationResourcesProvider,
AppLayerFactory appLayerFactory) {
super(collection, migrationResourcesProvider, appLayerFactory);
}
@Override
protected void migrate(MetadataSchemaTypesBuilder builder) {
builder.getDefaultSchema(Event.SCHEMA_TYPE).create(Event.RECORD_VERSION).setType(STRING).setMultivalue(false);
}
}
}