import { UserId } from "@/server/user/domain/models";
import {
DeleteMaterial,
DeleteProjectMaterial,
Material,
MaterialId,
ProjectMaterial,
UpdateProjectMaterial,
} from "./models";
import { ProjectId } from "@/server/project/domain/models";
export interface MaterialRepository {
getAll(): Promise<Material[]>;
create(data: Material, userId: UserId): Promise<Material>;
createProjectMaterial(
data: ProjectMaterial,
userId: UserId
): Promise<ProjectMaterial>;
updateProjectMaterial(
data: ProjectMaterial,
userId: UserId
): Promise<Partial<ProjectMaterial>>;
delete(
deleteMaterials: DeleteMaterial,
userId: UserId
): Promise<Material[]>;
deleteProjectMaterials(
data: DeleteProjectMaterial,
userId: UserId
): Promise<DeleteProjectMaterial>;
getProjectMaterialByProject(
materialId: MaterialId,
projectId: ProjectId
): Promise<ProjectMaterial>;
getById(materialId: MaterialId): Promise<Material>;
}