package activityclient

import (
	"context"

	activityv1 "hyapp.local/api/proto/activity/v1"

	"google.golang.org/grpc"
)

// Client 是 admin-server 访问 activity-service 后台配置能力的 gRPC 边界。
type Client interface {
	ListTaskDefinitions(ctx context.Context, req *activityv1.ListTaskDefinitionsRequest) (*activityv1.ListTaskDefinitionsResponse, error)
	UpsertTaskDefinition(ctx context.Context, req *activityv1.UpsertTaskDefinitionRequest) (*activityv1.UpsertTaskDefinitionResponse, error)
	SetTaskDefinitionStatus(ctx context.Context, req *activityv1.SetTaskDefinitionStatusRequest) (*activityv1.SetTaskDefinitionStatusResponse, error)
	ListAchievementDefinitions(ctx context.Context, req *activityv1.ListAchievementsRequest) (*activityv1.ListAchievementsResponse, error)
	UpsertAchievementDefinition(ctx context.Context, req *activityv1.UpsertAchievementDefinitionRequest) (*activityv1.UpsertAchievementDefinitionResponse, error)
	DeleteAchievementDefinition(ctx context.Context, req *activityv1.DeleteAchievementDefinitionRequest) (*activityv1.DeleteAchievementDefinitionResponse, error)
	GetRegistrationRewardConfig(ctx context.Context, req *activityv1.GetRegistrationRewardConfigRequest) (*activityv1.GetRegistrationRewardConfigResponse, error)
	UpdateRegistrationRewardConfig(ctx context.Context, req *activityv1.UpdateRegistrationRewardConfigRequest) (*activityv1.UpdateRegistrationRewardConfigResponse, error)
	ListRegistrationRewardClaims(ctx context.Context, req *activityv1.ListRegistrationRewardClaimsRequest) (*activityv1.ListRegistrationRewardClaimsResponse, error)
	GetFirstRechargeRewardConfig(ctx context.Context, req *activityv1.GetFirstRechargeRewardConfigRequest) (*activityv1.GetFirstRechargeRewardConfigResponse, error)
	UpdateFirstRechargeRewardConfig(ctx context.Context, req *activityv1.UpdateFirstRechargeRewardConfigRequest) (*activityv1.UpdateFirstRechargeRewardConfigResponse, error)
	ListFirstRechargeRewardClaims(ctx context.Context, req *activityv1.ListFirstRechargeRewardClaimsRequest) (*activityv1.ListFirstRechargeRewardClaimsResponse, error)
	GetCumulativeRechargeRewardConfig(ctx context.Context, req *activityv1.GetCumulativeRechargeRewardConfigRequest) (*activityv1.GetCumulativeRechargeRewardConfigResponse, error)
	UpdateCumulativeRechargeRewardConfig(ctx context.Context, req *activityv1.UpdateCumulativeRechargeRewardConfigRequest) (*activityv1.UpdateCumulativeRechargeRewardConfigResponse, error)
	ListCumulativeRechargeRewardGrants(ctx context.Context, req *activityv1.ListCumulativeRechargeRewardGrantsRequest) (*activityv1.ListCumulativeRechargeRewardGrantsResponse, error)
	GetInviteActivityRewardConfig(ctx context.Context, req *activityv1.GetInviteActivityRewardConfigRequest) (*activityv1.GetInviteActivityRewardConfigResponse, error)
	UpdateInviteActivityRewardConfig(ctx context.Context, req *activityv1.UpdateInviteActivityRewardConfigRequest) (*activityv1.UpdateInviteActivityRewardConfigResponse, error)
	ListInviteActivityRewardClaims(ctx context.Context, req *activityv1.ListInviteActivityRewardClaimsRequest) (*activityv1.ListInviteActivityRewardClaimsResponse, error)
	ListInviteActivityRewardSummaries(ctx context.Context, req *activityv1.ListInviteActivityRewardSummariesRequest) (*activityv1.ListInviteActivityRewardSummariesResponse, error)
	GetSevenDayCheckInConfig(ctx context.Context, req *activityv1.GetSevenDayCheckInConfigRequest) (*activityv1.GetSevenDayCheckInConfigResponse, error)
	UpdateSevenDayCheckInConfig(ctx context.Context, req *activityv1.UpdateSevenDayCheckInConfigRequest) (*activityv1.UpdateSevenDayCheckInConfigResponse, error)
	ListSevenDayCheckInClaims(ctx context.Context, req *activityv1.ListSevenDayCheckInClaimsRequest) (*activityv1.ListSevenDayCheckInClaimsResponse, error)
	GetRoomTurnoverRewardConfig(ctx context.Context, req *activityv1.GetRoomTurnoverRewardConfigRequest) (*activityv1.GetRoomTurnoverRewardConfigResponse, error)
	UpdateRoomTurnoverRewardConfig(ctx context.Context, req *activityv1.UpdateRoomTurnoverRewardConfigRequest) (*activityv1.UpdateRoomTurnoverRewardConfigResponse, error)
	ListRoomTurnoverRewardSettlements(ctx context.Context, req *activityv1.ListRoomTurnoverRewardSettlementsRequest) (*activityv1.ListRoomTurnoverRewardSettlementsResponse, error)
	RetryRoomTurnoverRewardSettlement(ctx context.Context, req *activityv1.RetryRoomTurnoverRewardSettlementRequest) (*activityv1.RetryRoomTurnoverRewardSettlementResponse, error)
	ListWeeklyStarCycles(ctx context.Context, req *activityv1.ListWeeklyStarCyclesRequest) (*activityv1.ListWeeklyStarCyclesResponse, error)
	CreateWeeklyStarCycle(ctx context.Context, req *activityv1.UpsertWeeklyStarCycleRequest) (*activityv1.UpsertWeeklyStarCycleResponse, error)
	GetWeeklyStarCycle(ctx context.Context, req *activityv1.GetWeeklyStarCycleRequest) (*activityv1.GetWeeklyStarCycleResponse, error)
	UpdateWeeklyStarCycle(ctx context.Context, req *activityv1.UpsertWeeklyStarCycleRequest) (*activityv1.UpsertWeeklyStarCycleResponse, error)
	SetWeeklyStarCycleStatus(ctx context.Context, req *activityv1.SetWeeklyStarCycleStatusRequest) (*activityv1.SetWeeklyStarCycleStatusResponse, error)
	ListWeeklyStarLeaderboard(ctx context.Context, req *activityv1.ListWeeklyStarLeaderboardRequest) (*activityv1.ListWeeklyStarLeaderboardResponse, error)
	ListWeeklyStarSettlements(ctx context.Context, req *activityv1.ListWeeklyStarSettlementsRequest) (*activityv1.ListWeeklyStarSettlementsResponse, error)
	ListAgencyOpeningCycles(ctx context.Context, req *activityv1.ListAgencyOpeningCyclesRequest) (*activityv1.ListAgencyOpeningCyclesResponse, error)
	CreateAgencyOpeningCycle(ctx context.Context, req *activityv1.UpsertAgencyOpeningCycleRequest) (*activityv1.UpsertAgencyOpeningCycleResponse, error)
	GetAgencyOpeningCycle(ctx context.Context, req *activityv1.GetAgencyOpeningCycleRequest) (*activityv1.GetAgencyOpeningCycleResponse, error)
	UpdateAgencyOpeningCycle(ctx context.Context, req *activityv1.UpsertAgencyOpeningCycleRequest) (*activityv1.UpsertAgencyOpeningCycleResponse, error)
	SetAgencyOpeningCycleStatus(ctx context.Context, req *activityv1.SetAgencyOpeningCycleStatusRequest) (*activityv1.SetAgencyOpeningCycleStatusResponse, error)
	ListAgencyOpeningApplications(ctx context.Context, req *activityv1.ListAgencyOpeningApplicationsRequest) (*activityv1.ListAgencyOpeningApplicationsResponse, error)
	ReviewAgencyOpeningApplication(ctx context.Context, req *activityv1.ReviewAgencyOpeningApplicationRequest) (*activityv1.ReviewAgencyOpeningApplicationResponse, error)
	ListActivityTemplates(ctx context.Context, req *activityv1.ListActivityTemplatesRequest) (*activityv1.ListActivityTemplatesResponse, error)
	CreateActivityTemplate(ctx context.Context, req *activityv1.CreateActivityTemplateRequest) (*activityv1.CreateActivityTemplateResponse, error)
	GetActivityTemplate(ctx context.Context, req *activityv1.GetActivityTemplateRequest) (*activityv1.GetActivityTemplateResponse, error)
	UpdateActivityTemplate(ctx context.Context, req *activityv1.UpdateActivityTemplateRequest) (*activityv1.UpdateActivityTemplateResponse, error)
	SetActivityTemplateStatus(ctx context.Context, req *activityv1.SetActivityTemplateStatusRequest) (*activityv1.SetActivityTemplateStatusResponse, error)
	DeleteActivityTemplate(ctx context.Context, req *activityv1.DeleteActivityTemplateRequest) (*activityv1.DeleteActivityTemplateResponse, error)
	ListActivityTemplateVersions(ctx context.Context, req *activityv1.ListActivityTemplateVersionsRequest) (*activityv1.ListActivityTemplateVersionsResponse, error)
	CloneActivityTemplate(ctx context.Context, req *activityv1.CloneActivityTemplateRequest) (*activityv1.CloneActivityTemplateResponse, error)
	ValidateActivityTemplate(ctx context.Context, req *activityv1.ValidateActivityTemplateRequest) (*activityv1.ValidateActivityTemplateResponse, error)
	ListActivityTemplateLeaderboard(ctx context.Context, req *activityv1.AdminListActivityTemplateLeaderboardRequest) (*activityv1.AdminListActivityTemplateLeaderboardResponse, error)
	ListActivityTemplateRewardJobs(ctx context.Context, req *activityv1.ListActivityTemplateRewardJobsRequest) (*activityv1.ListActivityTemplateRewardJobsResponse, error)
	RetryActivityTemplateRewardJob(ctx context.Context, req *activityv1.RetryActivityTemplateRewardJobRequest) (*activityv1.RetryActivityTemplateRewardJobResponse, error)
	ListActivityTemplateTaskClaims(ctx context.Context, req *activityv1.ListActivityTemplateTaskClaimsRequest) (*activityv1.ListActivityTemplateTaskClaimsResponse, error)
	RetryActivityTemplateTaskClaim(ctx context.Context, req *activityv1.RetryActivityTemplateTaskClaimRequest) (*activityv1.RetryActivityTemplateTaskClaimResponse, error)
	GetCPWeeklyRankConfig(ctx context.Context, req *activityv1.GetCPWeeklyRankConfigRequest) (*activityv1.GetCPWeeklyRankConfigResponse, error)
	UpdateCPWeeklyRankConfig(ctx context.Context, req *activityv1.UpdateCPWeeklyRankConfigRequest) (*activityv1.UpdateCPWeeklyRankConfigResponse, error)
	ListCPWeeklyRankSettlements(ctx context.Context, req *activityv1.ListCPWeeklyRankSettlementsRequest) (*activityv1.ListCPWeeklyRankSettlementsResponse, error)
	GetWheelConfig(ctx context.Context, req *activityv1.GetWheelConfigRequest) (*activityv1.GetWheelConfigResponse, error)
	UpsertWheelConfig(ctx context.Context, req *activityv1.UpsertWheelConfigRequest) (*activityv1.UpsertWheelConfigResponse, error)
	ListWheelDraws(ctx context.Context, req *activityv1.ListWheelDrawsRequest) (*activityv1.ListWheelDrawsResponse, error)
	GetWheelDrawSummary(ctx context.Context, req *activityv1.GetWheelDrawSummaryRequest) (*activityv1.GetWheelDrawSummaryResponse, error)
	RemoveRegionBroadcastMember(ctx context.Context, req *activityv1.RemoveRegionBroadcastMemberRequest) (*activityv1.RemoveRegionBroadcastMemberResponse, error)
	GetGameWinBroadcastConfig(ctx context.Context, req *activityv1.GetGameWinBroadcastConfigRequest) (*activityv1.GetGameWinBroadcastConfigResponse, error)
	UpdateGameWinBroadcastConfig(ctx context.Context, req *activityv1.UpdateGameWinBroadcastConfigRequest) (*activityv1.UpdateGameWinBroadcastConfigResponse, error)
	ListLevelConfig(ctx context.Context, req *activityv1.ListLevelConfigRequest) (*activityv1.ListLevelConfigResponse, error)
	UpsertLevelTrack(ctx context.Context, req *activityv1.UpsertLevelTrackRequest) (*activityv1.UpsertLevelTrackResponse, error)
	UpsertLevelRule(ctx context.Context, req *activityv1.UpsertLevelRuleRequest) (*activityv1.UpsertLevelRuleResponse, error)
	UpsertLevelTier(ctx context.Context, req *activityv1.UpsertLevelTierRequest) (*activityv1.UpsertLevelTierResponse, error)
	BatchUpsertLevelConfig(ctx context.Context, req *activityv1.BatchUpsertLevelConfigRequest) (*activityv1.BatchUpsertLevelConfigResponse, error)
	SetUserLevel(ctx context.Context, req *activityv1.SetUserLevelRequest) (*activityv1.SetUserLevelResponse, error)
	CreateInboxMessage(ctx context.Context, req *activityv1.CreateInboxMessageRequest) (*activityv1.CreateInboxMessageResponse, error)
	CreateFanoutJob(ctx context.Context, req *activityv1.CreateFanoutJobRequest) (*activityv1.CreateFanoutJobResponse, error)
}

