import { OpsTask } from '../../entities/ops-task.entity';
import { TaskType } from '../../value-objects/task-type.vo';

export interface CreateInspectionTaskParams {
  tenantId: string;
  title: string;
  description?: string;
  targetServers: string[];
  runbookId?: string;
  createdBy: string;
}

export interface CreateDeploymentTaskParams {
  tenantId: string;
  title: string;
  description?: string;
  targetServers: string[];
  runbookId?: string;
  createdBy: string;
  priority?: number;
}

export interface CreateCustomTaskParams {
  tenantId: string;
  type: TaskType;
  title: string;
  description?: string;
  targetServers: string[];
  runbookId?: string;
  createdBy: string;
  priority?: number;
}

export interface CreateTaskPort {
  createInspectionTask(params: CreateInspectionTaskParams): Promise<OpsTask>;
  createDeploymentTask(params: CreateDeploymentTaskParams): Promise<OpsTask>;
  createCustomTask(params: CreateCustomTaskParams): Promise<OpsTask>;
}
