package siprp.update.updates;

import com.evolute.utils.Singleton;
import com.evolute.utils.db.DBManager;
import com.evolute.utils.db.Executer;

public class V10_2_To_V10_3
		implements siprp.update.Update
{
	
	public V10_2_To_V10_3()
	{
	}
	
	public String []listChanges()
	{
		return new String[]{
		                    "adicionadas normalizacoes duplicadas para planos de actuacao",
		                    "adicionados campos aos tecnicos de higiene e seguranca"
		                    };
	}
	
	public double getStartVersion()
	{
		return 10.2;
	}
	
	public double getEndVersion()
	{
		return 10.3;
	}
	
	public void doUpdate()
		throws Exception
	{
		DBManager dbm = ( DBManager ) Singleton.getInstance( Singleton.DEFAULT_DBMANAGER );
		Executer executer = dbm.getSharedExecuter();
		com.evolute.utils.sql.Update update = 
			new com.evolute.utils.sql.Update(
				"alter table hs_relatorio_equipamento drop constraint hs_relatorio_equipamento_hs_equipamento_fkey; " +
				"alter table hs_relatorio_equipamento drop constraint hs_relatorio_equipamento_pkey; " +
				"alter table hs_relatorio_equipamento add column id serial PRIMARY KEY; " +
				"alter table hs_relatorio_equipamento add column tipo varchar(512); " +
				"alter table hs_relatorio_equipamento add column marca varchar(256); " +
				"alter table hs_relatorio_equipamento add column modelo varchar(256); " +
				"select setval('hs_relatorio_equipamento_id_seq',1000);" +
				"alter table hs_relatorio_legislacao drop constraint hs_relatorio_legislacao_hs_legislacao_id_fkey; " +
				"alter table hs_relatorio_legislacao drop constraint hs_relatorio_legislacao_pkey; " +
				"alter table hs_relatorio_legislacao add column id serial PRIMARY KEY; " +
				"alter table hs_relatorio_legislacao add column categoria varchar(255); " +
				"alter table hs_relatorio_legislacao add column descricao varchar(1024); " +
				"alter table hs_relatorio_normalizacao drop constraint hs_relatorio_normalizacao_hs_normalizacao_id_fkey; " +
				"alter table hs_relatorio_normalizacao drop constraint hs_relatorio_normalizacao_pkey; " +
				"alter table hs_relatorio_normalizacao add column id serial PRIMARY KEY; " +
				"alter table hs_relatorio_normalizacao add column codigo varchar(128) NOT NULL; " +
				"alter table hs_relatorio_normalizacao add column descricao varchar(1024); " +
				"alter table hs_relatorio_normalizacao add column portuguesa boolean NOT NULL; " +
				"alter table marcacoes_tecnicos_hst add column cap varchar(128); " +
				"alter table marcacoes_tecnicos_hst add column formacao varchar(128); " +
				"alter table marcacoes_tecnicos_hst add column assinatura int4 REFERENCES image(id); "
		);
		executer.executeQuery( update );
	}
	
	public String toString()
	{
		return "v" + getStartVersion() + " para v" + getEndVersion();
	}
}
