import { UserId } from "@/server/user/domain/models"; import { Area, AreaId, Floor, FloorId, Project, ProjectDetail, ProjectEarningsResults, ProjectFilter, ProjectId, ProjectMaterials, ProjectQueryResuls, ProjectSummary, } from "../domain/models"; export interface ProjectService { createProject(data: Project, userId: UserId): Promise; updateProject(data: Partial, userId: UserId): Promise; getProjects(filter: ProjectFilter): Promise; getProjectById(projectId: ProjectId): Promise; searchProjects(filter: ProjectFilter): Promise>; getAllProjectMaterials(): Promise; getProjectSummary(filter: ProjectFilter): Promise; getProjectEarnings(filter: ProjectFilter): Promise; createProjectArea(data: Area, userId: UserId): Promise; updateProjectArea( data: Partial, userId: UserId ): Promise>; deleteProjectArea(areaId: AreaId, userId: UserId): Promise; createProjectFloor(data: Floor, userId: UserId): Promise; updateProjectFloor( data: Partial, userId: UserId ): Promise>; deleteProjectFloor(floorId: FloorId, userId: UserId): Promise>; isFloorInProjectExist(floorName:string,projectId: ProjectId):Promise }