task-managment / src / server / material / application / material-service-definition.ts
material-service-definition.ts
Raw
import { UserId } from "@/server/user/domain/models";
import { DeleteMaterial, DeleteProjectMaterial, Material, MaterialId, ProjectMaterial, UpdateProjectMaterial } from "../domain/models";
import { ProjectId } from "@/server/project/domain/models";

export interface MaterialService {
  getAllMaterials(): Promise<Material[]>;

  createMaterial(data: Material, userId: UserId): Promise<Material>;

  createProjectMaterial(
    data: ProjectMaterial,
    userId: UserId
  ): Promise<ProjectMaterial>;

  updateProjectMaterial(
    data: Partial<ProjectMaterial>,
    userId: UserId
  ): Promise<Partial<ProjectMaterial>>;

  deleteMaterials(
    deleteMaterials: DeleteMaterial,
    userId: UserId
  ): Promise<Material[]>;

  deleteProjectMaterials(
    data: DeleteProjectMaterial,
    userId: UserId
  ): Promise<DeleteProjectMaterial>;
  getProjectMaterialByProject(materialId:MaterialId,projectId:ProjectId):Promise<ProjectMaterial>
   getMaterialById(materialId:MaterialId):Promise<Material>
}