package de.ivu.elect.business.system.entity;

public enum DbScriptType {

  CREATE {
    @Override
    public boolean isUpdateAusfuehren(Long bisherigeDbVersion, Long vonVersionDesScriptes) {
      return false;
    }
  },
  UPDATE {
    @Override
    public boolean isUpdateAusfuehren(Long bisherigeDbVersion, Long vonVersionDesScriptes) {
      return vonVersionDesScriptes >= bisherigeDbVersion; // bei Update von Version 010 Script 010->011 ausführen
    }
  },
  KORREKTURDATEN {
    @Override
    public boolean isUpdateAusfuehren(Long bisherigeDbVersion, Long vonVersionDesScriptes) {
      return vonVersionDesScriptes > bisherigeDbVersion;  // bei Update von Version 010, Korrekturdaten Script erst ab Version 011 ausführen, wird sonst doppelt ausgeführt (Update zu 010 und von 010)
    }
  },
  UNBEKANNT {
    @Override
    public boolean isUpdateAusfuehren(Long bisherigeDbVersion, Long vonVersionDesScriptes) {
      return false;
    }
  };


  public abstract boolean isUpdateAusfuehren(Long bisherigeDbVersion, Long vonVersionDesScriptes);
}
