import { z } from "zod"; import type { IAuthenticationService } from "../services/authentication.service.interface"; // ── Input ──────────────────────────────────────────────────────────────── export const signOutInputSchema = z.object({ sessionId: z.string() }).strict(); export type SignOutInput = z.infer; // No xOutputSchema — use case returns void. // ── Use case ───────────────────────────────────────────────────────────── export type ISignOutUseCase = ReturnType; export const signOutUseCase = (authenticationService: IAuthenticationService) => async (input: SignOutInput): Promise => { await authenticationService.invalidateSession(input.sessionId); };