// @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 (
	"hongze/hz_crm_api/controllers"
	"hongze/hz_crm_api/controllers/advisory"
	"hongze/hz_crm_api/controllers/ai"
	"hongze/hz_crm_api/controllers/business_trip"
	"hongze/hz_crm_api/controllers/contract"
	"hongze/hz_crm_api/controllers/cygx"
	"hongze/hz_crm_api/controllers/data_manage"
	"hongze/hz_crm_api/controllers/data_manage/correlation"
	future_good2 "hongze/hz_crm_api/controllers/data_manage/future_good"
	"hongze/hz_crm_api/controllers/data_manage/line_equation"
	"hongze/hz_crm_api/controllers/data_manage/line_feature"
	"hongze/hz_crm_api/controllers/data_manage/supply_analysis"
	"hongze/hz_crm_api/controllers/english_report"
	"hongze/hz_crm_api/controllers/eta_business"
	"hongze/hz_crm_api/controllers/eta_training_video"
	"hongze/hz_crm_api/controllers/help_doc"
	"hongze/hz_crm_api/controllers/overseas_custom"
	"hongze/hz_crm_api/controllers/roadshow"
	"hongze/hz_crm_api/controllers/seal"
	"hongze/hz_crm_api/controllers/yb"

	"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{},
				&controllers.SysUserAuthController{},
			),
		),
		web.NSNamespace("/classify",
			web.NSInclude(
				&controllers.ClassifyController{},
			),
		),
		web.NSNamespace("/banner",
			web.NSInclude(
				&controllers.BannerController{},
			),
		),
		web.NSNamespace("/report",
			web.NSInclude(
				&controllers.ReportController{},
				&controllers.ReportUploadCommonController{},
				&controllers.ReportChapterTypeController{},
			),
		),
		web.NSNamespace("/statistic_report",
			web.NSInclude(
				&controllers.StatisticReportController{},
				&controllers.StatisticYbLogController{},
				&controllers.StatisticReportCommonController{},
				&controllers.StatisticCompanyMergerController{},
			),
		),
		web.NSNamespace("/voice",
			web.NSInclude(
				&controllers.VoiceController{},
				&controllers.VoiceCommonController{},
			),
		),
		web.NSNamespace("/system",
			web.NSInclude(
				&controllers.SysDepartmentController{},
				&controllers.SysGroupController{},
				&controllers.SysTeamController{},
				&controllers.SysAdminController{},
				&controllers.SysRoleController{},
				&controllers.SysRoleAdminController{},
				&controllers.SysMenuController{},
				&controllers.SysMenuButtonController{},
				&controllers.SysFlowController{},
				&controllers.ResearchGroupController{},
			),
		),
		web.NSNamespace("/custom",
			web.NSInclude(
				&controllers.CompanyController{},
				&controllers.WxUserController{},
				&controllers.CompanyApprovalMessageController{},
				&controllers.CompanyIndustryController{},
				&controllers.CompanyPermissionController{},
				&controllers.CompanyUserController{},
				&controllers.CompanySellerController{},
				&controllers.CompanyProcessController{},
				&controllers.CompanyApplyController{},
				&controllers.CompanyApprovalController{},
				&controllers.OfficialUserController{},
				&controllers.CompanyTodoController{},
				&controllers.CompanyReceiveController{},
				&controllers.CompanyServiceRecordController{},
				&controllers.FullCompanyController{},
				&controllers.CompanyRenewalController{},
			),
		),
		web.NSNamespace("/resource",
			web.NSInclude(
				&controllers.ResourceController{},
			),
		),
		web.NSNamespace("/video",
			web.NSInclude(
				&controllers.VideoController{},
			),
		),
		web.NSNamespace("/cygx",
			web.NSInclude(
				&cygx.AdviceController{},
				&cygx.InterviewApplyController{},
				&cygx.IndustryMapController{},
				&cygx.ApplyRecordController{},
				&cygx.IndustrialManagementController{},
				&cygx.IndustrialAnalystController{},
				&cygx.IndustrialSubjectController{},
				&cygx.ReportArticleController{},
				&cygx.SearchKeywordController{},
				&cygx.SummaryManage{},
				&cygx.ActivityCoAntroller{},
				&cygx.ActivityTypeCoAntroller{},
				&cygx.ActivitySignupCoAntroller{},
				&cygx.ActivityMeetCoAntroller{},
				&cygx.ResearchSummaryController{},
				&cygx.RoadshowEssenceController{},
				&cygx.MinutesSummaryController{},
				&cygx.ReportSelectionController{},
				&cygx.ActivitySpecialCoAntroller{},
				&cygx.UserController{},
				&cygx.ActivityLossCoAntroller{},
				&cygx.MicroRoadshowController{},
				&cygx.ActivityVideoCoAntroller{},
				&cygx.ActivitySpecialTripCoAntroller{},
				&cygx.MorningMeetingController{},
				&cygx.TacticsTimeLineController{},
				&cygx.ProductInteriorController{},
				&cygx.BannerCoAntroller{},
				&cygx.TagManagementController{},
				&cygx.YanxuanSpecialController{},
				&cygx.ContractAllocationController{},
				&cygx.QuestionnaireController{},
				&cygx.AskserieVideoController{},
				&cygx.UserAdminShareHistoryController{},
				&cygx.EnterScoreController{},
				&cygx.OrderController{},
				&cygx.RaiServeCoAntroller{},
				&cygx.UserFeedbackController{},
			),
		),
		web.NSNamespace("/advisory",
			web.NSInclude(
				&advisory.AdminArticleController{},
				&advisory.AdminUserController{},
				&advisory.AdminBaseArticleController{},
			),
		),
		web.NSNamespace("/datamanage",
			web.NSInclude(
				&data_manage.EdbInfoController{},
				&data_manage.EdbClassifyController{},
				&data_manage.ChartClassifyController{},
				&data_manage.ChartInfoController{},
				&data_manage.ManualController{},
				&data_manage.BaseFromChangesVisitorsCovidController{},
				&data_manage.ExcelClassifyController{},
				&data_manage.ExcelInfoController{},
				&data_manage.PredictEdbClassifyController{},
				&data_manage.PredictEdbInfoController{},
				&data_manage.BaseFromNationalStatisticsController{},
			),
		),
		web.NSNamespace("/contract",
			web.NSInclude(
				&contract.ContractController{},
				&contract.ContractApprovalController{},
			),
		),
		web.NSNamespace("/group_send_msg",
			web.NSInclude(
				&controllers.GroupSendMsgController{},
			),
		),
		web.NSNamespace("/my_chart",
			web.NSInclude(
				&data_manage.MyChartController{},
			),
		),
		web.NSNamespace("/yb",
			web.NSInclude(
				&yb.ActivityController{},
				&yb.ActivityRegisterController{},
				&yb.ApplyRecordController{},
				&yb.ChartCensusController{},
				&yb.CommunityQuestionController{},
				&yb.CommentController{},
				&yb.LikeController{},
				&yb.CommunityVideoController{},
				&yb.PriceDrivenController{},
				&yb.VoiceSectionController{},
				&yb.VoiceBroadcastController{},
				&yb.ProductCensusController{},
				&yb.RoadVideoController{},
				&yb.ActivitySpeakerController{},
				&controllers.DayNewController{},
				&yb.ThsSendController{},
				&yb.BulletChatController{},
				&yb.PdfController{},
			),
		),
		web.NSNamespace("/seal",
			web.NSInclude(
				&seal.SealController{},
				&seal.SealApprovalController{},
			),
		),
		web.NSNamespace("/roadshow",
			web.NSInclude(
				&roadshow.CalendarController{},
				&roadshow.CalendarMeetingUserController{},
			),
		),
		web.NSNamespace("/taglib",
			web.NSInclude(
				&controllers.VarietyTagController{},
			),
		),
		web.NSNamespace("/pdfToImg",
			web.NSInclude(
				&controllers.PdfToImgCommonController{},
			),
		),
		web.NSNamespace("/english_report",
			web.NSInclude(
				&english_report.EnglishReportController{},
				//&english_report.EnglishPolicyReportController{},
				&english_report.EnglishReportEmailController{},
				&english_report.EnglishCompanyController{},
				&english_report.EnglishCompanyTodoController{},
				&english_report.EnglishAuthController{},
				&english_report.EnglishReportEmailCallBackController{},
				&english_report.EnglishVideoController{},
			),
		),
		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("/eta_trial",
			web.NSInclude(
				&controllers.ETATrialController{},
			),
		),
		web.NSNamespace("/business_trip",
			web.NSInclude(
				&business_trip.BusinessTrip{},
			),
		),
		web.NSNamespace("/maycur",
			web.NSInclude(
				&controllers.MaycurController{},
				&controllers.MaycurOpenController{},
			),
		),
		web.NSNamespace("/supply_analysis",
			web.NSInclude(
				&supply_analysis.VarietyController{},
			),
		),
		web.NSNamespace("/ai",
			web.NSInclude(
				&ai.AiController{},
			),
		),
		web.NSNamespace("/en_permission",
			web.NSInclude(
				&english_report.EnPermissionController{},
			),
		),
		web.NSNamespace("/eta_business",
			web.NSInclude(
				&eta_business.EtaBusinessController{},
				&eta_business.EtaBusinessMenuController{},
			),
		),
		web.NSNamespace("/eta_version_update_log",
			web.NSInclude(
				&controllers.EtaVersionUpdateLogController{},
			),
		),
		web.NSNamespace("/help_doc",
			web.NSInclude(
				&help_doc.HelpDocClassifyController{},
				&help_doc.HelpDocController{},
			),
		),
		web.NSNamespace("/user_login",
			web.NSInclude(
				&controllers.UserLoginController{},
				&controllers.UserLoginAuthController{},
			),
		),
		web.NSNamespace("/eta_training_video",
			web.NSInclude(
				&eta_training_video.EtaTrainingVideoController{},
				&eta_training_video.EtaTrainingVideoClassifyController{},
				&eta_training_video.EtaTrainingVideoTagController{},
			),
		),
		web.NSNamespace("/overseas_custom",
			web.NSInclude(
				&overseas_custom.OverseasCustomController{},
			),
		),
	)
	web.AddNamespace(ns)
}
