// @APIVersion 1.0.0
// @Title beego Test API
// @Description beego has a very cool tools to autogenerate documents for your API
// @Contact astaxie@gmail.com
// @TermsOfServiceUrl http://web.me/
// @License Apache 2.0
// @LicenseUrl http://www.apache.org/licenses/LICENSE-2.0.html
package routers

import (
	"eta_gn/eta_api/controllers"
	"eta_gn/eta_api/controllers/ai"
	biapprove "eta_gn/eta_api/controllers/bi_approve"
	"eta_gn/eta_api/controllers/data_manage"
	"eta_gn/eta_api/controllers/data_manage/correlation"
	"eta_gn/eta_api/controllers/data_manage/cross_variety"
	"eta_gn/eta_api/controllers/data_manage/data_approve"
	"eta_gn/eta_api/controllers/data_manage/data_manage_permission"
	"eta_gn/eta_api/controllers/data_manage/excel"
	future_good2 "eta_gn/eta_api/controllers/data_manage/future_good"
	"eta_gn/eta_api/controllers/data_manage/line_equation"
	"eta_gn/eta_api/controllers/data_manage/line_feature"
	"eta_gn/eta_api/controllers/data_manage/range_analysis"
	"eta_gn/eta_api/controllers/data_manage/supply_analysis"
	"eta_gn/eta_api/controllers/data_stat"
	"eta_gn/eta_api/controllers/fe_calendar"
	"eta_gn/eta_api/controllers/knowledge"
	"eta_gn/eta_api/controllers/report_approve"
	"eta_gn/eta_api/controllers/sandbox"
	"eta_gn/eta_api/controllers/semantic_analysis"
	"eta_gn/eta_api/controllers/smart_report"
	"eta_gn/eta_api/controllers/speech_recognition"
	"eta_gn/eta_api/controllers/trade_analysis"

	"github.com/beego/beego/v2/server/web"
	"github.com/beego/beego/v2/server/web/filter/cors"
)