type GRPCClient struct {
	taskClient                activityv1.AdminTaskServiceClient
	achievementClient         activityv1.AdminAchievementServiceClient
	registrationRewardClient  activityv1.AdminRegistrationRewardServiceClient
	firstRechargeRewardClient activityv1.AdminFirstRechargeRewardServiceClient
	cumulativeRechargeClient  activityv1.AdminCumulativeRechargeRewardServiceClient
	inviteActivityClient      activityv1.AdminInviteActivityRewardServiceClient
	sevenDayCheckInClient     activityv1.AdminSevenDayCheckInServiceClient
	roomTurnoverRewardClient  activityv1.AdminRoomTurnoverRewardServiceClient
	weeklyStarClient          activityv1.AdminWeeklyStarServiceClient
	agencyOpeningClient       activityv1.AdminAgencyOpeningServiceClient
	activityTemplateClient    activityv1.AdminActivityTemplateServiceClient
	cpWeeklyRankClient        activityv1.AdminCPWeeklyRankServiceClient
	wheelClient               activityv1.AdminWheelServiceClient
	broadcastClient           activityv1.BroadcastServiceClient
	adminBroadcastClient      activityv1.AdminBroadcastServiceClient
	levelClient               activityv1.GrowthLevelServiceClient
	growthClient              activityv1.AdminGrowthLevelServiceClient
	messageClient             activityv1.MessageInboxServiceClient
}

