Skip to content

[Tech Debt] Fix Clean Architecture violation: Core use cases import ServerManagerFactory from @tf2qs/providers #264

@sonikro

Description

@sonikro

Problem

Six use cases in packages/core/src/usecase/ import ServerManagerFactory from @tf2qs/providers instead of @tf2qs/core:

packages/core/src/usecase/CreateServerForUser.ts
packages/core/src/usecase/DeleteServer.ts
packages/core/src/usecase/DeleteServerForUser.ts
packages/core/src/usecase/TerminateLongRunningServers.ts
packages/core/src/usecase/TerminatePendingServers.ts
packages/core/src/usecase/TerminateServersWithoutCredit.ts

All contain:

import { ServerManagerFactory } from '@tf2qs/providers';

This violates the Clean Architecture constraint that the core layer must not depend on the providers layer. The ServerManagerFactory interface is already defined in packages/core/src/services/ServerManagerFactory.ts and re-exported from packages/core/index.ts. The providers package re-exports it with export type { ServerManagerFactory } — so it works, but the dependency direction is wrong.

Fix

Change all 6 import lines from:

import { ServerManagerFactory } from '@tf2qs/providers';

to:

import { ServerManagerFactory } from '@tf2qs/core';

No functional change required — this is purely an import direction fix.

Metadata

Metadata

Assignees

No one assigned

    Labels

    tech-debtTechnical debt items

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions