create table checklist (
id_checklist              bigint not null,
checklist                 varchar(255),
constraint pk_checklist primary key (id_checklist))
;

create table checklist_fotos_punto (
id_checklist_punto        bigint not null,
foto                      varchar(1000000),
checklist_punto_vehicle_id bigint,
constraint pk_checklist_fotos_punto primary key (id_checklist_punto))
;

create table checklist_punto (
id_checklist_punto        bigint not null,
punto                     varchar(255),
id_checklist              bigint,
checklist_padre_id_checklist_punto bigint,
constraint pk_checklist_punto primary key (id_checklist_punto))
;

create table checklist_punto_vehicle (
id                        bigint not null,
punto                     varchar(255),
checklist_punto_id_checklist_punto bigint,
id_vehicle                integer,
id_employee               integer,
estatus                   integer,
detalle                   varchar(255),
fecha                     timestamp,
constraint pk_checklist_punto_vehicle primary key (id))
;

create table checklist_punto_vehicle_bitacora (
id                        bigint not null,
origen                    varchar(255),
origen_fecha              timestamp,
origen_km                 varchar(255),
destino                   varchar(255),
destino_fecha             timestamp,
destino_km                varchar(255),
kilometros_total          varchar(255),
tipo_desplazamiento       varchar(255),
checklist_punto_vehicle_id bigint,
constraint pk_checklist_punto_vehicle_bitac primary key (id))
;

create table cliente (
id_cliente                integer not null,
razon_social              varchar(255),
nombre_comercial          varchar(255),
telefono                  varchar(255),
mail                      varchar(255),
direccion                 varchar(255),
usuario                   varchar(255),
password                  varchar(32),
empleado_id_empleado      integer,
constraint pk_cliente primary key (id_cliente))
;

create table cobranza (
id_cobranza               integer not null,
monto                     float,
porcentaje_aumento_presentado float,
porcentaje_aumento_aplicado float,
fecha_renovacion          timestamp,
fecha_vencimiento         timestamp,
vigencia                  boolean,
renovacion                boolean,
firma_ejecutivo           varchar(1000000),
firma_cliente             varchar(1000000),
cliente_id_cliente        integer,
constraint pk_cobranza primary key (id_cobranza))
;

create table colision (
id                        bigint not null,
descripcion               varchar(255),
latitud                   float,
longitud                  float,
presupuesto               float,
licencia                  varchar(255),
tarjeta_circulacion       varchar(255),
licencia_tercero          varchar(255),
no_serie                  varchar(255),
no_motor                  varchar(255),
constraint pk_colision primary key (id))
;

create table combustible_programa (
id_combustible_programa   bigint not null,
id_combustible            integer,
id_employee_coordinador   integer,
empleado_id_empleado      integer,
id_servicio               integer,
activo                    boolean,
asistencia                boolean,
fecha                     timestamp,
litros                    integer,
kilometraje               varchar(255),
eco                       integer,
descripcion               varchar(255),
operador                  varchar(255),
num_carga                 varchar(255),
fleje_anterior            varchar(255),
fleje_nuevo               varchar(255),
constraint pk_combustible_programa primary key (id_combustible_programa))
;

create table combustible_programa_foto (
id_combustible_programa_foto bigint not null,
combustible_programa_id_combustible_programa bigint,
foto                      varchar(1000000),
constraint pk_combustible_programa_foto primary key (id_combustible_programa_foto))
;

create table control (
id_control                bigint not null,
id_coordinator            integer,
id_vehiculo               integer,
id_service_schedule       integer,
id_services_route         integer,
control_encierro          timestamp,
control_primera           timestamp,
control_llegada           timestamp,
fecha                     timestamp,
ruta                      varchar(255),
constraint pk_control primary key (id_control))
;

create table empleado (
id_empleado               integer not null,
nombre                    varchar(255),
apellido_paterno          varchar(255),
apellido_materno          varchar(255),
telefono                  varchar(255),
empleado_tipo_id_empleado_tipo integer,
token                     varchar(255),
usuario                   varchar(255),
password                  varchar(32),
constraint pk_empleado primary key (id_empleado))
;

create table empleado_tipo (
id_empleado_tipo          integer not null,
tipo                      varchar(255),
constraint pk_empleado_tipo primary key (id_empleado_tipo))
;

