package main

/*
Чистит названия команд в БД.
Убирает приписки к названиям команд в виде трехбуквенного кода страны в скобках (Aut).
Важно не удалить вместо кода страны приписки типа (Am), (Woman)
*/

import (
	"gordenko.dev/dima/flashscore/model"

	"regexp"
	"strings"

	"gordenko.dev/dima/qx"

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

var (
	reCountryCode = regexp.MustCompile(`\([a-zA-Z]{3}\)`)
)

func main() {
	db, err := qx.Open("mysql", "user:password@/tipper")
	if err != nil {
		panic(err)
	}
	defer db.Close()

	/*
		m := model.New(db)

		teams, err := m.ListFootballTeams()
		if err != nil {
			panic(err)
		}

		for _, team := range teams {
			if reCountryCode.MatchString(team.CanonicalName) {
				//newCanonicalName := reCountryCode.ReplaceAllString(team.CanonicalName, "")

				// Внутри метода будет удален старый alias и добавлен новый
				err = m.UpdateFootballTeamCanonicalName(model.UpdateFootballTeamCanonicalNameIn{
					TeamID:           team.TeamID,
					CanonicalName:    team.CanonicalName,
					NewCanonicalName: team.CanonicalName,
				})
				if err != nil {
					panic(err)
				}
			}
		}
	*/
	// Capitalize names

	var teams []model.Team

	db.List(&teams)

	tx, err := db.Tx()
	if err != nil {
		panic(err)
	}

	for _, team := range teams {
		name := strings.Title(team.CanonicalName)

		err = tx.Exec(`UPDATE footballTeams SET canonicalName=? WHERE teamID=?`, name, team.TeamID)
		if err != nil {
			panic(err)
		}
	}

	tx.Commit()
}