func NewGRPC(conn grpc.ClientConnInterface) *GRPCClient {
	return &GRPCClient{
		taskClient:                activityv1.NewAdminTaskServiceClient(conn),
		achievementClient:         activityv1.NewAdminAchievementServiceClient(conn),
		registrationRewardClient:  activityv1.NewAdminRegistrationRewardServiceClient(conn),
		firstRechargeRewardClient: activityv1.NewAdminFirstRechargeRewardServiceClient(conn),
		cumulativeRechargeClient:  activityv1.NewAdminCumulativeRechargeRewardServiceClient(conn),
		inviteActivityClient:      activityv1.NewAdminInviteActivityRewardServiceClient(conn),
		sevenDayCheckInClient:     activityv1.NewAdminSevenDayCheckInServiceClient(conn),
		roomTurnoverRewardClient:  activityv1.NewAdminRoomTurnoverRewardServiceClient(conn),
		weeklyStarClient:          activityv1.NewAdminWeeklyStarServiceClient(conn),
		agencyOpeningClient:       activityv1.NewAdminAgencyOpeningServiceClient(conn),
		activityTemplateClient:    activityv1.NewAdminActivityTemplateServiceClient(conn),
		cpWeeklyRankClient:        activityv1.NewAdminCPWeeklyRankServiceClient(conn),
		wheelClient:               activityv1.NewAdminWheelServiceClient(conn),
		broadcastClient:           activityv1.NewBroadcastServiceClient(conn),
		adminBroadcastClient:      activityv1.NewAdminBroadcastServiceClient(conn),
		levelClient:               activityv1.NewGrowthLevelServiceClient(conn),
		growthClient:              activityv1.NewAdminGrowthLevelServiceClient(conn),
		messageClient:             activityv1.NewMessageInboxServiceClient(conn),
	}
}

