package sendAllOff

import (
	"database/sql"
	"fmt"
	"strconv"
	"strings"
	"time"

	_ "github.com/go-sql-driver/mysql"
)

/*
 * Tag... - a very simple struct
 */
type Tag struct {
	datetime string `json:"datetime"`
}

func sendAllOff() {
	fmt.Println("Go MySQL Tutorial")

	// Open up our database connection.
	// I've set up a database on my local machine using phpmyadmin.
	// The database is called testDb
	db, err := sql.Open("mysql", "root:SFluorit@tcp(127.0.0.1:3306)/sternwarte")

	// if there is an error opening the connection, handle it
	if err != nil {
		panic(err.Error())
	}

	db.SetConnMaxLifetime(time.Minute * 3)
	db.SetMaxOpenConns(10)
	db.SetMaxIdleConns(10)

	// defer the close till after the sendAllOff function has finished
	// executing
	defer db.Close()

	// Execute the query
	results, err := db.Query("SELECT datetime FROM fdates")
	if err != nil {
		panic(err.Error()) // proper error handling instead of panic in your app
	}

	for results.Next() {
		var tag Tag
		// for each row, scan the result into our tag composite object
		err = results.Scan(&tag.datetime)
		if err != nil {
			panic(err.Error()) // proper error handling instead of panic in your app
		}
		// datetime in das datum von fdatum umwandeln
		str := strings.Replace(tag.datetime[0:10], "-", "", -1)
		fmt.Println(str)
		// einen int draus machen
		i, err := strconv.Atoi(str)
		if err != nil {
			// handle error
			fmt.Println(err)
		}
		// Update-query erzeugen
		query := fmt.Sprintf("UPDATE fdates SET datum='%d' WHERE datetime='%s'", i, tag.datetime)
		// update ausführen
		update, err := db.Query(query)

		// if there is an error inserting, handle it
		if err != nil {
			panic(err.Error())
		}
		// be careful deferring Queries if you are using transactions
		update.Close()

	}

}
