export interface HideGuideDependencies { adminCheck: () => Promise; toggle: (id: string) => Promise; afterToggle: () => Promise | void; } export async function hideGuideService( id: string, dependencies: HideGuideDependencies, ) { if (!(await dependencies.adminCheck())) throw "Unauthorized"; await dependencies.toggle(id); await dependencies.afterToggle(); }