#include <HTTPClient.h>
#include <WiFi.h>
// Defining LED PINs on the ESP32 Board.
const int LED_PIN = 10;
int pedido;
String codigo;
String tipoSurtido;
int cantSol;
int cantSurt;
int ruleta;
int ruletaCodigo;
//===WiFi definitions===
const char* ssid = "IZZI-1EC0";
const char* password = "A9Q8R4ZZK71S";
const char* serverName = "https://script.google.com/macros/s/AKfycby8ijde7BNCMyJS3mJHTvIgVKChjjyWjUU4MBLQPdx5QguuBD6iHsvPMclUEqNSrziU/exec";
void setup() {
  Serial.begin(115200);
  //===WiFi initialization===
  initWifi();
}
void loop() {
    // Create a URL for sending or writing data to Google Sheets.
    //https://script.google.com/macros/s/AKfycbyLCdR-mEsyg7F-uC2eY14ObSBD4r6ZfjNNszDs2WIFxiY3Od6BznmlCqQhcX9RYT4/exec?
    //value1=109304&
    //value2='AMCN01'&
    //value3=363&
    //value4=362&
    //value5='Parcial'
    ruletaCodigo = random(10);
    codigo = "AMCN"+String(ruletaCodigo);
    ruleta = random(1000) - 100;
    pedido = random(100) + 110000;
    codigo = "AMCN" +  String(ruletaCodigo);
    cantSol = random(100) + 1;
    if (ruleta <= 0){
      cantSurt = 0;
      tipoSurtido = "Nula";
    }
    if (ruleta > 0 && ruleta < 800){
      cantSurt = cantSol;
      tipoSurtido = "Completa";
    }
    if (ruleta >= 800){
      cantSurt = cantSol - 10;
      tipoSurtido = "Parcial";
    }
    Serial.print("Pedido: ");
    Serial.println(String(pedido));
    Serial.print("Código: ");
    Serial.println(codigo);
    Serial.print("Cant Sol:  ");
    Serial.println(String(cantSol));
    Serial.print("Cant Surt: ");
    Serial.println(String(cantSurt));
    Serial.print("Tipo Surtido: ");
    Serial.println(tipoSurtido);
    Serial.println("----------------------------");
    sendToGoogleSheet();
    delay(10000);
}
void initWifi() {
  Serial.print("Connecting to: ");
  Serial.print(ssid);
  WiFi.softAP(ssid, password)
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  Serial.print("Conectando a:\t");
  Serial.println(ssid);
  int timeout = 1000 * 4;  // 10 seconds
  while (WiFi.status() != WL_CONNECTED && (timeout-- > 0)) {
    delay(1000);
    Serial.print(".");
  }
    Serial.println("----------------------------");
  if (WiFi.status() != WL_CONNECTED) {
    Serial.println("Failed to connect");
  }
  Serial.print("WiFi connected with IP address: ");
  Serial.println(WiFi.localIP());
}
void sendToGoogleSheet() {
  //if (WiFi.status() == WL_CONNECTED) {
    HTTPClient http;
    http.begin(serverName);
    http.addHeader("Content-Type", "application/json");
        
    String jsonData = "{\"Pedido\":\"" + String(pedido) + "\", \"codigo\":\"" + codigo + "\", \"Cant Sol\":\"" + cantSol + "\", \"Cant Surt\":\"" + cantSurt + "\", \"Tipo Surt\":\"" + tipoSurtido + "\"}";
    Serial.println(jsonData);
    Serial.println("----------------------------");
    int httpResponseCode = http.POST(jsonData);
    if (httpResponseCode > 0) {
      String response = http.getString();
      Serial.println(httpResponseCode);
      Serial.println(response);
    } else {
      Serial.print("Wrong request POST: ");
      Serial.println(httpResponseCode);
    }
    http.end();
 // }
}