package usecase import "context" type TokenType string const ( TokenTypeAccess TokenType = "access" TokenTypeRefresh TokenType = "refresh" ) type TokenPair struct { AccessToken string RefreshToken string ExpiresIn int64 TokenType string UID string } type IssuePairRequest struct { TenantID string UID string AuthGen int64 } type AccessClaims struct { TenantID string UID string AuthGen int64 JTI string } type LogoutRequest struct { AccessToken string } type TokenUseCase interface { IssuePair(ctx context.Context, req IssuePairRequest) (*TokenPair, error) Refresh(ctx context.Context, refreshToken string) (*TokenPair, error) Logout(ctx context.Context, req LogoutRequest) error ParseAccessToken(ctx context.Context, accessToken string) (*AccessClaims, error) }