func (c *GRPCClient) ListTaskDefinitions(ctx context.Context, req *activityv1.ListTaskDefinitionsRequest) (*activityv1.ListTaskDefinitionsResponse, error) {
	return c.taskClient.ListTaskDefinitions(ctx, req)
}

func (c *GRPCClient) UpsertTaskDefinition(ctx context.Context, req *activityv1.UpsertTaskDefinitionRequest) (*activityv1.UpsertTaskDefinitionResponse, error) {
	return c.taskClient.UpsertTaskDefinition(ctx, req)
}

func (c *GRPCClient) SetTaskDefinitionStatus(ctx context.Context, req *activityv1.SetTaskDefinitionStatusRequest) (*activityv1.SetTaskDefinitionStatusResponse, error) {
	return c.taskClient.SetTaskDefinitionStatus(ctx, req)
}

func (c *GRPCClient) ListAchievementDefinitions(ctx context.Context, req *activityv1.ListAchievementsRequest) (*activityv1.ListAchievementsResponse, error) {
	return c.achievementClient.ListAchievementDefinitions(ctx, req)
}

func (c *GRPCClient) UpsertAchievementDefinition(ctx context.Context, req *activityv1.UpsertAchievementDefinitionRequest) (*activityv1.UpsertAchievementDefinitionResponse, error) {
	return c.achievementClient.UpsertAchievementDefinition(ctx, req)
}

func (c *GRPCClient) DeleteAchievementDefinition(ctx context.Context, req *activityv1.DeleteAchievementDefinitionRequest) (*activityv1.DeleteAchievementDefinitionResponse, error) {
	return c.achievementClient.DeleteAchievementDefinition(ctx, req)
}

func (c *GRPCClient) GetRegistrationRewardConfig(ctx context.Context, req *activityv1.GetRegistrationRewardConfigRequest) (*activityv1.GetRegistrationRewardConfigResponse, error) {
	return c.registrationRewardClient.GetRegistrationRewardConfig(ctx, req)
}

func (c *GRPCClient) UpdateRegistrationRewardConfig(ctx context.Context, req *activityv1.UpdateRegistrationRewardConfigRequest) (*activityv1.UpdateRegistrationRewardConfigResponse, error) {
	return c.registrationRewardClient.UpdateRegistrationRewardConfig(ctx, req)
}

func (c *GRPCClient) ListRegistrationRewardClaims(ctx context.Context, req *activityv1.ListRegistrationRewardClaimsRequest) (*activityv1.ListRegistrationRewardClaimsResponse, error) {
	return c.registrationRewardClient.ListRegistrationRewardClaims(ctx, req)
}

func (c *GRPCClient) GetFirstRechargeRewardConfig(ctx context.Context, req *activityv1.GetFirstRechargeRewardConfigRequest) (*activityv1.GetFirstRechargeRewardConfigResponse, error) {
	return c.firstRechargeRewardClient.GetFirstRechargeRewardConfig(ctx, req)
}

