package usecase

import (
	"context"
	"time"
)

// CreateLoginMFAChallengeRequest binds tenant/member after password verification.
type CreateLoginMFAChallengeRequest struct {
	TenantID   string
	TenantSlug string
	UID        string
	TTL        time.Duration
}

// LoginMFAChallengeView is returned when login requires TOTP confirmation.
type LoginMFAChallengeView struct {
	ChallengeID string
	ExpiresIn   int
}

// LoginMFAChallengeUseCase manages password-login MFA challenges.
type LoginMFAChallengeUseCase interface {
	Create(ctx context.Context, req *CreateLoginMFAChallengeRequest) (*LoginMFAChallengeView, error)
	Get(ctx context.Context, challengeID string) (*CreateLoginMFAChallengeRequest, error)
	Delete(ctx context.Context, challengeID string) error
}
