package main

import (
	"ColdVerify_server/conf"
	_ "ColdVerify_server/routers"
	"fmt"
	"github.com/beego/beego/v2/adapter/orm"
	orm2 "github.com/beego/beego/v2/client/orm"
	beego "github.com/beego/beego/v2/server/web"
	"github.com/beego/beego/v2/server/web/filter/cors"
	_ "github.com/go-sql-driver/mysql"
	"runtime"
	"strconv"
)

func init() {
	fmt.Println(runtime.GOOS)
	orm.RegisterDriver("mysql", orm.DRMySQL)
	//orm.RegisterDataBase("default", "mysql", "zdxq:7e5853d9178edfcc@tcp(47.108.133.234:3306)/zdxq?charset=utf8",100,200)
	orm.RegisterDataBase("default", "mysql",
		conf.MysqlServer_Username+":"+conf.MysqlServer_Password+"@tcp("+conf.MysqlServer_UrlPort+")/"+conf.MysqlServer_Database+"?charset=utf8mb4&loc=Local&parseTime=True",
		conf.MysqlServer_MaxIdleConnections, conf.MysqlServer_MaxOpenConnections)
	orm.RunSyncdb("default", false, true) // 创建数据库
	orm2.Debug = true

}

func main() {

	HTTPPort, _ := beego.AppConfig.String("HTTPPort")
	HTTPPort_int, _ := strconv.Atoi(HTTPPort)

	beego.InsertFilter("*", beego.BeforeRouter, cors.Allow(&cors.Options{
		// 允许访问所有源
		AllowAllOrigins: true,
		// 可选参数"GET", "POST", "PUT", "DELETE", "OPTIONS" (*为所有)
		AllowMethods: []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"},
		// 指的是允许的Header的种类
		AllowHeaders: []string{"Origin", "Authorization", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Content-Type"},
		// 公开的HTTP标头列表
		ExposeHeaders: []string{"Content-Length", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Content-Type"},
		// 如果设置，则允许共享身份验证凭据，例如cookie
		AllowCredentials: true,
	}))

	beego.BConfig.AppName = conf.AppName                    // 项目名
	beego.BConfig.ServerName = conf.AppName + conf.HTTPPort //server  名称
	beego.BConfig.RunMode = "dev"                           //  应用的运行模式
	beego.BConfig.Listen.HTTPPort = HTTPPort_int            //监听端口  本地：8518  线上：8528

	beego.Run()

}