func (c *GRPCClient) UpdateFirstRechargeRewardConfig(ctx context.Context, req *activityv1.UpdateFirstRechargeRewardConfigRequest) (*activityv1.UpdateFirstRechargeRewardConfigResponse, error) {
	return c.firstRechargeRewardClient.UpdateFirstRechargeRewardConfig(ctx, req)
}

func (c *GRPCClient) ListFirstRechargeRewardClaims(ctx context.Context, req *activityv1.ListFirstRechargeRewardClaimsRequest) (*activityv1.ListFirstRechargeRewardClaimsResponse, error) {
	return c.firstRechargeRewardClient.ListFirstRechargeRewardClaims(ctx, req)
}

func (c *GRPCClient) GetCumulativeRechargeRewardConfig(ctx context.Context, req *activityv1.GetCumulativeRechargeRewardConfigRequest) (*activityv1.GetCumulativeRechargeRewardConfigResponse, error) {
	return c.cumulativeRechargeClient.GetCumulativeRechargeRewardConfig(ctx, req)
}

func (c *GRPCClient) UpdateCumulativeRechargeRewardConfig(ctx context.Context, req *activityv1.UpdateCumulativeRechargeRewardConfigRequest) (*activityv1.UpdateCumulativeRechargeRewardConfigResponse, error) {
	return c.cumulativeRechargeClient.UpdateCumulativeRechargeRewardConfig(ctx, req)
}

func (c *GRPCClient) ListCumulativeRechargeRewardGrants(ctx context.Context, req *activityv1.ListCumulativeRechargeRewardGrantsRequest) (*activityv1.ListCumulativeRechargeRewardGrantsResponse, error) {
	return c.cumulativeRechargeClient.ListCumulativeRechargeRewardGrants(ctx, req)
}

func (c *GRPCClient) GetInviteActivityRewardConfig(ctx context.Context, req *activityv1.GetInviteActivityRewardConfigRequest) (*activityv1.GetInviteActivityRewardConfigResponse, error) {
	return c.inviteActivityClient.GetInviteActivityRewardConfig(ctx, req)
}

func (c *GRPCClient) UpdateInviteActivityRewardConfig(ctx context.Context, req *activityv1.UpdateInviteActivityRewardConfigRequest) (*activityv1.UpdateInviteActivityRewardConfigResponse, error) {
	return c.inviteActivityClient.UpdateInviteActivityRewardConfig(ctx, req)
}

func (c *GRPCClient) ListInviteActivityRewardClaims(ctx context.Context, req *activityv1.ListInviteActivityRewardClaimsRequest) (*activityv1.ListInviteActivityRewardClaimsResponse, error) {
	return c.inviteActivityClient.ListInviteActivityRewardClaims(ctx, req)
}

func (c *GRPCClient) ListInviteActivityRewardSummaries(ctx context.Context, req *activityv1.ListInviteActivityRewardSummariesRequest) (*activityv1.ListInviteActivityRewardSummariesResponse, error) {
	return c.inviteActivityClient.ListInviteActivityRewardSummaries(ctx, req)
}

func (c *GRPCClient) GetSevenDayCheckInConfig(ctx context.Context, req *activityv1.GetSevenDayCheckInConfigRequest) (*activityv1.GetSevenDayCheckInConfigResponse, error) {
	return c.sevenDayCheckInClient.GetSevenDayCheckInConfig(ctx, req)
}

func (c *GRPCClient) UpdateSevenDayCheckInConfig(ctx context.Context, req *activityv1.UpdateSevenDayCheckInConfigRequest) (*activityv1.UpdateSevenDayCheckInConfigResponse, error) {
	return c.sevenDayCheckInClient.UpdateSevenDayCheckInConfig(ctx, req)
}

func (c *GRPCClient) ListSevenDayCheckInClaims(ctx context.Context, req *activityv1.ListSevenDayCheckInClaimsRequest) (*activityv1.ListSevenDayCheckInClaimsResponse, error) {
	return c.sevenDayCheckInClient.ListSevenDayCheckInClaims(ctx, req)
}

func (c *GRPCClient) GetRoomTurnoverRewardConfig(ctx context.Context, req *activityv1.GetRoomTurnoverRewardConfigRequest) (*activityv1.GetRoomTurnoverRewardConfigResponse, error) {
	return c.roomTurnoverRewardClient.GetRoomTurnoverRewardConfig(ctx, req)
}

func (c *GRPCClient) UpdateRoomTurnoverRewardConfig(ctx context.Context, req *activityv1.UpdateRoomTurnoverRewardConfigRequest) (*activityv1.UpdateRoomTurnoverRewardConfigResponse, error) {
	return c.roomTurnoverRewardClient.UpdateRoomTurnoverRewardConfig(ctx, req)
}

func (c *GRPCClient) ListRoomTurnoverRewardSettlements(ctx context.Context, req *activityv1.ListRoomTurnoverRewardSettlementsRequest) (*activityv1.ListRoomTurnoverRewardSettlementsResponse, error) {
	return c.roomTurnoverRewardClient.ListRoomTurnoverRewardSettlements(ctx, req)
}

