package storagedailyusage

import (
	"go.uber.org/zap"

	"codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/config"
	uc_storagedailyusage "codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/internal/usecase/storagedailyusage"
)

// Wire providers for storage daily usage services

func ProvideGetStorageDailyUsageTrendService(
	cfg *config.Configuration,
	logger *zap.Logger,
	getStorageDailyUsageTrendUseCase uc_storagedailyusage.GetStorageDailyUsageTrendUseCase,
) GetStorageDailyUsageTrendService {
	return NewGetStorageDailyUsageTrendService(cfg, logger, getStorageDailyUsageTrendUseCase)
}

func ProvideGetStorageUsageSummaryService(
	cfg *config.Configuration,
	logger *zap.Logger,
	getStorageUsageSummaryUseCase uc_storagedailyusage.GetStorageUsageSummaryUseCase,
) GetStorageUsageSummaryService {
	return NewGetStorageUsageSummaryService(cfg, logger, getStorageUsageSummaryUseCase)
}

func ProvideGetStorageUsageByDateRangeService(
	cfg *config.Configuration,
	logger *zap.Logger,
	getStorageUsageByDateRangeUseCase uc_storagedailyusage.GetStorageUsageByDateRangeUseCase,
) GetStorageUsageByDateRangeService {
	return NewGetStorageUsageByDateRangeService(cfg, logger, getStorageUsageByDateRangeUseCase)
}

func ProvideUpdateStorageUsageService(
	cfg *config.Configuration,
	logger *zap.Logger,
	updateStorageUsageUseCase uc_storagedailyusage.UpdateStorageUsageUseCase,
) UpdateStorageUsageService {
	return NewUpdateStorageUsageService(cfg, logger, updateStorageUsageUseCase)
}
