
# This is a fix for InnoDB in MySQL >= 4.1.x
# It "suspends judgement" for fkey relationships until are tables are set.
SET FOREIGN_KEY_CHECKS = 0;

#-----------------------------------------------------------------------------
#-- sf_guard_user_profile
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `sf_guard_user_profile`;


CREATE TABLE `sf_guard_user_profile`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`user_id` INTEGER  NOT NULL,
	`nombrecompleto` VARCHAR(255),
	`email` VARCHAR(255),
	`solo_consulta` TINYINT default 0,
	PRIMARY KEY (`id`),
	INDEX `sf_guard_user_profile_FI_1` (`user_id`),
	CONSTRAINT `sf_guard_user_profile_FK_1`
		FOREIGN KEY (`user_id`)
		REFERENCES `sf_guard_user` (`id`)
		ON DELETE CASCADE
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- clasificacion
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `clasificacion`;


CREATE TABLE `clasificacion`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`descripcion` VARCHAR(255),
	PRIMARY KEY (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- insumos
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `insumos`;


CREATE TABLE `insumos`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`descripcion` VARCHAR(255),
	`activo` INTEGER,
	PRIMARY KEY (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- motivo_suspension
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `motivo_suspension`;


CREATE TABLE `motivo_suspension`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`descripcion` VARCHAR(255),
	`activo` INTEGER,
	PRIMARY KEY (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- escuelas
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `escuelas`;


CREATE TABLE `escuelas`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`rama` VARCHAR(255),
	`numero` INTEGER,
	`nombre` VARCHAR(100),
	`telefono` VARCHAR(100),
	`direccion` VARCHAR(255),
	`zona_id` INTEGER,
	`proveedor_id` INTEGER,
	`cs` INTEGER,
	`ms` INTEGER,
	`md` INTEGER,
	`dmc` INTEGER,
	`dmc_v` INTEGER,
	`cue` VARCHAR(255),
	`activa` INTEGER,
	`usuario_id` INTEGER,
	PRIMARY KEY (`id`),
	INDEX `escuelas_FI_1` (`zona_id`),
	CONSTRAINT `escuelas_FK_1`
		FOREIGN KEY (`zona_id`)
		REFERENCES `zonas` (`id`),
	INDEX `escuelas_FI_2` (`proveedor_id`),
	CONSTRAINT `escuelas_FK_2`
		FOREIGN KEY (`proveedor_id`)
		REFERENCES `proveedores` (`id`),
	INDEX `escuelas_FI_3` (`usuario_id`),
	CONSTRAINT `escuelas_FK_3`
		FOREIGN KEY (`usuario_id`)
		REFERENCES `sf_guard_user` (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- modo_relevamiento
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `modo_relevamiento`;


CREATE TABLE `modo_relevamiento`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`descripcion` VARCHAR(255),
	PRIMARY KEY (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- tipo_relevamiento
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `tipo_relevamiento`;


CREATE TABLE `tipo_relevamiento`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`descripcion` VARCHAR(255),
	`activo` INTEGER,
	`orden` VARCHAR(2),
	PRIMARY KEY (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- productos
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `productos`;


CREATE TABLE `productos`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`descripcion` VARCHAR(255),
	`tipo` VARCHAR(20),
	`activo` INTEGER,
	`orden` VARCHAR(2),
	PRIMARY KEY (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- zonas
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `zonas`;


CREATE TABLE `zonas`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`descripcion` VARCHAR(255),
	PRIMARY KEY (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- estado_relevamiento
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `estado_relevamiento`;


CREATE TABLE `estado_relevamiento`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`descripcion` VARCHAR(255),
	`activo` INTEGER,
	PRIMARY KEY (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- solicitante
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `solicitante`;


CREATE TABLE `solicitante`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`descripcion` VARCHAR(100),
	`activo` INTEGER,
	PRIMARY KEY (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- proveedores
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `proveedores`;


CREATE TABLE `proveedores`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`razonSocial` VARCHAR(255),
	`contacto` VARCHAR(255),
	`telefono` VARCHAR(255),
	`email` VARCHAR(255),
	`direccion` VARCHAR(255),
	`descripcion` VARCHAR(255),
	`tipo` VARCHAR(1) default 'R' NOT NULL,
	PRIMARY KEY (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- proveedores_escuela_cupo
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `proveedores_escuela_cupo`;


CREATE TABLE `proveedores_escuela_cupo`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`proveedor_id` INTEGER,
	`escuela_id` INTEGER,
	PRIMARY KEY (`id`),
	INDEX `proveedores_escuela_cupo_FI_1` (`proveedor_id`),
	CONSTRAINT `proveedores_escuela_cupo_FK_1`
		FOREIGN KEY (`proveedor_id`)
		REFERENCES `proveedores` (`id`),
	INDEX `proveedores_escuela_cupo_FI_2` (`escuela_id`),
	CONSTRAINT `proveedores_escuela_cupo_FK_2`
		FOREIGN KEY (`escuela_id`)
		REFERENCES `escuelas` (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- proveedor_zonas
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `proveedor_zonas`;


CREATE TABLE `proveedor_zonas`
(
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	`proveedor_id` INTEGER,
	`zona_id` INTEGER,
	PRIMARY KEY (`id`),
	INDEX `proveedor_zonas_FI_1` (`proveedor_id`),
	CONSTRAINT `proveedor_zonas_FK_1`
		FOREIGN KEY (`proveedor_id`)
		REFERENCES `proveedores` (`id`),
	INDEX `proveedor_zonas_FI_2` (`zona_id`),
	CONSTRAINT `proveedor_zonas_FK_2`
		FOREIGN KEY (`zona_id`)
		REFERENCES `zonas` (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- reclamos
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `reclamos`;


CREATE TABLE `reclamos`
(
	`clasificacion_id` INTEGER,
	`proveedor_id` INTEGER,
	`descripcion` TEXT,
	`user_id` INTEGER,
	`resolucion` TEXT,
	`contacto` VARCHAR(255),
	`fecha` DATETIME,
	`escuela_id` INTEGER,
	`urgente` TINYINT,
	`acta` TINYINT,
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	PRIMARY KEY (`id`),
	INDEX `reclamos_FI_1` (`clasificacion_id`),
	CONSTRAINT `reclamos_FK_1`
		FOREIGN KEY (`clasificacion_id`)
		REFERENCES `clasificacion` (`id`),
	INDEX `reclamos_FI_2` (`proveedor_id`),
	CONSTRAINT `reclamos_FK_2`
		FOREIGN KEY (`proveedor_id`)
		REFERENCES `proveedores` (`id`),
	INDEX `reclamos_FI_3` (`user_id`),
	CONSTRAINT `reclamos_FK_3`
		FOREIGN KEY (`user_id`)
		REFERENCES `sf_guard_user` (`id`),
	INDEX `reclamos_FI_4` (`escuela_id`),
	CONSTRAINT `reclamos_FK_4`
		FOREIGN KEY (`escuela_id`)
		REFERENCES `escuelas` (`id`)
) ENGINE=InnoDB;

#-----------------------------------------------------------------------------
#-- relevamiento
#-----------------------------------------------------------------------------

DROP TABLE IF EXISTS `relevamiento`;


CREATE TABLE `relevamiento`
(
	`tipo_relevamiento_id` INTEGER,
	`modo_relevamiento_id` INTEGER,
	`producto_id` INTEGER,
	`cantidad` INTEGER,
	`solicitante_id` INTEGER,
	`escuela_id` INTEGER,
	`proveedor_id` INTEGER,
	`estado_relevamiento_id` INTEGER,
	`motivo_suspension_id` INTEGER,
	`fecha` DATETIME,
	`fcarga` DATETIME,
	`fecha_orden` DATETIME,
	`nro_orden_compra` INTEGER,
	`nro_factura` INTEGER,
	`divulgacion` TINYINT,
	`fecha_inicio` DATETIME,
	`fecha_fin` DATETIME,
	`valor_obra` INTEGER,
	`entregado` TINYINT,
	`fecha_entregado` DATETIME,
	`descripcion` TEXT,
	`descripcion_proveedor` TEXT,
	`user_id` INTEGER,
	`valor_ticket` INTEGER,
	`valor_factura` INTEGER,
	`img_ticket` VARCHAR(255),
	`img_factura` VARCHAR(255),
	`img_final_obra` VARCHAR(255),
	`tipo_operacion` VARCHAR(10),
	`nro_expediente` VARCHAR(100),
	`id` INTEGER  NOT NULL AUTO_INCREMENT,
	PRIMARY KEY (`id`),
	INDEX `relevamiento_FI_1` (`tipo_relevamiento_id`),
	CONSTRAINT `relevamiento_FK_1`
		FOREIGN KEY (`tipo_relevamiento_id`)
		REFERENCES `tipo_relevamiento` (`id`),
	INDEX `relevamiento_FI_2` (`modo_relevamiento_id`),
	CONSTRAINT `relevamiento_FK_2`
		FOREIGN KEY (`modo_relevamiento_id`)
		REFERENCES `modo_relevamiento` (`id`),
	INDEX `relevamiento_FI_3` (`producto_id`),
	CONSTRAINT `relevamiento_FK_3`
		FOREIGN KEY (`producto_id`)
		REFERENCES `productos` (`id`),
	INDEX `relevamiento_FI_4` (`solicitante_id`),
	CONSTRAINT `relevamiento_FK_4`
		FOREIGN KEY (`solicitante_id`)
		REFERENCES `solicitante` (`id`),
	INDEX `relevamiento_FI_5` (`escuela_id`),
	CONSTRAINT `relevamiento_FK_5`
		FOREIGN KEY (`escuela_id`)
		REFERENCES `escuelas` (`id`),
	INDEX `relevamiento_FI_6` (`proveedor_id`),
	CONSTRAINT `relevamiento_FK_6`
		FOREIGN KEY (`proveedor_id`)
		REFERENCES `proveedores` (`id`),
	INDEX `relevamiento_FI_7` (`estado_relevamiento_id`),
	CONSTRAINT `relevamiento_FK_7`
		FOREIGN KEY (`estado_relevamiento_id`)
		REFERENCES `estado_relevamiento` (`id`),
	INDEX `relevamiento_FI_8` (`motivo_suspension_id`),
	CONSTRAINT `relevamiento_FK_8`
		FOREIGN KEY (`motivo_suspension_id`)
		REFERENCES `motivo_suspension` (`id`),
	INDEX `relevamiento_FI_9` (`user_id`),
	CONSTRAINT `relevamiento_FK_9`
		FOREIGN KEY (`user_id`)
		REFERENCES `sf_guard_user` (`id`)
) ENGINE=InnoDB;

# This restores the fkey checks, after having unset them earlier
SET FOREIGN_KEY_CHECKS = 1;