func init() {
	//解决跨域问题
	web.InsertFilter("*", web.BeforeRouter, cors.Allow(&cors.Options{
		AllowAllOrigins:  true,
		AllowMethods:     []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"},
		AllowHeaders:     []string{"Origin", "Authorization", "Uuid", "Accesstoken", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Content-Type"},
		ExposeHeaders:    []string{"Content-Length", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Content-Type"},
		AllowCredentials: true,
	}))
	ns := web.NewNamespace("/adminapi",
		web.NSNamespace("/sysuser",
			web.NSInclude(
				&controllers.SysUserController{},
			),
			web.NSInclude(
				&controllers.SysUserAuthController{},
			),
		),
		web.NSNamespace("/classify",
			web.NSInclude(
				&controllers.ClassifyController{},
			),
		),
		web.NSNamespace("/banner",
			web.NSInclude(
				&controllers.BannerController{},
			),
		),
		web.NSNamespace("/report",
			web.NSInclude(
				&controllers.ReportController{},
				&controllers.ReportChapterTypeController{},
			),
			web.NSInclude(
				&controllers.ReportCommonController{},
			),
			web.NSInclude(
				&controllers.ReportUploadCommonController{},
			),
		),
		web.NSNamespace("/voice",
			web.NSInclude(
				&controllers.VoiceController{},
			),
			web.NSInclude(
				&controllers.VoiceCommonController{},
			),
		),
		web.NSNamespace("/pptv2",
			web.NSInclude(
				&controllers.PptV2Controller{},
				&controllers.PptV2GroupController{},
			),
			web.NSInclude(
				&controllers.PptV2CommonController{},
			),
		),
		web.NSNamespace("/entry",
			web.NSInclude(
				&controllers.TargetController{},
				&data_manage.ManualEdbController{},
			),
			web.NSInclude(
				&controllers.TargetCommonController{},
			),
		),

		web.NSNamespace("/system",
			web.NSInclude(
				&controllers.SysDepartmentController{},
			),
			web.NSInclude(
				&controllers.SysGroupController{},
			),
			web.NSInclude(
				&controllers.SysTeamController{},
			),
			web.NSInclude(
				&controllers.SysAdminController{},
			),
			web.NSInclude(
				&controllers.SysRoleController{},
				&controllers.SysRoleAdminController{},
			),
			web.NSInclude(
				&controllers.SysMenuController{},
			),
			web.NSInclude(
				&controllers.SysMenuButtonController{},
			),
			web.NSInclude(
				&controllers.ResearchGroupController{},
			),
		),
		web.NSNamespace("/custom",
			web.NSInclude(
				&controllers.CompanySellerController{},
				&controllers.CompanyPermissionController{},
			),
		),
		web.NSNamespace("/resource",
			web.NSInclude(
				&controllers.ResourceController{},
				&controllers.ResourceAuthController{},
			),
		),
		web.NSNamespace("/datamanage",
			web.NSInclude(
				&data_manage.EdbInfoController{},
				&data_manage.EdbClassifyController{},
				&data_manage.ChartClassifyController{},
				&data_manage.ChartInfoController{},
				&data_manage.ManualController{},
				&excel.ExcelClassifyController{},
				&excel.ExcelInfoController{},
				&data_manage.PredictEdbClassifyController{},
				&data_manage.PredictEdbInfoController{},
				&data_manage.ChartThemeController{},
				&data_manage_permission.DataMangePermissionController{},
				&data_manage.BloombergDataController{},
				&data_manage.EdbBusinessController{},
				&data_manage.EdbInfoRelationController{},
				&data_manage.FactorEdbSeriesController{},
				&data_manage.EdbCollectController{},
				&data_manage.EdbCollectClassifyController{},
				&data_manage.EdbInfoShareController{},
				&data_manage.EdbPublicController{},
				&data_manage.EdbPublicClassifyController{},
				&data_manage.ChartInfoShareController{},
				&data_manage.ChartPublicController{},
				&data_manage.ChartPublicClassifyController{},
				&data_manage.ChartCollectController{},
				&data_manage.ChartCollectClassifyController{},
			),
			web.NSNamespace("/data_approve",
				web.NSInclude(
					&data_approve.DataApproveController{},
					&data_approve.DataApproveFlowController{},
				),
			),
		),
		web.NSNamespace("/my_chart",
			web.NSInclude(
				&data_manage.MyChartController{},
			),
		),
		web.NSNamespace("/taglib",
			web.NSInclude(
				&controllers.VarietyTagController{},
			),
		),
		web.NSNamespace("/sandbox",
			web.NSInclude(
				&sandbox.SandboxController{},
			),
		),
		web.NSNamespace("/pdfToImg",
			web.NSInclude(
				&controllers.PdfToImgCommonController{},
			),
		),
		web.NSNamespace("/report_author",
			web.NSInclude(
				&controllers.ReportAuthorCommonController{},
			),
			web.NSInclude(
				&controllers.ReportAuthorController{},
			),
		),
		web.NSNamespace("/future_good",
			web.NSInclude(
				&future_good2.FutureGoodEdbInfoController{},
				&future_good2.FutureGoodChartClassifyController{},
				&future_good2.FutureGoodChartInfoController{},
			),
		),
		web.NSNamespace("/correlation",
			web.NSInclude(
				&correlation.CorrelationChartClassifyController{},
				&correlation.CorrelationChartInfoController{},
			),
		),
		web.NSNamespace("/line_equation",
			web.NSInclude(
				&line_equation.LineEquationChartClassifyController{},
				&line_equation.LineEquationChartInfoController{},
			),
		),
		web.NSNamespace("/line_feature",
			web.NSInclude(
				&line_feature.LineFeaturesChartClassifyController{},
				&line_feature.LineFeaturesChartInfoController{},
			),
		),
		web.NSNamespace("/semantic_analysis",
			web.NSInclude(
				&semantic_analysis.SaLabelController{},
				&semantic_analysis.SaDocClassifyController{},
				&semantic_analysis.SaDocController{},
				&semantic_analysis.SaCompareClassifyController{},
				&semantic_analysis.SaCompareController{},
			),
		),
		web.NSNamespace("/supply_analysis",
			web.NSInclude(
				&supply_analysis.VarietyController{},
			),
		),
		web.NSNamespace("/business_conf",
			web.NSInclude(
				&controllers.BusinessConfController{},
				&controllers.BusinessConfOpenController{},
			),
		),
		web.NSNamespace("/trade_analysis",
			web.NSInclude(
				&trade_analysis.TradeAnalysisController{},
			),
		),
		web.NSNamespace("/custom_analysis",
			web.NSInclude(
				&excel.CustomAnalysisController{},
			),
		),
		web.NSNamespace("/out_link",
			web.NSInclude(
				&controllers.OutLinkController{},
			),
		),
		web.NSNamespace("/user_login",
			web.NSInclude(
				&controllers.UserLoginController{},
				&controllers.UserLoginAuthController{},
			),
		),
		web.NSNamespace("/meeting_probabilities",
			web.NSInclude(
				&controllers.MeetingProbabilitiesController{},
			),
		),
		web.NSNamespace("/data_stat/",
			web.NSInclude(
				&data_stat.EdbTerminalController{},
			),
		),
		web.NSNamespace("/chart_framework",
			web.NSInclude(
				&data_manage.ChartFrameworkController{},
			),
		),
		web.NSNamespace("/smart_report",
			web.NSInclude(
				&smart_report.SmartReportResourceController{},
			),
		),
		web.NSNamespace("/ai",
			web.NSInclude(
				&ai.AiController{},
				&ai.AiFileController{},
			),
		),
		web.NSNamespace("/cross_variety", //跨品种分析
			web.NSInclude(
				&cross_variety.ClassifyController{},
				&cross_variety.ChartInfoController{},
				&cross_variety.VarietyController{},
				&cross_variety.TagController{},
			),
		),
		web.NSNamespace("/report_approve",
			web.NSInclude(
				&report_approve.ReportApproveController{},
				&report_approve.ReportApproveFlowController{},
			),
		),
		web.NSNamespace("/bi_approve",
			web.NSInclude(
				&biapprove.BiApproveFlowController{},
				&biapprove.BiApproveController{},
			),
		),
		web.NSNamespace("/permission",
			web.NSInclude(
				&controllers.ChartPermissionController{},
			),
		),
		web.NSNamespace("/speech_recognition",
			web.NSInclude(
				&speech_recognition.SpeechRecognitionCommonController{},
				&speech_recognition.SpeechRecognitionController{},
				&speech_recognition.SpeechRecognitionMenuController{},
				&speech_recognition.SpeechRecognitionTagController{},
				&speech_recognition.SpeechRecognitionTagMenuController{},
			),
		),
		web.NSNamespace("/message",
			web.NSInclude(
				&controllers.MessageController{},
			),
		),
		web.NSNamespace("/fe_calendar",
			web.NSInclude(
				&fe_calendar.FeCalendarMatterController{},
			),
		),
		web.NSNamespace("/range_analysis",
			web.NSInclude(
				&range_analysis.RangeChartClassifyController{},
				&range_analysis.RangeChartChartInfoController{},
			),
		),
		web.NSNamespace("/knowledge",
			web.NSInclude(
				&knowledge.ClassifyController{},
				&knowledge.ResourceController{},
				&knowledge.TagController{},
			),
		),
		web.NSNamespace("/bi_dashborad",
			web.NSInclude(
				&controllers.BIDaShboardController{},
			),
		),
		web.NSNamespace("/report_history",
			web.NSInclude(
				&controllers.ReportHistoryController{},
			),
		),
		web.NSNamespace("/ppt_history",
			web.NSInclude(
				&controllers.PptV2HistoryController{},
			),
		),
		web.NSNamespace("/image_conf",
			web.NSInclude(
				&controllers.ImageConfController{},
			),
		),
	)
	web.AddNamespace(ns)
}