task-managment / src / types / index.ts
index.ts
Raw
import { AreaSelect, FloorSelect, priorityEnumSchema, ProjectMaterialsSelect, statusEnumSchema } from "@/database/schema";
import { Task, TaskStatus } from "@/server/task/domain/models";


export interface SelectedTask {
  id:string
  projectId: string;
  floorName: string;
  areaName: string;
  projectName: string;
  status:TaskStatus
  userId: string;
  areaId: string;
  priority: any;
  startDate: string;
  expireDate?: string;
  comments?: string;
}







  type Area = {
    id: number;
    type: string;
    length: number;
    width: number;
    quantity: number;
    floorId: number;
    status: string;
  };
  
  type Floor = {
    id: number;
    name: string;
    areas: Area[];
  };
  
  type Material = {
    id: number;
    name: string;
  };
  
  type ProjectFloors = {
    id:number,
    name:string,
    areas:Partial<AreaSelect>
  }
  
  export type Project = {
    id: number;
    name: string;
    residence: string;
    costPerMeter: number;
    totalCostPerMeter: number | null;
    totalCostMaterials: number | null;
    laborCost: number;
    startDate: string;
    typeCotization: string;
    estimadedEndDate: string;
    status: string;
    createdAT: string;
    updatedAt: string | null;
    floor: ProjectFloors[];
    projectMaterials: Partial<ProjectMaterialsSelect>[];
    task: Task[];
  };



  


 export type Label = 'Recientes' | 'Hoy' | "Esta semana" | "Mas tarde"


export type TaskSection = {
  label: Label;
  list: Task[]; // Cambia 'any' por el tipo específico de los elementos si lo conoces.
};

export type TaskSections = {
  recently: TaskSection;
  today: TaskSection;
  thisWeek: TaskSection;
  later: TaskSection;
};