package main

import (
	"database/sql"
	"fmt"
	"io/ioutil"
	"log"
	"strings"

	"github.com/niangaodev/art-code/config"
)

func main() {
	// 初始化数据库连接
	config.InitDB()
	db := config.DB
	defer config.CloseDB()

	// 读取SQL文件
	sqlFile := "scripts/create_inquiries_tables.sql"
	content, err := ioutil.ReadFile(sqlFile)
	if err != nil {
		log.Fatalf("Error reading SQL file: %v", err)
	}

	// 分割SQL语句
	statements := strings.Split(string(content), ";")

	// 执行每一条SQL语句
	for _, stmt := range statements {
		stmt = strings.TrimSpace(stmt)
		if stmt == "" {
			continue
		}

		_, err := db.Exec(stmt)
		if err != nil {
			// 忽略"表已存在"的错误（虽然我们用了IF NOT EXISTS，但为了保险）
			if !strings.Contains(err.Error(), "already exists") {
				log.Printf("Error executing statement: %s\nError: %v", stmt, err)
			}
		} else {
			// 只打印前50个字符
			displayStmt := stmt
			if len(displayStmt) > 50 {
				displayStmt = displayStmt[:50] + "..."
			}
			fmt.Printf("Successfully executed: %s\n", displayStmt)
		}
	}

	// 检查表是否创建成功
	checkTable(db, "inquiries")
	checkTable(db, "email_suffixes")

	fmt.Println("Inquiries tables migration completed successfully!")
}

func checkTable(db *sql.DB, tableName string) {
	var name string
	err := db.QueryRow("SHOW TABLES LIKE ?", tableName).Scan(&name)
	if err != nil {
		if err == sql.ErrNoRows {
			fmt.Printf("Table %s does NOT exist!\n", tableName)
		} else {
			fmt.Printf("Error checking table %s: %v\n", tableName, err)
		}
	} else {
		fmt.Printf("Table %s exists.\n", tableName)
	}
}
