package com.constellio.app.modules.rm.migrations;
import com.constellio.app.entities.modules.MetadataSchemasAlterationHelper;
import com.constellio.app.entities.modules.MigrationResourcesProvider;
import com.constellio.app.entities.modules.MigrationScript;
import com.constellio.app.modules.rm.model.enums.CopyType;
import com.constellio.app.modules.rm.wrappers.Category;
import com.constellio.app.modules.rm.wrappers.Folder;
import com.constellio.app.services.factories.AppLayerFactory;
import com.constellio.app.services.schemasDisplay.SchemasDisplayManager;
import com.constellio.model.entities.schemas.MetadataValueType;
import com.constellio.model.services.schemas.builders.MetadataSchemaTypesBuilder;
/**
* Created by constellios on 2017-05-02.
*/
public class RMMigrationTo7_3 implements MigrationScript {
@Override
public String getVersion() {
return "7.3";
}
@Override
public void migrate(String collection, MigrationResourcesProvider migrationResourcesProvider, AppLayerFactory appLayerFactory) throws Exception {
new SchemaAlterationFor7_3(collection, migrationResourcesProvider, appLayerFactory).migrate();
SchemasDisplayManager manager = appLayerFactory.getMetadataSchemasDisplayManager();
manager.saveSchema(manager.getSchema(collection,Category.DEFAULT_SCHEMA).withNewFormAndDisplayMetadatas(Category.DEFAULT_SCHEMA + "_" + Category.DEACTIVATE));
}
class SchemaAlterationFor7_3 extends MetadataSchemasAlterationHelper {
protected SchemaAlterationFor7_3(String collection, MigrationResourcesProvider migrationResourcesProvider,
AppLayerFactory appLayerFactory) {
super(collection, migrationResourcesProvider, appLayerFactory);
}
public String getVersion() {
return "7.3";
}
@Override
protected void migrate(MetadataSchemaTypesBuilder typesBuilder) {
typesBuilder.getDefaultSchema(Folder.SCHEMA_TYPE).get(Folder.COPY_STATUS_ENTERED).setDefaultValue(CopyType.PRINCIPAL);
typesBuilder.getDefaultSchema(Category.SCHEMA_TYPE).create(Category.DEACTIVATE).setType(MetadataValueType.BOOLEAN).setDefaultValue(null);
}
}
}