create table employee_token (
id_employee_token         integer not null,
id_employee               integer,
token                     varchar(255),
activo                    boolean,
constraint pk_employee_token primary key (id_employee_token))
;

create table employees_entities (
id_employees_entities     bigint not null,
id_employee               integer,
id_entitie                integer,
constraint pk_employees_entities primary key (id_employees_entities))
;

create table entities_relationships (
pk_fk_entity_type         bigint,
id_entitie                integer)
;

create table fotos_aptos (
id                        bigint not null,
pk_employee               integer,
foto                      varchar(1000000),
fecha_de_actualizacion    timestamp,
fecha_de_expiracion       timestamp,
constraint pk_fotos_aptos primary key (id))
;

create table fotos_colicion (
id                        bigint not null,
id_revision_puntos_detalle_vehicle bigint,
foto                      varchar(1000000),
constraint pk_fotos_colicion primary key (id))
;

create table fotos_licencia (
id_foto_licencia          bigint not null,
pk_employee               integer,
foto                      varchar(1000000),
fecha_de_actualizacion    timestamp,
fecha_de_expiracion       timestamp,
constraint pk_fotos_licencia primary key (id_foto_licencia))
;

create table fotos_reporte (
id                        bigint not null,
reporte_id                integer,
foto                      varchar(1000000),
constraint pk_fotos_reporte primary key (id))
;

create table fotos_siniestro (
id                        bigint not null,
siniestro_id              integer,
foto                      varchar(1000000),
concepto                  varchar(255),
constraint pk_fotos_siniestro primary key (id))
;

create table mantenimiento (
id                        integer not null,
asunto                    varchar(255),
rating                    integer,
fecha                     timestamp,
estatus                   varchar(255),
constraint pk_mantenimiento primary key (id))
;

create table mantenimiento_checklist_punto_vehicle (
id                        integer not null,
mantenimiento_id          integer,
checklist_punto_vehicle_id bigint,
constraint pk_mantenimiento_checklist_punto primary key (id))
;

create table mantenimiento_detalle (
id_mantenimiento_detalle  integer not null,
mantenimiento_id          integer,
fecha                     timestamp,
detalle                   varchar(255),
fecha_propuesta           timestamp,
estatus                   varchar(255),
constraint pk_mantenimiento_detalle primary key (id_mantenimiento_detalle))
;

create table mantenimiento_historico (
id                        integer not null,
id_vehicle                integer,
fecha                     timestamp,
asunto                    varchar(255),
estatus                   varchar(255),
constraint pk_mantenimiento_historico primary key (id))
;

create table minuta (
id                        integer not null,
empleado_id_empleado      integer,
cliente_id_cliente        integer,
fecha                     timestamp,
contacto                  varchar(255),
titulo                    varchar(255),
hora_inicio               timestamp,
hora_fin                  timestamp,
firma_cliente             varchar(1000000),
firma_cliente_fecha       timestamp,
firma_ejecutivo           varchar(1000000),
firma_ejecutivo_fecha     timestamp,
detalle                   varchar(255),
acuerdo                   varchar(255),
fecha_acuerdo             timestamp,
constraint pk_minuta primary key (id))
;

create table minuta_acuerdos (
id                        integer not null,
acuerdo                   varchar(255),
responsable               varchar(255),
fecha                     timestamp,
minuta_id                 integer,
constraint pk_minuta_acuerdos primary key (id))
;

create table registro (
id_registro               bigint not null,
id_employee               integer,
last_touched              timestamp,
constraint pk_registro primary key (id_registro))
;

create table reporte (
id                        integer not null,
cliente_id_cliente        integer,
empleado_id_empleado      integer,
fecha                     timestamp,
descripcion               varchar(255),
contacto                  varchar(255),
eco                       varchar(255),
tipo                      varchar(255),
estatus                   varchar(255),
constraint pk_reporte primary key (id))
;

