package adminkindboxhandler

import (
	adminaddressaggservice "git.gocasts.ir/ebhomengo/niki/service/admin/address_aggregator"
	adminauthorizationservice "git.gocasts.ir/ebhomengo/niki/service/admin/authorization"
	adminbenefactoraggsvc "git.gocasts.ir/ebhomengo/niki/service/admin/benefactor_aggregator"
	adminkindboxservice "git.gocasts.ir/ebhomengo/niki/service/admin/kind_box"
	adminrefertimeaggregatorservice "git.gocasts.ir/ebhomengo/niki/service/admin/refer_time_aggregator"
	authservice "git.gocasts.ir/ebhomengo/niki/service/auth"
	"git.gocasts.ir/ebhomengo/niki/service/notification"
)

type Handler struct {
	authSvc               authservice.Service
	adminKindBoxSvc       adminkindboxservice.Service
	adminBenefactorAggSvc adminbenefactoraggsvc.Service
	addressAggSvc         adminaddressaggservice.Service
	referTimeAggSvc       adminrefertimeaggregatorservice.Service
	adminAuthorizeSvc     adminauthorizationservice.Service
	notificationSvc       notification.Service
}

func New(authSvc authservice.Service,
	adminKindBoxSvc adminkindboxservice.Service,
	adminBenefactorAggSvc adminbenefactoraggsvc.Service,
	addressAggSvc adminaddressaggservice.Service,
	referTimeAggSvc adminrefertimeaggregatorservice.Service,
	adminAuthorizeSvc adminauthorizationservice.Service,
	notificationSvc notification.Service,
) Handler {
	return Handler{
		authSvc:               authSvc,
		adminKindBoxSvc:       adminKindBoxSvc,
		adminBenefactorAggSvc: adminBenefactorAggSvc,
		addressAggSvc:         addressAggSvc,
		referTimeAggSvc:       referTimeAggSvc,
		adminAuthorizeSvc:     adminAuthorizeSvc,
		notificationSvc:       notificationSvc,
	}
}
