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

class DbSqliteSigtap{
  Future deleteSigtap()async{
       var querys = [
            "DELETE FROM PROCEDIMENTOS_SIGTAP;",
            "DELETE FROM PROCEDIMENTOS_SIGTAP_REGISTRO;",
            "DELETE FROM CIDS;",
            "DELETE FROM PROCEDIMENTOS_SIGTAP_CID;",
            "DELETE FROM CBOS;",
            "DELETE FROM PROCEDIMENTOS_SIGTAP_CBO;"
       ];
       Database db = await DbSqliteLoad().intialDB();
       for(int i=0;querys.length>i;i++){
           db.execute(querys[i]);
       }
  }
  Future saveProceduresSigtapDB(var value)async{
    Database db = await DbSqliteLoad().intialDB();

    // {"codProcedimento":"0701020580","nome":"MANUTEN\u00c7\u00c3O DE OPM ORTOP\u00c9DICA","codGrupo":"07","qtdeMax":2,"idadeMin":833,"idadeMax":833,"sexo":"N"}
    for(int i=0;value.length > i;i++){
      Map<String, dynamic> row = {
        'COD_PROC_SIGTAP'      : value[i]['codProcedimento'],
        'DESC_PROC_SIGTAP'     : value[i]['nome'],
        'GRUPO_PROC_SIGTAP'    : value[i]['codGrupo'],
        'QTDE_MAXIMA'          : value[i]['qtdeMax'],
        'IDADE_MIN'            : value[i]['idadeMin'],
        'IDADE_MAX'            : value[i]['idadeMax'],
        'SEXO'                 : value[i]['sexo'],
      };
      int id = await db.insert('PROCEDIMENTOS_SIGTAP', row);
    }
      // print('id increment $id');
      // print(await db.query('PROCEDIMENTOS_SIGTAP'));
    return db;
  }
  Future saveProceduresRegisterSigtapDB(var value)async{
    Database db = await DbSqliteLoad().intialDB();

    // {"codProcedimento":"0701020580","nome":"MANUTEN\u00c7\u00c3O DE OPM ORTOP\u00c9DICA","codGrupo":"07","qtdeMax":2,"idadeMin":833,"idadeMax":833,"sexo":"N"}
    for(int i=0;value.length > i;i++){
      Map<String, dynamic> row = {
        'COD_PROC_SIGTAP'     : value[i]['codProcedimento'],
        'CODIGO_REGISTRO'     : value[i]['codRegistro'],
      };
      int id = await db.insert('PROCEDIMENTOS_SIGTAP_REGISTRO', row);
      // print('id increment $id');
    }

    // print(await db.query('PROCEDIMENTOS_SIGTAP_REGISTRO'));
    return db;
  }
  Future saveSigtapCID(var value)async{
    Database db = await DbSqliteLoad().intialDB();
    // "INSERT OR REPLACE INTO CIDS (CODIGO_CID, DESCRICAO_CID, RESTRICAO_SEXO) VALUES (?,?,?)"
    // {"codCID":"A000","descCID":"A00.0 Colera dev Vibrio cholerae 01 biot cholerae","restSexo":"5"},
    for(int i=0;value.length > i;i++){
      Map<String, dynamic> row = {
        'CODIGO_CID'      : value[i]['codCID'],
        'DESCRICAO_CID'   : value[i]['descCID'],
        'RESTRICAO_SEXO'  : value[i]['restSexo'],
      };
      int id = await db.insert('CIDS', row);
      // print('id increment $id CIDS');
    }
    // print(await db.query('CIDS'));
    return db;
  }
  Future saveProceduresSigtapCID(var value)async{
    Database db = await DbSqliteLoad().intialDB();
    //  "INSERT OR REPLACE INTO PROCEDIMENTOS_SIGTAP_CID (COD_PROC_SIGTAP, CODIGO_CID) VALUES (?,?)"
    // {"codProcedimento":"0201010046","codCID":"C211"}
    for(int i=0;value.length > i;i++){
      Map<String, dynamic> row = {
        'COD_PROC_SIGTAP' : value[i]['codProcedimento'],
        'CODIGO_CID'      : value[i]['codCID'],
      };
      int id = await db.insert('PROCEDIMENTOS_SIGTAP_CID', row);
      // print('id increment $id PROCEDIMENTOS_SIGTAP_CID');
    }
    // print(await db.query('PROCEDIMENTOS_SIGTAP_CID'));
    return db;
  }
  Future saveCBOSigtap(var value)async{
    Database db = await DbSqliteLoad().intialDB();
    //  "INSERT OR REPLACE INTO CBOS (CODIGO_CBO, DESCRICAO_CBO) VALUES (?,?)"
    // "codCBO":"223208","descCBO":"Cirurgi\u00e3o dentista - cl\u00ednico geral"
    for(int i=0;value.length > i;i++){
      Map<String, dynamic> row = {
        'CODIGO_CBO'      : value[i]['codCBO'],
        'DESCRICAO_CBO'   : value[i]['descCBO'],
      };
      int id = await db.insert('CBOS', row);
      // print('id increment $id CBOS');
    }
    // print(await db.query('CBOS'));
    return db;
  }
  Future saveProceduresCBOSigtap(var value)async{
    Database db = await DbSqliteLoad().intialDB();
    //  "INSERT OR REPLACE INTO PROCEDIMENTOS_SIGTAP_CBO (COD_PROC_SIGTAP, CODIGO_CBO) VALUES (?,?)";
    // "codProcedimento":"0101010010","codCBO":"223208"
    for(int i=0;value.length > i;i++){
      Map<String, dynamic> row = {
        'COD_PROC_SIGTAP' : value[i]['codProcedimento'],
        'CODIGO_CBO'      : value[i]['codCBO'],
      };
      int id = await db.insert('PROCEDIMENTOS_SIGTAP_CBO', row);
      // print('id increment $id PROCEDIMENTOS_SIGTAP_CBO');
    }
    // print(await db.query('PROCEDIMENTOS_SIGTAP_CBO'));
    return db;
  }
  Future saveSyncSigtap(competencia)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 = {
      'COMPETENCIA' : competencia,
    };
   await db.update('CONTROLE_INTERNO', row,where: "CARGA_INICIAL = 1");
    print(await db.query('CONTROLE_INTERNO'));
    return db;
  }
}