package site import ( "context" "github.com/gocql/gocql" "go.uber.org/zap" siteusecase "codeberg.org/mapleopentech/monorepo/cloud/maplepress-backend/internal/usecase/site" ) // VerifySiteService handles site verification operations type VerifySiteService interface { VerifySite(ctx context.Context, tenantID gocql.UUID, siteID gocql.UUID, input *siteusecase.VerifySiteInput) (*siteusecase.VerifySiteOutput, error) } type verifySiteService struct { verifySiteUC *siteusecase.VerifySiteUseCase logger *zap.Logger } // NewVerifySiteService creates a new VerifySiteService func NewVerifySiteService( verifySiteUC *siteusecase.VerifySiteUseCase, logger *zap.Logger, ) VerifySiteService { return &verifySiteService{ verifySiteUC: verifySiteUC, logger: logger.Named("verify-site-service"), } } // ProvideVerifySiteService provides VerifySiteService for dependency injection func ProvideVerifySiteService( verifySiteUC *siteusecase.VerifySiteUseCase, logger *zap.Logger, ) VerifySiteService { return NewVerifySiteService(verifySiteUC, logger) } // VerifySite verifies a site using the verification token func (s *verifySiteService) VerifySite( ctx context.Context, tenantID gocql.UUID, siteID gocql.UUID, input *siteusecase.VerifySiteInput, ) (*siteusecase.VerifySiteOutput, error) { s.logger.Info("verifying site", zap.String("tenant_id", tenantID.String()), zap.String("site_id", siteID.String())) return s.verifySiteUC.Execute(ctx, tenantID, siteID, input) }