func (c *GRPCClient) RetryRoomTurnoverRewardSettlement(ctx context.Context, req *activityv1.RetryRoomTurnoverRewardSettlementRequest) (*activityv1.RetryRoomTurnoverRewardSettlementResponse, error) {
	return c.roomTurnoverRewardClient.RetryRoomTurnoverRewardSettlement(ctx, req)
}

func (c *GRPCClient) ListWeeklyStarCycles(ctx context.Context, req *activityv1.ListWeeklyStarCyclesRequest) (*activityv1.ListWeeklyStarCyclesResponse, error) {
	return c.weeklyStarClient.ListWeeklyStarCycles(ctx, req)
}

func (c *GRPCClient) CreateWeeklyStarCycle(ctx context.Context, req *activityv1.UpsertWeeklyStarCycleRequest) (*activityv1.UpsertWeeklyStarCycleResponse, error) {
	return c.weeklyStarClient.CreateWeeklyStarCycle(ctx, req)
}

func (c *GRPCClient) GetWeeklyStarCycle(ctx context.Context, req *activityv1.GetWeeklyStarCycleRequest) (*activityv1.GetWeeklyStarCycleResponse, error) {
	return c.weeklyStarClient.GetWeeklyStarCycle(ctx, req)
}

func (c *GRPCClient) UpdateWeeklyStarCycle(ctx context.Context, req *activityv1.UpsertWeeklyStarCycleRequest) (*activityv1.UpsertWeeklyStarCycleResponse, error) {
	return c.weeklyStarClient.UpdateWeeklyStarCycle(ctx, req)
}

func (c *GRPCClient) SetWeeklyStarCycleStatus(ctx context.Context, req *activityv1.SetWeeklyStarCycleStatusRequest) (*activityv1.SetWeeklyStarCycleStatusResponse, error) {
	return c.weeklyStarClient.SetWeeklyStarCycleStatus(ctx, req)
}

func (c *GRPCClient) ListWeeklyStarLeaderboard(ctx context.Context, req *activityv1.ListWeeklyStarLeaderboardRequest) (*activityv1.ListWeeklyStarLeaderboardResponse, error) {
	return c.weeklyStarClient.ListWeeklyStarLeaderboard(ctx, req)
}

func (c *GRPCClient) ListWeeklyStarSettlements(ctx context.Context, req *activityv1.ListWeeklyStarSettlementsRequest) (*activityv1.ListWeeklyStarSettlementsResponse, error) {
	return c.weeklyStarClient.ListWeeklyStarSettlements(ctx, req)
}

func (c *GRPCClient) ListAgencyOpeningCycles(ctx context.Context, req *activityv1.ListAgencyOpeningCyclesRequest) (*activityv1.ListAgencyOpeningCyclesResponse, error) {
	return c.agencyOpeningClient.ListAgencyOpeningCycles(ctx, req)
}

func (c *GRPCClient) CreateAgencyOpeningCycle(ctx context.Context, req *activityv1.UpsertAgencyOpeningCycleRequest) (*activityv1.UpsertAgencyOpeningCycleResponse, error) {
	return c.agencyOpeningClient.CreateAgencyOpeningCycle(ctx, req)
}

func (c *GRPCClient) GetAgencyOpeningCycle(ctx context.Context, req *activityv1.GetAgencyOpeningCycleRequest) (*activityv1.GetAgencyOpeningCycleResponse, error) {
	return c.agencyOpeningClient.GetAgencyOpeningCycle(ctx, req)
}

func (c *GRPCClient) UpdateAgencyOpeningCycle(ctx context.Context, req *activityv1.UpsertAgencyOpeningCycleRequest) (*activityv1.UpsertAgencyOpeningCycleResponse, error) {
	return c.agencyOpeningClient.UpdateAgencyOpeningCycle(ctx, req)
}

func (c *GRPCClient) SetAgencyOpeningCycleStatus(ctx context.Context, req *activityv1.SetAgencyOpeningCycleStatusRequest) (*activityv1.SetAgencyOpeningCycleStatusResponse, error) {
	return c.agencyOpeningClient.SetAgencyOpeningCycleStatus(ctx, req)
}

func (c *GRPCClient) ListAgencyOpeningApplications(ctx context.Context, req *activityv1.ListAgencyOpeningApplicationsRequest) (*activityv1.ListAgencyOpeningApplicationsResponse, error) {
	return c.agencyOpeningClient.ListAgencyOpeningApplications(ctx, req)
}

func (c *GRPCClient) ReviewAgencyOpeningApplication(ctx context.Context, req *activityv1.ReviewAgencyOpeningApplicationRequest) (*activityv1.ReviewAgencyOpeningApplicationResponse, error) {
	return c.agencyOpeningClient.ReviewAgencyOpeningApplication(ctx, req)
}

