package controlHorarios.app.migration;

import com.webobjects.eocontrol.EOEditingContext;
import com.webobjects.foundation.NSArray;

import er.extensions.migration.ERXMigrationDatabase;
import er.extensions.migration.ERXMigrationTable;
import er.extensions.migration.ERXModelVersion;

public class ScheduleControl0 extends ERXMigrationDatabase.Migration {
	@Override
	public NSArray<ERXModelVersion> modelDependencies() {
		return null;
	}
  
	@Override
	public void downgrade(EOEditingContext editingContext, ERXMigrationDatabase database) throws Throwable {
		// DO NOTHING
	}

	@Override
	public void upgrade(EOEditingContext editingContext, ERXMigrationDatabase database) throws Throwable {
		ERXMigrationTable workDayTable = database.newTableNamed("WORKDAY");
		workDayTable.newStringColumn("DAY_OF_WEEK", 10, false);
		workDayTable.newIntegerColumn("id", false);
		workDayTable.newIntegerColumn("ID_WORK_DAY_FK", false);
		workDayTable.create();
	 	workDayTable.setPrimaryKey("id");

		ERXMigrationTable turnTable = database.newTableNamed("TURN");
		turnTable.newTimestampColumn("END_DATE_TIME", false);
		turnTable.newIntegerColumn("id", false);
		turnTable.newIntegerColumn("IDEAL_EMPLOYEES", false);
		turnTable.newIntegerColumn("MAX_EMPLOYEES", false);
		turnTable.newIntegerColumn("MIN_EMPLOYEES", false);
		turnTable.newTimestampColumn("START_DATE_TIME", false);
		turnTable.create();
	 	turnTable.setPrimaryKey("id");
		turnTable.addForeignKey("id", "WORKDAY", "ID_WORK_DAY_FK");

		ERXMigrationTable employeeTurnTable = database.newTableNamed("EMPLOYEETURN");
		employeeTurnTable.newTimestampColumn("CREATION_TIME", false);
		employeeTurnTable.newIntegerColumn("id", false);
		employeeTurnTable.newIntegerColumn("ID_EMPLOYEE_FK", false);
		employeeTurnTable.newIntegerColumn("ID_TURN_FK", false);
		employeeTurnTable.create();
	 	employeeTurnTable.setPrimaryKey("id");
		employeeTurnTable.addForeignKey("ID_EMPLOYEE_FK", "EMPLOYEE", "id");
		employeeTurnTable.addForeignKey("ID_TURN_FK", "TURN", "id");

		ERXMigrationTable employeeTable = database.newTableNamed("EMPLOYEE");
		employeeTable.newStringColumn("EMAIL", 50, false);
		employeeTable.newIntegerColumn("id", false);
		employeeTable.newStringColumn("LAST_NAME", 16, false);
		employeeTable.newStringColumn("NAME", 16, false);
		employeeTable.newStringColumn("PASSWORD", 10, false);
		employeeTable.create();
	 	employeeTable.setPrimaryKey("id");

	}
}