import 'package:rkm/service/db/db_sqlite_load.dart';
import 'package:sqflite/sqflite.dart';

class DbSqliteSync{

  Future deleteSync()async{
      var querys = [
           "DELETE FROM CONTROLE_INTERNO",
           "DELETE FROM BAIRROS;",
           "DELETE FROM LOGRADOUROS_TIPOS;",
           "DELETE FROM LOGRADOUROS_ENDERECOS;",
           "DELETE FROM LOGRADOUROS_LOTEAMENTOS;",
           "DELETE FROM PROFISSIONAIS;",
           "DELETE FROM PROFISSIONAIS_CBOS;",
           "DELETE FROM CIDADAOS;",
           "DELETE FROM CIDADAO_DOMICILIO;",
           "DELETE FROM CADASTROS_INDIVIDUAIS;",
           "DELETE FROM DOMICILIOS_CIDADAOS;"
      ];
      Database db = await DbSqliteLoad().intialDB();
      for(int i=0;querys.length>i;i++){
           db.execute(querys[i]);
      }
 }
  Future insertBairros(var value)async{
       Database db = await DbSqliteLoad().intialDB();
       //"idBairro":2,"nomeBairro":"RURAL"
       // BAIRROS (ID_BAIRRO INTEGER PRIMARY KEY AUTOINCREMENT, NO_BAIRRO TEXT);');
       for(int i=0;value.length > i;i++){
            Map<String, dynamic> row = {
                 'ID_BAIRRO'   : value[i]['idBairro'],
                 'NO_BAIRRO' : value[i]['nomeBairro'],
            };
            int id = await db.insert('BAIRROS', row);
            // print('id increment $id');
       }
       // print(await db.query('BAIRROS'));
       return db;
  }
  Future insertTiposLogradouros(var value)async{
       Database db = await DbSqliteLoad().intialDB();

       // LOGRADOUROS_TIPOS (ID_LOGR_TIPO INTEGER PRIMARY KEY AUTOINCREMENT, NO_LOGR_TIPO TEXT);
       //     {"idTipoLogradouro":0,"nomeTipoLogradouro":"NAO DEFINIDO"}
       for(int i=0;value.length > i;i++){
            Map<String, dynamic> row = {
                 'ID_LOGR_TIPO'    : value[i]['idTipoLogradouro'],
                 'NO_LOGR_TIPO'    : value[i]['nomeTipoLogradouro'],
            };
            int id = await db.insert('LOGRADOUROS_TIPOS', row);
            // print('id increment $id');
            // print(await db.query('LOGRADOUROS_TIPOS'));
       }
       return db;
  }
  Future insertLogradouros(var value)async{
       Database db = await DbSqliteLoad().intialDB();
       // LOGRADOUROS_ENDERECOS (ID_LOGR_ENDERECO INTEGER, ID_LOGR_TIPO INTEGER, DESC_LOGR_ENDERECO TEXT, ID_BAIRRO INTEGER);
       // "idLogradouro":7,"descLogradouro":"1A","idTipoLogradouro":6,"idBairro":65
       for(int i=0;value.length > i;i++){
            Map<String, dynamic> row = {
               'ID_LOGR_ENDERECO'   : value[i]['idLogradouro'],
               'ID_LOGR_TIPO'       : value[i]['idTipoLogradouro'],
               'DESC_LOGR_ENDERECO' : value[i]['descLogradouro'],
               'ID_BAIRRO'          : value[i]['idBairro'],
            };
            int id = await db.insert('LOGRADOUROS_ENDERECOS', row);
            // print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO');
            // print(await db.query('LOGRADOUROS_ENDERECOS'));
       }
       return db;
  }
  Future insertLoteamentos(var value)async{
     Database db = await DbSqliteLoad().intialDB();
     // LOGRADOUROS_LOTEAMENTOS (ID_LOGR_LOTEAMENTO INTEGER PRIMARY KEY AUTOINCREMENT, DESC_LOGR_LOTEAMENTO TEXT);
     // "idLoteamento":1,"descLoteamento":"ASSENTAMENTO MARINEL"
     for(int i=0;value.length > i;i++){
       Map<String, dynamic> row = {
         'ID_LOGR_LOTEAMENTO'   : value[i]['idLoteamento'],
         'DESC_LOGR_LOTEAMENTO' : value[i]['descLoteamento'],
       };
       int id = await db.insert('LOGRADOUROS_LOTEAMENTOS', row);
       // print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO');
       // print(await db.query('LOGRADOUROS_LOTEAMENTOS'));
     }
     return db;
  }
  Future insertProfissionais(var value)async{
     Database db = await DbSqliteLoad().intialDB();
     // PROFISSIONAIS (ID_PROFISSIONAL INTEGER PRIMARY KEY AUTOINCREMENT, NOME_PROFISSIONAL TEXT, CNS_PROFISSIONAL TEXT, USERNAME TEXT, SENHA TEXT, BLOQUEIO_ACESSO INTEGER);');
     // "idProfissional":1,"nomeProfissional":"ADMINISTRADOR","CNSProfissional":"999999999999999","username":"ADMIN","senha":"1$c124af0fb0b0941b907a9ddf3d5fb3c921d64e7d","bloqueioAcesso":0
     for(int i=0;value.length > i;i++){
       Map<String, dynamic> row = {
         'ID_PROFISSIONAL'  : value[i]['idProfissional'],
         'NOME_PROFISSIONAL': value[i]['nomeProfissional'],
         'CNS_PROFISSIONAL' : value[i]['CNSProfissional'],
         'USERNAME'         : value[i]['username'],
         'SENHA'            : value[i]['senha'],
         'BLOQUEIO_ACESSO'  : value[i]['bloqueioAcesso'],
       };
       int id = await db.insert('PROFISSIONAIS', row);
       // print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO');
       // print(await db.query('PROFISSIONAIS'));
     }
     return db;
  }
  Future insertProfissionaisCBOs(var value)async{
     Database db = await DbSqliteLoad().intialDB();
     // PROFISSIONAIS_CBOS (ID_PROFISSIONAL INTEGER, CODIGO_CBO TEXT);');
     // "idProfissional":1,"codCBO":"225125"
     for(int i=0;value.length > i;i++){
       Map<String, dynamic> row = {
         'ID_PROFISSIONAL'  : value[i]['idProfissional'],
         'CODIGO_CBO'       : value[i]['codCBO'],
       };
       int id = await db.insert('PROFISSIONAIS_CBOS', row);
       // print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO');
       // print(await db.query('PROFISSIONAIS_CBOS'));
     }
     return db;
  }
  Future insertCidadaos(var value,String type,String CD_USUARIO_SUS)async{
    Database db = await DbSqliteLoad().intialDB();
    // CIDADAOS (ID_CIDADAO,CD_USUARIO_SUS,NOME_CIDADAO,NOME_SOCIAL,SEXO,DT_NASCIMENTO,ID_ESTADO_CIVIL,NOME_CONJUGE,NACIONALIDADE,ID_MUNICIPIO_NASC,NO_MUNICIPIO_NASC,ESTADO_UF_NASC
    // ID_ETNIA,ID_ESCOLARIDADE,ID_DEFICIENCIA,NOME_MAE,DESCONHECE_MAE,NOME_PAI,DESCONHECE_PAI,ID_UNIDADE,NUM_PRONTUARIO,NUM_PRONTUARIO_PROV,CLASSIFICACAO,CLASSIFICACAO_SUB,
    // NUM_FAMILIA,ID_PAIS_RESID,ID_MUNICIPIO_RESID,NO_MUNICIPIO_RESID,ESTADO_UF_RESID,CODIGO_IBGE_RESID,NO_BAIRRO_LOGR,ID_LOGR_TIPO,NOME_LOGR,CEP_LOGR,NUMERO_LOGR,LOTEAMENTO_LOGR
    // COMPL_LOGR,PONTO_REFERENCIA,ZONA_LOGR,DDD_TELEFONE,NUM_TELEFONE,DDD_CELULAR,NUM_CELULAR,DDD_RECADO,NUM_RECADO,EMAIL,OBSERVACOES,CPF,CNS,TITULO_ELEITOR,RG_NUMERO,
    // RG_COMPLEMENTO,RG_UF,RG_ORGAO,RG_DATA_EMISSAO,TIPO_CERTIDAO,NUM_CERTIDAO,CARTORIO_CERTIDAO,LIVRO_CERTIDAO,FOLHA_CERTIDAO,TERMO_CERTIDAO,DT_EMISSAO_CERTIDAO,NUM_CTPS,
    // NUM_SERIE_CTPS,ESTADO_UF_CTPS,NUM_PIS_PASEP,FL_RETIROU_CARTAO,NUM_NIS,NUM_PROT_CROSS,RENDA_MENSAL,PROFISSAO,DT_OBITO,DECLARACAO_OBITO,BLOQUEIO,ORIGEM,DT_HORA_CADASTRO,
    // ID_USUARIO_CADASTRO,ID_DOMICILIO,ATENDIMENTOS,SINCRONIZADO);');
    '"idCidadao":3,"cdUsuarioSus":"571A22D79C24526537C7E4CE8C0D4046","noUsuario":"REBECA MARIA DE MELO RIBEIRO DOS SANTOS","nomeSocial":"","inSexo":"F",'
    '"dtNascimento":"2007-01-20","inSituacaoConjugal":null,"noConjugue":"","nacionalidade":1,"cdMunicipioNasc":1523,"noMunicipioNasc":"CORUMBATAI","cdEstado":"SP","cdEtnia":1,'
    '"cdUsuarioEscolaridade":4,"nrDeficiencia":null,"noMae":"JOELMA MARIA DE MELO","desconheceMae":0,"noPai":"AILTON JOSE RIBEIRO DOS SANTOS","desconhecePai":0,"nrUnidade":3,'
    '"nrProntuario":"000004","nrProntuarioProvisorio":null,"classificacao":1,"nrFamilia":"","idPaisResid":33,"cdMunicipioResid":3427,"noMunicipioResid":"CORUMBATAI",'
    '"cdEstadoResid":"SP","muniCdCodIbgeResid":"351270","noBairro":"RURAL","idTipoLogradouro":6,"noLogradouro":"NAO INFORMADO","cdCep":"13540000","nrLogradouro":"0",'
    '"loteamento":"","noComplLogradouro":"WASHIGNTON LUIZ","pontoReferencia":"","zona":2,"nrDddTelefone":"","nrTelefone":"","nrDddCelular":"11","nrCelular":"976399671",'
    '"nrDddRecado":"","nrRecado":"","email":"","observacao":"","nrCpf":"57459957852","nrCns":"702309150758010","tituloEleitor":null,"nrIdentidade":"","noComplIdentidade":"",'
    '"cdSiglaUfIdentidade":"--","cdOrgaoEmissorIdentidade":null,"dtEmissaoIdentidade":null,"cdTipoCertidao":null,"nrCertidaoNova":"","noCartorioCertidao":"",'
    '"nrLivroCertidao":null,"nrFolhaCertidao":null,"noTermoCertidao":"","dtEmissaoCertidao":null,"nrCtps":null,"nrSerieCtps":null,"cdSiglaUfCtps":"--","nrPispasep":"",'
    '"cartaoMunicipalRetirado":"N","nrNis":"","rendaMensal":null,"profissao":"","dtObito":null,"bloqueio":"0","origem":"S","cdDomicilio":1838,"atendimentos":0,'
    '"idUsuarioCadastro":null';

    if(type=='sync'){
      for(int i=0;value.length > i;i++){
        Map<String, dynamic> row = {
          'ID_CIDADAO'          : value[i]['idCidadao'],
          'CD_USUARIO_SUS'      : value[i]['cdUsuarioSus'],
          'NOME_CIDADAO'        : value[i]['noUsuario'],
          'NOME_SOCIAL'         : value[i]['nomeSocial'],
          'SEXO'                : value[i]['inSexo'],
          'DT_NASCIMENTO'       : value[i]['dtNascimento'],
          'ID_ESTADO_CIVIL'     : value[i]['inSituacaoConjugal'],
          'ID_ESTADO_CIVIL'     : value[i]['inSituacaoConjugal'],
          'NOME_CONJUGE'        : value[i]['noConjugue'],
          'NACIONALIDADE'       : value[i]['nacionalidade'],
          'ID_MUNICIPIO_NASC'   : value[i]['cdMunicipioNasc'],
          'NO_MUNICIPIO_NASC'   : value[i]['noMunicipioNasc'],
          'ESTADO_UF_NASC'      : value[i]['cdEstado'],
          'ID_ETNIA'            : value[i]['cdEtnia'],
          'ID_ESCOLARIDADE'     : value[i]['cdUsuarioEscolaridade'],
          'ID_DEFICIENCIA'      : value[i]['nrDeficiencia'],
          'NOME_MAE'            : value[i]['noMae'],
          'DESCONHECE_MAE'      : value[i]['desconheceMae'],
          'NOME_PAI'            : value[i]['noPai'],
          'DESCONHECE_PAI'      : value[i]['desconhecePai'],
          'ID_UNIDADE'          : value[i]['nrUnidade'],
          'NUM_PRONTUARIO'      : value[i]['nrProntuario'],
          'NUM_PRONTUARIO_PROV' : value[i]['nrProntuarioProvisorio'],
          'CLASSIFICACAO'       : value[i]['classificacao'],
          'CLASSIFICACAO_SUB'   : '',
          'NUM_FAMILIA'         : value[i]['nrFamilia'],
          'ID_PAIS_RESID'       : value[i]['idPaisResid'],
          'ID_MUNICIPIO_RESID'  : value[i]['cdMunicipioResid'],
          'NO_MUNICIPIO_RESID'  : value[i]['noMunicipioResid'],
          'ESTADO_UF_RESID'     : value[i]['cdEstadoResid'],
          'CODIGO_IBGE_RESID'   : value[i]['muniCdCodIbgeResid'],
          'NO_BAIRRO_LOGR'      : value[i]['noBairro'],
          'ID_LOGR_TIPO'        : value[i]['idTipoLogradouro'],
          'NOME_LOGR'           : value[i]['noLogradouro'],
          'CEP_LOGR'            : value[i]['cdCep'],
          'NUMERO_LOGR'         : value[i]['nrLogradouro'],
          'LOTEAMENTO_LOGR'     : value[i]['loteamento'],
          'COMPL_LOGR'          : value[i]['noComplLogradouro'],
          'PONTO_REFERENCIA'    : value[i]['pontoReferencia'],
          'ZONA_LOGR'           : value[i]['zona'],
          'DDD_TELEFONE'        : value[i]['nrDddTelefone'],
          'NUM_TELEFONE'        : value[i]['nrTelefone'],
          'DDD_CELULAR'        : value[i]['nrDddCelular'],
          'NUM_CELULAR'        : value[i]['nrCelular'],
          'DDD_RECADO'          : value[i]['nrDddRecado'],
          'NUM_RECADO'          : value[i]['nrRecado'],
          'EMAIL'               : value[i]['email'],
          'OBSERVACOES'         : value[i]['observacao'],
          'CPF'                 : value[i]['nrCpf'],
          'CNS'                 : value[i]['nrCns'],
          'TITULO_ELEITOR'      : value[i]['tituloEleitor'],
          'RG_NUMERO'           : value[i]['nrIdentidade'],
          'RG_COMPLEMENTO'      : value[i]['noComplIdentidade'],
          'RG_UF'               : value[i]['cdSiglaUfIdentidade'],
          'RG_ORGAO'            : value[i]['cdOrgaoEmissorIdentidade'],
          'RG_DATA_EMISSAO'     : value[i]['dtEmissaoIdentidade'],
          'TIPO_CERTIDAO'       : value[i]['cdTipoCertidao'],
          'NUM_CERTIDAO'        : value[i]['nrCertidaoNova'],
          'CARTORIO_CERTIDAO'   : value[i]['noCartorioCertidao'],
          'LIVRO_CERTIDAO'      : value[i]['nrLivroCertidao'],
          'FOLHA_CERTIDAO'      : value[i]['nrFolhaCertidao'],
          'TERMO_CERTIDAO'      : value[i]['noTermoCertidao'],
          'DT_EMISSAO_CERTIDAO' : value[i]['dtEmissaoCertidao'],
          'NUM_CTPS'            : value[i]['nrCtps'],
          'NUM_SERIE_CTPS'      : value[i]['nrSerieCtps'],
          'ESTADO_UF_CTPS'      : value[i]['cdSiglaUfCtps'],
          'NUM_PIS_PASEP'       : value[i]['nrPispasep'],
          'FL_RETIROU_CARTAO'   : value[i]['cartaoMunicipalRetirado'],
          'NUM_NIS'             : value[i]['nrNis'],
          'NUM_PROT_CROSS'      : '',
          'RENDA_MENSAL'        : value[i]['rendaMensal'],
          'PROFISSAO'           : value[i]['profissao'],
          'DT_OBITO'            : value[i]['dtObito'],
          'DECLARACAO_OBITO'    : '',
          'BLOQUEIO'            : value[i]['bloqueio'],
          'ORIGEM'              : value[i]['origem'],
          'DT_HORA_CADASTRO'    : value[i]['profissao'],
          'ID_USUARIO_CADASTRO' : value[i]['idUsuarioCadastro'],
          'ID_DOMICILIO'        : value[i]['cdDomicilio'],
          'ATENDIMENTOS'        : value[i]['atendimentos'],
          'SINCRONIZADO'        : '',
        };
        int id = await db.insert('CIDADAOS', row);
        // print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO');
        // print(await db.query('CIDADAOS'));
      }
    }else if(type=='new'){
      int id = await db.insert('CIDADAOS', value);
      // print('novo id $id');
    }else if(type=='update'){
      await db.update('CIDADAOS', value,where: "CD_USUARIO_SUS = '$CD_USUARIO_SUS'");
    }
    return db;
  }
  Future insertCadastrosDomiciliares(var value)async{
    Database db = await DbSqliteLoad().intialDB();
    // CIDADAO_DOMICILIO (ID_DOMICILIO,TIPO_IMOVEL,ID_AREA_DOMICILIO,ID_MICROAREA_DOMICILIO,FORA_AREA,SITUACAO_MORADIA,TIPO_LOCALIDADE,TIPO_DOMICILIO,NUM_MORADORES,
    // NUM_COMODOS,SITUACAO_RURAL,TIPO_ACESSO,MAT_PREDOMINANTE,DISPONIBILIDADE_ENERGIA,TIPO_ABASTECIMENTO,TRATAMENTO_AGUA,DESTINO_LIXO,ESCOAMENTO,FL_ANIMAIS,
    // ANIMAIS_GATO,ANIMAIS_CACHORRO,ANIMAIS_PASSARO,ANIMAIS_OUTROS,QTDE_ANIMAIS,CBO_RESP_CADASTRO,ID_RESP_CADASTRO,CNES_RESP_CADASTRO,INE_RESP_CADASTRO,DT_CADASTRO,
    // ID_EQUIPE,ORIGEM,SINCRONIZADO,NOME_INSTITUICAO_PERMANENCIA,PROFISSIONAIS_VINCULADOS_INST,RESPONSAVEL_TECNICO_INST,CNS_RESP_TECNICO_INST,CARGO_RESP_TECNICO_INST,
    // TEL_RESP_TECNICO_INST)

    // "cdDomicilio":16,"cdTipoImovel":1,"cdAreaDomicilio":null,"cdMicroareaDomicilio":null,"foraArea":1,"cdSituacao":2,"cdTipoLocalidade":1,"cdTipoDomicilio":1,
    // "nrMoradores":6,"nrComodo":7,"situacaoProducaoRural":0,"tipoAcesso":1,"materialParedesExternas":1,"dispEnergiaEletrica":1,"cdTipoAbastecimento":1,"cdTratamentoAgua":4,
    // "cdDestinoLixo":1,"cdEscoamento":1,"animais":0,"animaisGato":0,"animaisCachorro":0,"animaisPassaro":0,"animaisOutros":0,"animaisQtde":null,"respCadastro":68,
    // "cnesUnidade":"9372253","cboRespCadastro":"515105","ine":"0001485628","dtCadastro":"2021-11-10","cdEquipe":5,"noInstPermanencia":null,"outrosProfissionaisInst":null,
    // "noResponsavelInst":null,"cnsResponsavelInst":null,"gargoResponsavelInst":null,"telefoneResponsavelInst":null
    for(int i=0;value.length > i;i++){
      Map<String, dynamic> row = {
        'ID_DOMICILIO'                : value[i]['cdDomicilio'],
        'TIPO_IMOVEL'                 : value[i]['cdTipoImovel'],
        'ID_AREA_DOMICILIO'           : value[i]['cdAreaDomicilio'],
        'ID_MICROAREA_DOMICILIO'      : value[i]['cdMicroareaDomicilio'],
        'FORA_AREA'                   : value[i]['foraArea'],
        'SITUACAO_MORADIA'            : value[i]['cdSituacao'],
        'TIPO_LOCALIDADE'             : value[i]['cdTipoLocalidade'],
        'TIPO_DOMICILIO'              : value[i]['cdTipoDomicilio'],
        'NUM_MORADORES'               : value[i]['nrMoradores'],
        'NUM_COMODOS'                 : value[i]['nrComodo'],
        'SITUACAO_RURAL'              : value[i]['situacaoProducaoRural'],
        'TIPO_ACESSO'                 : value[i]['tipoAcesso'],
        'MAT_PREDOMINANTE'            : value[i]['materialParedesExternas'],
        'DISPONIBILIDADE_ENERGIA'     : value[i]['dispEnergiaEletrica'],
        'TIPO_ABASTECIMENTO'          : value[i]['cdTipoAbastecimento'],
        'TRATAMENTO_AGUA'             : value[i]['cdTratamentoAgua'],
        'DESTINO_LIXO'                : value[i]['cdDestinoLixo'],
        'ESCOAMENTO'                  : value[i]['cdEscoamento'],
        'FL_ANIMAIS'                  : value[i]['animais'],
        'ANIMAIS_GATO'                : value[i]['animaisGato'],
        'ANIMAIS_CACHORRO'            : value[i]['animaisCachorro'],
        'ANIMAIS_PASSARO'             : value[i]['animaisPassaro'],
        'ANIMAIS_OUTROS'              : value[i]['animaisOutros'],
        'QTDE_ANIMAIS'                : value[i]['animaisQtde'],
        'CBO_RESP_CADASTRO'           : value[i]['cboRespCadastro'],
        'ID_RESP_CADASTRO'            : value[i]['respCadastro'],
        'CNES_RESP_CADASTRO'          : value[i]['cnesUnidade'],
        'INE_RESP_CADASTRO'           : value[i]['ine'],
        'DT_CADASTRO'                 : value[i]['dtCadastro'],
        'ID_EQUIPE'                   : value[i]['cdEquipe'],
        'ORIGEM'                      : '',
        'SINCRONIZADO'                : '',
        'NOME_INSTITUICAO_PERMANENCIA': value[i]['noInstPermanencia'],
        'PROFISSIONAIS_VINCULADOS_INST': value[i]['outrosProfissionaisInst'],
        'RESPONSAVEL_TECNICO_INST'     : value[i]['noResponsavelInst'],
        'PROFISSIONAIS_VINCULADOS_INST': value[i]['gargoResponsavelInst'],
        'TEL_RESP_TECNICO_INST'        : value[i]['telefoneResponsavelInst'],
      };
      int id = await db.insert('CIDADAO_DOMICILIO', row);
      // print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO');
      // print(await db.query('CIDADAO_DOMICILIO'));
    }
    return db;
  }
  Future insertCadastrosIndividuais(var value)async{
    Database db = await DbSqliteLoad().intialDB();
    //  CADASTROS_INDIVIDUAIS (ID_CAD_INDIVIDUAL,STATUS_CADASTRO,ID_CIDADAO,CD_USUARIO_SUS,ID_AREA_CIDADAO,ID_MICROAREA_CIDADAO,FORA_AREA,RESPONSAVEL_FAMILIAR,
    //  ID_RESPONSAVEL_FAMILIAR,NOME_RESPONSAVEL_FAMILIAR,PARENTESCO,ESCOLARIDADE,FREQ_ESCOLA_CRECHE,SITUACAO_MERCADO,CUIDADOR_TRADICIONAL,GRUPO_COMUNITARIO,PLANO_PRIVADO,
    //  COMUNIDADE_TRADICIONAL,COM_TRADI_QUAL,ORIENT_SEXUAL,TEM_DEFICIENCIA,DEF_AUDITIVA,DEF_INTELECTUAL,DEF_VISUAL,DEF_FISICA,DEF_OUTRAS,SAIDA_CADASTRO,DATA_SAIDA_CADASTRO,
    //  CADASTRO_RECUSADO,GESTANTE,MATERNIDADE_REFERENCIA,PESO,FUMANTE,USA_ALCOOL,USA_DROGAS,HIPERTENSAO,DIABETES,AVC_DERRAME,INFARTO,HANSENIASE,TUBERCULOSE,CANCER,
    //  INTERNACAO,MOTIVO,DOENCA_CARDIACA,PROBLEMA_RINS,DOENCA_PULMAO,SAUDE_MENTAL,ACAMADO,DOMICILIADO,PLANTAS_MED,PLANTAS_MED_QUAIS,PIC,OUTRAS_CONDICOES,TEMPO_SITUACAO_RUA
    //  ACOMP_INTITUICAO,ACOMP_INTITUICAO_QUAL,BENEFICIO,REF_FAMILIAR,VISITA_FAMILIAR,PARENTESCO_VISITA,ALIMENTACAO_DIARIA,REST_POPULAR,DOACAO_REST,DOACAO_RELIGIOSO,
    //  DOACAO_POPULAR,OUTROS_ALIM,ACESSO_HIGIENE,BANHO,SANITARIO,HIGIENE_BUCAL,OUTROS_HIGIENE,FICHA_ALTERACAO,ID_RESP_CADASTRO,CNES_RESP_CADASTRO,CBO_RESP_CADASTRO,
    //  INE_RESP_CADASTRO,DT_CADASTRO,ID_EQUIPE,ORIGEM,SINCRONIZADO,DT_ENTRADA_BRASIL,DT_NATURALIZACAO,PORTARIA_NATURALIZACAO,CRIANCAS_ADULTO,CRIANCAS_OUTRAS_CRIANCAS,
    //  CRIANCAS_ADOLESCENTE,CRIANCAS_SOZINHA,CRIANCAS_CRECHE,CRIANCAS_OUTRO,IDENTIDADE_GENERO)

    // "idCadIndividual":5,"idCidadao":6,"cdUsuarioSUS":"4576021578C044ACF57CF5582356B697","idAreaCidadao":null,"idMicroAreaCidadao":null,"foraArea":1,"flResponsavelFamiliar":1,
    // "cdResponsavelFamiliar":"4576021578C044ACF57CF5582356B697","nomeResponsavelFamiliar":"MARIA CLEIDIANA DE OLIVEIRA CRUZ","parentesco":null,"curso":11,"frequentaEscola":null,
    // "situacaoMercado":2,"cuidadorTrad":2,"grupoComunitario":2,"plSaudePrivado":2,"comunidadeTradicional":2,"comunidadeTradicionalEspec":"","orientacaoSexual":2,
    // "temDeficiencia":2,"defAuditiva":2,"defIntelectual":2,"defVisual":2,"defFisica":2,"defOutros":2,"saidaMotivo":null,"saidaData":null,"recusado":null,"gestante":null,
    // "maternidadeReferencia":"","peso":2,"fumante":null,"usaAlcool":1,"outrasDrogas":2,"hipertensao":2,"diabetes":2,"avcDerrame":2,"infarto":2,"hanseniase":2,"tuberculose":2,
    // "cancer":2,"internacao12Meses":2,"motivo":"","doencaCardiaca":1,"problemasRins":1,"doencaRespiratoriaPulmao":1,"tratamInternacaoPsiquiatrica":2,"acamado":2,
    // "domiciliado":2,"plantasMedicinais":2,"plantasQuais":"","praticasIntegrativasComplem":null,"outrasCondSaude":"","tempoSituacaoRua":1,"acompanhadoInstituicao":null,
    // "instituicaoQual":"","recebeBeneficio":null,"referenciaFamiliar":null,"visitaFamiliarFrequente":null,"visitaFamiliarParentesco":"","alimentacaoDiaria":null,
    // "alimentecaoRestaurantePop":2,"alimentacaoDoacaoRestaurante":2,"alimentacaoDoacaoGrupoRel":2,"alimentacaoDoacaoPop":2,"alimentacaoOutros":2,"higienePessoal":2,
    // "higieneBanho":2,"higieneSanitario":2,"higieneBucal":2,"higieneOutros":2,"fichaAlteracao":null,"idProfissionalResponsavel":68,"cnesUnidade":"9372253",
    // "cboProfissional":"515105", "ine":"0001485628","dtCadastro":"2022-04-05","cdEquipe":5,"dtEntradaBrasil":null,"dtNaturalizado":null,"portariaNaturalizacao":"",
    // "criancasAdulto":2,"criancasOutrasCriancas":2,"criancasAdolescente":2,"criancasSozinha":2,"criancasCresce":2,"criancasOutro":2,"identidadeGenero":null,"statusCadastro":null}

    for(int i=0;value.length > i;i++){
      Map<String, dynamic> row = {
        'ID_CAD_INDIVIDUAL'         : value[i]['idCadIndividual'],
        'STATUS_CADASTRO'           : value[i]['statusCadastro'],
        'ID_CIDADAO'                : value[i]['idCidadao'],
        'CD_USUARIO_SUS'            : value[i]['cdUsuarioSUS'],
        'ID_AREA_CIDADAO'           : value[i]['idAreaCidadao'],
        'ID_MICROAREA_CIDADAO'      : value[i]['idMicroAreaCidadao'],
        'FORA_AREA'                 : value[i]['foraArea'],
        'RESPONSAVEL_FAMILIAR'      : value[i]['flResponsavelFamiliar'],
        'ID_RESPONSAVEL_FAMILIAR'   : value[i]['cdResponsavelFamiliar'],
        'NOME_RESPONSAVEL_FAMILIAR' : value[i]['nomeResponsavelFamiliar'],
        'PARENTESCO'                : value[i]['parentesco'],
        'ESCOLARIDADE'              : value[i]['curso'],
        'FREQ_ESCOLA_CRECHE'        : value[i]['frequentaEscola'],
        'SITUACAO_MERCADO'          : value[i]['situacaoMercado'],
        'CUIDADOR_TRADICIONAL'      : value[i]['cuidadorTrad'],
        'GRUPO_COMUNITARIO'         : value[i]['grupoComunitario'],
        'PLANO_PRIVADO'             : value[i]['plSaudePrivado'],
        'COMUNIDADE_TRADICIONAL'    : value[i]['comunidadeTradicional'],
        'COM_TRADI_QUAL'            : value[i]['comunidadeTradicionalEspec'],
        'ORIENT_SEXUAL'             : value[i]['orientacaoSexual'],
        'TEM_DEFICIENCIA'           : value[i]['temDeficiencia'],
        'DEF_AUDITIVA'              : value[i]['defAuditiva'],
        'DEF_INTELECTUAL'           : value[i]['defIntelectual'],
        'DEF_VISUAL'                : value[i]['defVisual'],
        'DEF_FISICA'                : value[i]['defFisica'],
        'DEF_OUTRAS'                : value[i]['defOutros'],
        'SAIDA_CADASTRO'            : value[i]['saidaMotivo'],
        'DATA_SAIDA_CADASTRO'       : value[i]['saidaData'],
        'CADASTRO_RECUSADO'         : value[i]['recusado'],
        'GESTANTE'                  : value[i]['gestante'],
        'MATERNIDADE_REFERENCIA'    : value[i]['maternidadeReferencia'],
        'PESO'                      : value[i]['peso'],
        'FUMANTE'                   : value[i]['fumante'],
        'USA_ALCOOL'                : value[i]['usaAlcool'],
        'USA_DROGAS'                : value[i]['outrasDrogas'],
        'HIPERTENSAO'               : value[i]['hipertensao'],
        'DIABETES'                  : value[i]['diabetes'],
        'AVC_DERRAME'               : value[i]['avcDerrame'],
        'INFARTO'                   : value[i]['infarto'],
        'HANSENIASE'                : value[i]['hanseniase'],
        'TUBERCULOSE'               : value[i]['tuberculose'],
        'CANCER'                    : value[i]['cancer'],
        'INTERNACAO'                : value[i]['internacao12Meses'],
        'MOTIVO'                    : value[i]['motivo'],
        'DOENCA_CARDIACA'           : value[i]['doencaCardiaca'],
        'PROBLEMA_RINS'             : value[i]['problemasRins'],
        'DOENCA_PULMAO'             : value[i]['doencaRespiratoriaPulmao'],
        'SAUDE_MENTAL'              : value[i]['tratamInternacaoPsiquiatrica'],
        'ACAMADO'                   : value[i]['acamado'],
        'DOMICILIADO'               : value[i]['domiciliado'],
        'PLANTAS_MED'               : value[i]['plantasMedicinais'],
        'PLANTAS_MED_QUAIS'         : value[i]['plantasQuais'],
        'PIC'                       : value[i]['praticasIntegrativasComplem'],
        'OUTRAS_CONDICOES'          : value[i]['outrasCondSaude'],
        'TEMPO_SITUACAO_RUA'        : value[i]['tempoSituacaoRua'],
        'ACOMP_INTITUICAO'          : value[i]['acompanhadoInstituicao'],
        'ACOMP_INTITUICAO_QUAL'     : value[i]['instituicaoQual'],
        'BENEFICIO'                 : value[i]['recebeBeneficio'],
        'REF_FAMILIAR'              : value[i]['referenciaFamiliar'],
        'PARENTESCO_VISITA'         : value[i]['visitaFamiliarParentesco'],
        'ALIMENTACAO_DIARIA'        : value[i]['alimentacaoDiaria'],
        'REST_POPULAR'              : value[i]['alimentecaoRestaurantePop'],
        'DOACAO_REST'               : value[i]['alimentacaoDoacaoRestaurante'],
        'DOACAO_RELIGIOSO'          : value[i]['alimentacaoDoacaoGrupoRel'],
        'DOACAO_POPULAR'            : value[i]['alimentacaoDoacaoPop'],
        'OUTROS_ALIM'               : value[i]['alimentacaoOutros'],
        'ACESSO_HIGIENE'            : value[i]['higienePessoal'],
        'BANHO'                     : value[i]['higieneBanho'],
        'SANITARIO'                 : value[i]['higieneSanitario'],
        'HIGIENE_BUCAL'             : value[i]['higieneBucal'],
        'OUTROS_HIGIENE'            : value[i]['higieneOutros'],
        'FICHA_ALTERACAO'           : value[i]['fichaAlteracao'],
        'ID_RESP_CADASTRO'          : value[i]['idProfissionalResponsavel'],
        'CNES_RESP_CADASTRO'        : value[i]['cnesUnidade'],
        'CBO_RESP_CADASTRO'         : value[i]['cboProfissional'],
        'INE_RESP_CADASTRO'         : value[i]['ine'],
        'DT_CADASTRO'               : value[i]['dtCadastro'],
        'ID_EQUIPE'                 : value[i]['cdEquipe'],
        'ORIGEM'                    : '',
        'SINCRONIZADO'              : '',
        'DT_ENTRADA_BRASIL'         : value[i]['dtEntradaBrasil'],
        'DT_NATURALIZACAO'          : value[i]['dtNaturalizado'],
        'PORTARIA_NATURALIZACAO'    : value[i]['portariaNaturalizacao'],
        'CRIANCAS_ADULTO'           : value[i]['criancasAdulto'],
        'CRIANCAS_OUTRAS_CRIANCAS'  : value[i]['criancasOutrasCriancas'],
        'CRIANCAS_ADOLESCENTE'      : value[i]['criancasAdolescente'],
        'CRIANCAS_SOZINHA'          : value[i]['criancasSozinha'],
        'CRIANCAS_CRECHE'           : value[i]['criancasCresce'],
        'CRIANCAS_OUTRO'            : value[i]['criancasOutro'],
        'IDENTIDADE_GENERO'         : value[i]['identidadeGenero'],
      };
      int id = await db.insert('CADASTROS_INDIVIDUAIS', row);
      // print('id increment $id PROCEDIMENTOS_SIGTAP_REGISTRO');
      // print(await db.query('CADASTROS_INDIVIDUAIS'));
    }
    return db;
  }
  Future saveSync(codCity,codState,urlAPI,mode,nameCityApi,nameCityFront,codCityIbge,user,idUnidade,nomeUnidade,area,microarea)async{
    Database db = await DbSqliteLoad().intialDB();
    //refatorar cidade_load e nome_cidade
    'parameters = [{"carga_inicial": 1, "cidade_load": cidade, "nome_cidade": vm.nomeCidade[cidade], "cidade_id": cidadeID, "estado": estado, "ibge": ibge, "ambiente": ambiente, "competencia": competencia.replace(/\D/g, '')}]';
    "INSERT OR REPLACE INTO CONTROLE_INTERNO (rowid, CARGA_INICIAL, CIDADE_LOAD, NOME_CIDADE, ID_MUNICIPIO, UF_ESTADO, CODIGO_IBGE, AMBIENTE, COMPETENCIA) VALUES (1,?,?,?,?,?,?,?,?)";

    Map<String, dynamic> row = {
      'CARGA_INICIAL'        : 1,
      'CIDADE_LOAD'          : nameCityApi,
      'NOME_CIDADE'          : nameCityFront,
      'ID_MUNICIPIO'         : codCity,
      'UF_ESTADO'            : codState,
      'CODIGO_IBGE'          : codCityIbge,
      'AMBIENTE'             : mode,
      'SYNC_UNIDADE'         : idUnidade,
      'NOME_UNIDADE'         : nomeUnidade,
      'AREA'                 : area,
      'MICROAREA'            : microarea,
      'ULTIMA_SINCRONIZACAO' : DateTime.now().toString(),
      'COMPETENCIA'          : '${DateTime.now().year}${DateTime.now().month<10?'0':''}${DateTime.now().month-1}',
    };
    int id = await db.insert('CONTROLE_INTERNO', row);
    return db;
  }
}