func (c *GRPCClient) ListActivityTemplates(ctx context.Context, req *activityv1.ListActivityTemplatesRequest) (*activityv1.ListActivityTemplatesResponse, error) {
	return c.activityTemplateClient.ListActivityTemplates(ctx, req)
}

func (c *GRPCClient) CreateActivityTemplate(ctx context.Context, req *activityv1.CreateActivityTemplateRequest) (*activityv1.CreateActivityTemplateResponse, error) {
	return c.activityTemplateClient.CreateActivityTemplate(ctx, req)
}

func (c *GRPCClient) GetActivityTemplate(ctx context.Context, req *activityv1.GetActivityTemplateRequest) (*activityv1.GetActivityTemplateResponse, error) {
	return c.activityTemplateClient.GetActivityTemplate(ctx, req)
}

func (c *GRPCClient) UpdateActivityTemplate(ctx context.Context, req *activityv1.UpdateActivityTemplateRequest) (*activityv1.UpdateActivityTemplateResponse, error) {
	return c.activityTemplateClient.UpdateActivityTemplate(ctx, req)
}

func (c *GRPCClient) SetActivityTemplateStatus(ctx context.Context, req *activityv1.SetActivityTemplateStatusRequest) (*activityv1.SetActivityTemplateStatusResponse, error) {
	return c.activityTemplateClient.SetActivityTemplateStatus(ctx, req)
}

func (c *GRPCClient) DeleteActivityTemplate(ctx context.Context, req *activityv1.DeleteActivityTemplateRequest) (*activityv1.DeleteActivityTemplateResponse, error) {
	return c.activityTemplateClient.DeleteActivityTemplate(ctx, req)
}

func (c *GRPCClient) ListActivityTemplateVersions(ctx context.Context, req *activityv1.ListActivityTemplateVersionsRequest) (*activityv1.ListActivityTemplateVersionsResponse, error) {
	return c.activityTemplateClient.ListActivityTemplateVersions(ctx, req)
}

func (c *GRPCClient) CloneActivityTemplate(ctx context.Context, req *activityv1.CloneActivityTemplateRequest) (*activityv1.CloneActivityTemplateResponse, error) {
	return c.activityTemplateClient.CloneActivityTemplate(ctx, req)
}

func (c *GRPCClient) ValidateActivityTemplate(ctx context.Context, req *activityv1.ValidateActivityTemplateRequest) (*activityv1.ValidateActivityTemplateResponse, error) {
	return c.activityTemplateClient.ValidateActivityTemplate(ctx, req)
}

func (c *GRPCClient) ListActivityTemplateLeaderboard(ctx context.Context, req *activityv1.AdminListActivityTemplateLeaderboardRequest) (*activityv1.AdminListActivityTemplateLeaderboardResponse, error) {
	return c.activityTemplateClient.ListActivityTemplateLeaderboard(ctx, req)
}

func (c *GRPCClient) ListActivityTemplateRewardJobs(ctx context.Context, req *activityv1.ListActivityTemplateRewardJobsRequest) (*activityv1.ListActivityTemplateRewardJobsResponse, error) {
	return c.activityTemplateClient.ListActivityTemplateRewardJobs(ctx, req)
}

func (c *GRPCClient) RetryActivityTemplateRewardJob(ctx context.Context, req *activityv1.RetryActivityTemplateRewardJobRequest) (*activityv1.RetryActivityTemplateRewardJobResponse, error) {
	return c.activityTemplateClient.RetryActivityTemplateRewardJob(ctx, req)
}

func (c *GRPCClient) ListActivityTemplateTaskClaims(ctx context.Context, req *activityv1.ListActivityTemplateTaskClaimsRequest) (*activityv1.ListActivityTemplateTaskClaimsResponse, error) {
	return c.activityTemplateClient.ListActivityTemplateTaskClaims(ctx, req)
}

func (c *GRPCClient) RetryActivityTemplateTaskClaim(ctx context.Context, req *activityv1.RetryActivityTemplateTaskClaimRequest) (*activityv1.RetryActivityTemplateTaskClaimResponse, error) {
	return c.activityTemplateClient.RetryActivityTemplateTaskClaim(ctx, req)
}

func (c *GRPCClient) GetCPWeeklyRankConfig(ctx context.Context, req *activityv1.GetCPWeeklyRankConfigRequest) (*activityv1.GetCPWeeklyRankConfigResponse, error) {
	return c.cpWeeklyRankClient.GetCPWeeklyRankConfig(ctx, req)
}

func (c *GRPCClient) UpdateCPWeeklyRankConfig(ctx context.Context, req *activityv1.UpdateCPWeeklyRankConfigRequest) (*activityv1.UpdateCPWeeklyRankConfigResponse, error) {
	return c.cpWeeklyRankClient.UpdateCPWeeklyRankConfig(ctx, req)
}

func (c *GRPCClient) ListCPWeeklyRankSettlements(ctx context.Context, req *activityv1.ListCPWeeklyRankSettlementsRequest) (*activityv1.ListCPWeeklyRankSettlementsResponse, error) {
	return c.cpWeeklyRankClient.ListCPWeeklyRankSettlements(ctx, req)
}