create table servicio (
id                        integer not null,
cliente_id_cliente        integer,
contacto                  varchar(255),
cargo                     varchar(255),
telefono                  varchar(255),
celular                   varchar(255),
nextel                    varchar(255),
fax                       varchar(255),
correo                    varchar(255),
momento_salida            timestamp,
momento_regreso           timestamp,
lugar_origen              varchar(255),
calle_origen              varchar(255),
num_ext_origen            varchar(255),
num_int_origen            varchar(255),
delegacion_origen         varchar(255),
colonia_origen            varchar(255),
codigo_postal_origen      varchar(255),
entre_calles_origen       varchar(255),
referencias_origen        varchar(255),
realiza_paradas           varchar(255),
cuantas                   varchar(255),
direccion                 varchar(255),
lugar_destino             varchar(255),
calle_destino             varchar(255),
num_ext_destino           varchar(255),
num_int_destino           varchar(255),
delegacion_destino        varchar(255),
colonia_destino           varchar(255),
codigo_postal_destino     varchar(255),
entre_calles_destino      varchar(255),
referencias_destino       varchar(255),
responsable_servicio      varchar(255),
telefono_servicio         varchar(255),
celular_servicio          varchar(255),
nextel_servicio           varchar(255),
numero_persona            varchar(255),
numero_unidades           varchar(255),
tipo_unidad               varchar(255),
razon_social_fac          varchar(255),
rfc_fac                   varchar(255),
domicilio_fac             varchar(255),
colonia_fac               varchar(255),
delegacion_fac            varchar(255),
codigo_postal_fac         varchar(255),
costo_servicio_fac        varchar(255),
iva_fac                   varchar(255),
total_iva                 varchar(255),
fecha                     timestamp,
estatus                   varchar(255),
constraint pk_servicio primary key (id))
;

create table siniestro (
id                        integer not null,
lugar                     varchar(255),
telefono                  varchar(255),
descripcion               varchar(255),
eco                       integer,
lesionados                boolean,
coordinador_id            integer,
ajustador_id_empleado     integer,
fecha                     timestamp,
estatus                   varchar(255),
monto                     float,
constraint pk_siniestro primary key (id))
;

create table siniestro_convenio (
id                        integer not null,
nom_operador              varchar(255),
nom_tercero               varchar(255),
fecha                     timestamp,
calle                     varchar(255),
monto                     varchar(255),
marca                     varchar(255),
tipo                      varchar(255),
modelo                    varchar(255),
color                     varchar(255),
descripcion_danios        varchar(255),
eco                       varchar(255),
placas_convenio           varchar(255),
placas_tercero            varchar(255),
telefono_tercero          varchar(255),
firma_operador            varchar(255),
firma_tercero             varchar(255),
firma_ajustador           varchar(255),
siniestro_id              integer,
constraint pk_siniestro_convenio primary key (id))
;

create table siniestro_declaracion (
id                        integer not null,
a_cargo_de                varchar(255),
forma_de_pago             varchar(255),
declaracion_conductor     varchar(255),
convenio                  varchar(255),
delegacion_municipio      varchar(255),
numero_usuarios           varchar(255),
telefono                  varchar(255),
declaracion_tercero       varchar(255),
operador                  varchar(255),
ute                       varchar(255),
observaciones             varchar(255),
placas                    varchar(255),
danios                    varchar(255),
nombre_operador           varchar(255),
razon_social              varchar(255),
otros                     varchar(255),
culpa_lipu                varchar(255),
lesiones                  varchar(255),
peticion                  varchar(255),
lugar_direccion           varchar(255),
hora_siniestro            varchar(255),
clave                     varchar(255),
lugar_accidente           varchar(255),
acepta_responsabilidad    varchar(255),
de_acuerdo_con_pago_tercero varchar(255),
firma_ajustador           varchar(255),
firma_operador            varchar(255),
firma_operador2           varchar(255),
siniestro_id              integer,
constraint pk_siniestro_declaracion primary key (id))
;

create table siniestro_pago (
id                        integer not null,
num_siniestro             varchar(255),
ajustador                 varchar(255),
fecha                     timestamp,
propietario_afectado      varchar(255),
vehiculo_afectado         varchar(255),
descripcion_danios        varchar(255),
marca                     varchar(255),
tipo                      varchar(255),
modelo                    varchar(255),
color                     varchar(255),
num_serie                 varchar(255),
num_motor                 varchar(255),
placas                    varchar(255),
importe_total             varchar(255),
otros                     varchar(255),
total                     varchar(255),
condicionada              varchar(255),
num_tercero               varchar(255),
firma_tercero             varchar(255),
lugar_accidente           varchar(255),
siniestro_id              integer,
constraint pk_siniestro_pago primary key (id))
;

