package main

import (
	"quyun/v2/app/commands/http"
	"quyun/v2/app/commands/migrate"
	"quyun/v2/app/commands/queue"
	"quyun/v2/app/commands/seed"
	"quyun/v2/app/commands/storage_migrate"
	"quyun/v2/pkg/utils"

	log "github.com/sirupsen/logrus"
	"go.ipao.vip/atom"
)

// @title           ApiDoc
// @version         1.0
// @description     Multi-tenant media platform backend API.
// @termsOfService  http://swagger.io/terms/
// @contact.name   UserName
// @contact.url    http://www.swagger.io/support
// @contact.email  support@swagger.io
// @license.name  Apache 2.0
// @license.url   http://www.apache.org/licenses/LICENSE-2.0.html
// @host      localhost:8080
// @BasePath  /
// @securityDefinitions.basic  BasicAuth
// @externalDocs.description  OpenAPI
// @externalDocs.url          https://swagger.io/resources/open-api/

func main() {
	// 打印构建信息
	utils.PrintBuildInfo("v2")

	opts := []atom.Option{
		atom.Name("v2"),
		http.Command(),
		migrate.Command(),
		queue.Command(),
		seed.Command(),
		storage_migrate.Command(),
	}

	if err := atom.Serve(opts...); err != nil {
		log.Fatal(err)
	}
}