func (c *GRPCClient) GetWheelConfig(ctx context.Context, req *activityv1.GetWheelConfigRequest) (*activityv1.GetWheelConfigResponse, error) {
	return c.wheelClient.GetWheelConfig(ctx, req)
}

func (c *GRPCClient) UpsertWheelConfig(ctx context.Context, req *activityv1.UpsertWheelConfigRequest) (*activityv1.UpsertWheelConfigResponse, error) {
	return c.wheelClient.UpsertWheelConfig(ctx, req)
}

func (c *GRPCClient) ListWheelDraws(ctx context.Context, req *activityv1.ListWheelDrawsRequest) (*activityv1.ListWheelDrawsResponse, error) {
	return c.wheelClient.ListWheelDraws(ctx, req)
}

func (c *GRPCClient) GetWheelDrawSummary(ctx context.Context, req *activityv1.GetWheelDrawSummaryRequest) (*activityv1.GetWheelDrawSummaryResponse, error) {
	return c.wheelClient.GetWheelDrawSummary(ctx, req)
}

func (c *GRPCClient) RemoveRegionBroadcastMember(ctx context.Context, req *activityv1.RemoveRegionBroadcastMemberRequest) (*activityv1.RemoveRegionBroadcastMemberResponse, error) {
	return c.broadcastClient.RemoveRegionBroadcastMember(ctx, req)
}

func (c *GRPCClient) GetGameWinBroadcastConfig(ctx context.Context, req *activityv1.GetGameWinBroadcastConfigRequest) (*activityv1.GetGameWinBroadcastConfigResponse, error) {
	return c.adminBroadcastClient.GetGameWinBroadcastConfig(ctx, req)
}

func (c *GRPCClient) UpdateGameWinBroadcastConfig(ctx context.Context, req *activityv1.UpdateGameWinBroadcastConfigRequest) (*activityv1.UpdateGameWinBroadcastConfigResponse, error) {
	return c.adminBroadcastClient.UpdateGameWinBroadcastConfig(ctx, req)
}

func (c *GRPCClient) ListLevelConfig(ctx context.Context, req *activityv1.ListLevelConfigRequest) (*activityv1.ListLevelConfigResponse, error) {
	return c.growthClient.ListLevelConfig(ctx, req)
}

func (c *GRPCClient) UpsertLevelTrack(ctx context.Context, req *activityv1.UpsertLevelTrackRequest) (*activityv1.UpsertLevelTrackResponse, error) {
	return c.growthClient.UpsertLevelTrack(ctx, req)
}

func (c *GRPCClient) UpsertLevelRule(ctx context.Context, req *activityv1.UpsertLevelRuleRequest) (*activityv1.UpsertLevelRuleResponse, error) {
	return c.growthClient.UpsertLevelRule(ctx, req)
}

func (c *GRPCClient) UpsertLevelTier(ctx context.Context, req *activityv1.UpsertLevelTierRequest) (*activityv1.UpsertLevelTierResponse, error) {
	return c.growthClient.UpsertLevelTier(ctx, req)
}

func (c *GRPCClient) BatchUpsertLevelConfig(ctx context.Context, req *activityv1.BatchUpsertLevelConfigRequest) (*activityv1.BatchUpsertLevelConfigResponse, error) {
	return c.growthClient.BatchUpsertLevelConfig(ctx, req)
}

func (c *GRPCClient) SetUserLevel(ctx context.Context, req *activityv1.SetUserLevelRequest) (*activityv1.SetUserLevelResponse, error) {
	return c.levelClient.SetUserLevel(ctx, req)
}

// BatchGetUserLevelAdminProfiles 读取真实成长账户与有效 overlay，避免 admin-server 复制等级计算规则。
func (c *GRPCClient) BatchGetUserLevelAdminProfiles(ctx context.Context, req *activityv1.BatchGetUserLevelAdminProfilesRequest) (*activityv1.BatchGetUserLevelAdminProfilesResponse, error) {
	return c.growthClient.BatchGetUserLevelAdminProfiles(ctx, req)
}

// AdjustTemporaryUserLevels 把财富和魅力两条轨道一次交给 activity-service 原子提交。
func (c *GRPCClient) AdjustTemporaryUserLevels(ctx context.Context, req *activityv1.AdjustTemporaryUserLevelsRequest) (*activityv1.AdjustTemporaryUserLevelsResponse, error) {
	return c.growthClient.AdjustTemporaryUserLevels(ctx, req)
}

func (c *GRPCClient) CreateInboxMessage(ctx context.Context, req *activityv1.CreateInboxMessageRequest) (*activityv1.CreateInboxMessageResponse, error) {
	return c.messageClient.CreateInboxMessage(ctx, req)
}

func (c *GRPCClient) CreateFanoutJob(ctx context.Context, req *activityv1.CreateFanoutJobRequest) (*activityv1.CreateFanoutJobResponse, error) {
	return c.messageClient.CreateFanoutJob(ctx, req)
}