create table usuario (
id_usuario                bigint not null,
nombre                    varchar(255),
usuario                   varchar(255),
password                  varchar(255),
constraint pk_usuario primary key (id_usuario))
;

create table usuario_app (
id_usuario_app            bigint not null,
usuario                   varchar(255),
password                  varchar(255),
id_employee               integer,
constraint pk_usuario_app primary key (id_usuario_app))
;

create sequence checklist_seq;

create sequence checklist_fotos_punto_seq;

create sequence checklist_punto_seq;

create sequence checklist_punto_vehicle_seq;

create sequence checklist_punto_vehicle_bitacora_seq;

create sequence cliente_seq;

create sequence cobranza_seq;

create sequence colision_seq;

create sequence combustible_programa_seq;

create sequence combustible_programa_foto_seq;

create sequence control_seq;

create sequence empleado_seq;

create sequence empleado_tipo_seq;

create sequence employee_token_seq;

create sequence employees_entities_seq;

create sequence fotos_aptos_seq;

create sequence fotos_colicion_seq;

create sequence fotos_licencia_seq;

create sequence fotos_reporte_seq;

create sequence fotos_siniestro_seq;

create sequence mantenimiento_seq;

create sequence mantenimiento_checklist_punto_vehicle_seq;

create sequence mantenimiento_detalle_seq;

create sequence mantenimiento_historico_seq;

create sequence minuta_seq;

create sequence minuta_acuerdos_seq;

create sequence registro_seq;

create sequence reporte_seq;

create sequence servicio_seq;

create sequence siniestro_seq;

create sequence siniestro_convenio_seq;

create sequence siniestro_declaracion_seq;

create sequence siniestro_pago_seq;

create sequence usuario_seq;

create sequence usuario_app_seq;

alter table checklist_fotos_punto add constraint fk_checklist_fotos_punto_check_1 foreign key (checklist_punto_vehicle_id) references checklist_punto_vehicle (id);
create index ix_checklist_fotos_punto_check_1 on checklist_fotos_punto (checklist_punto_vehicle_id);
alter table checklist_punto add constraint fk_checklist_punto_checklist_2 foreign key (id_checklist) references checklist (id_checklist);
create index ix_checklist_punto_checklist_2 on checklist_punto (id_checklist);
alter table checklist_punto add constraint fk_checklist_punto_checklistPa_3 foreign key (checklist_padre_id_checklist_punto) references checklist_punto (id_checklist_punto);
create index ix_checklist_punto_checklistPa_3 on checklist_punto (checklist_padre_id_checklist_punto);
alter table checklist_punto_vehicle add constraint fk_checklist_punto_vehicle_che_4 foreign key (checklist_punto_id_checklist_punto) references checklist_punto (id_checklist_punto);
create index ix_checklist_punto_vehicle_che_4 on checklist_punto_vehicle (checklist_punto_id_checklist_punto);
alter table checklist_punto_vehicle_bitacora add constraint fk_checklist_punto_vehicle_bit_5 foreign key (checklist_punto_vehicle_id) references checklist_punto_vehicle (id);
create index ix_checklist_punto_vehicle_bit_5 on checklist_punto_vehicle_bitacora (checklist_punto_vehicle_id);
alter table cliente add constraint fk_cliente_empleado_6 foreign key (empleado_id_empleado) references empleado (id_empleado);
create index ix_cliente_empleado_6 on cliente (empleado_id_empleado);
alter table cobranza add constraint fk_cobranza_cliente_7 foreign key (cliente_id_cliente) references cliente (id_cliente);
create index ix_cobranza_cliente_7 on cobranza (cliente_id_cliente);
alter table combustible_programa add constraint fk_combustible_programa_emplea_8 foreign key (empleado_id_empleado) references empleado (id_empleado);
create index ix_combustible_programa_emplea_8 on combustible_programa (empleado_id_empleado);
alter table combustible_programa_foto add constraint fk_combustible_programa_foto_c_9 foreign key (combustible_programa_id_combustible_programa) references combustible_programa (id_combustible_programa);
create index ix_combustible_programa_foto_c_9 on combustible_programa_foto (combustible_programa_id_combustible_programa);
alter table empleado add constraint fk_empleado_empleadoTipo_10 foreign key (empleado_tipo_id_empleado_tipo) references empleado_tipo (id_empleado_tipo);
create index ix_empleado_empleadoTipo_10 on empleado (empleado_tipo_id_empleado_tipo);
alter table fotos_colicion add constraint fk_fotos_colicion_colicion_11 foreign key (id_revision_puntos_detalle_vehicle) references colision (id);
create index ix_fotos_colicion_colicion_11 on fotos_colicion (id_revision_puntos_detalle_vehicle);
alter table fotos_reporte add constraint fk_fotos_reporte_reporte_12 foreign key (reporte_id) references reporte (id);
create index ix_fotos_reporte_reporte_12 on fotos_reporte (reporte_id);
alter table fotos_siniestro add constraint fk_fotos_siniestro_siniestro_13 foreign key (siniestro_id) references siniestro (id);
create index ix_fotos_siniestro_siniestro_13 on fotos_siniestro (siniestro_id);
alter table mantenimiento_checklist_punto_vehicle add constraint fk_mantenimiento_checklist_pu_14 foreign key (mantenimiento_id) references mantenimiento (id);
create index ix_mantenimiento_checklist_pu_14 on mantenimiento_checklist_punto_vehicle (mantenimiento_id);
alter table mantenimiento_checklist_punto_vehicle add constraint fk_mantenimiento_checklist_pu_15 foreign key (checklist_punto_vehicle_id) references checklist_punto_vehicle (id);
create index ix_mantenimiento_checklist_pu_15 on mantenimiento_checklist_punto_vehicle (checklist_punto_vehicle_id);
alter table mantenimiento_detalle add constraint fk_mantenimiento_detalle_mant_16 foreign key (mantenimiento_id) references mantenimiento (id);
create index ix_mantenimiento_detalle_mant_16 on mantenimiento_detalle (mantenimiento_id);
alter table minuta add constraint fk_minuta_empleado_17 foreign key (empleado_id_empleado) references empleado (id_empleado);
create index ix_minuta_empleado_17 on minuta (empleado_id_empleado);
alter table minuta add constraint fk_minuta_cliente_18 foreign key (cliente_id_cliente) references cliente (id_cliente);
create index ix_minuta_cliente_18 on minuta (cliente_id_cliente);
alter table minuta_acuerdos add constraint fk_minuta_acuerdos_minuta_19 foreign key (minuta_id) references minuta (id);
create index ix_minuta_acuerdos_minuta_19 on minuta_acuerdos (minuta_id);
alter table reporte add constraint fk_reporte_cliente_20 foreign key (cliente_id_cliente) references cliente (id_cliente);
create index ix_reporte_cliente_20 on reporte (cliente_id_cliente);
alter table reporte add constraint fk_reporte_empleado_21 foreign key (empleado_id_empleado) references empleado (id_empleado);
create index ix_reporte_empleado_21 on reporte (empleado_id_empleado);
alter table servicio add constraint fk_servicio_cliente_22 foreign key (cliente_id_cliente) references cliente (id_cliente);
create index ix_servicio_cliente_22 on servicio (cliente_id_cliente);
alter table siniestro add constraint fk_siniestro_ajustador_23 foreign key (ajustador_id_empleado) references empleado (id_empleado);
create index ix_siniestro_ajustador_23 on siniestro (ajustador_id_empleado);
alter table siniestro_convenio add constraint fk_siniestro_convenio_siniest_24 foreign key (siniestro_id) references siniestro (id);
create index ix_siniestro_convenio_siniest_24 on siniestro_convenio (siniestro_id);
alter table siniestro_declaracion add constraint fk_siniestro_declaracion_sini_25 foreign key (siniestro_id) references siniestro (id);
create index ix_siniestro_declaracion_sini_25 on siniestro_declaracion (siniestro_id);
alter table siniestro_pago add constraint fk_siniestro_pago_siniestro_26 foreign key (siniestro_id) references siniestro (id);
create index ix_siniestro_pago_siniestro_26 on siniestro_pago (siniestro_id);