import { DashboardStats, Issue, Project, Task, Team, User } from "@/types"; export const mockUsers: User[] = [ { id: "u1", name: "John Smith", email: "john.smith@example.com", role: "CEO", avatar: "https://ui-avatars.com/api/?name=John+Smith&background=random", }, { id: "u2", name: "Emily Johnson", email: "emily.johnson@example.com", role: "COO", avatar: "https://ui-avatars.com/api/?name=Emily+Johnson&background=random", }, { id: "u3", name: "Michael Brown", email: "michael.brown@example.com", role: "Project Manager", avatar: "https://ui-avatars.com/api/?name=Michael+Brown&background=random", }, { id: "u4", name: "Sarah Davis", email: "sarah.davis@example.com", role: "Account Manager", avatar: "https://ui-avatars.com/api/?name=Sarah+Davis&background=random", }, { id: "u5", name: "David Wilson", email: "david.wilson@example.com", role: "Tech Lead", avatar: "https://ui-avatars.com/api/?name=David+Wilson&background=random", }, { id: "u6", name: "Jessica Miller", email: "jessica.miller@example.com", role: "Senior Developer", avatar: "https://ui-avatars.com/api/?name=Jessica+Miller&background=random", }, { id: "u7", name: "Thomas Moore", email: "thomas.moore@example.com", role: "Developer", avatar: "https://ui-avatars.com/api/?name=Thomas+Moore&background=random", }, { id: "u8", name: "Patricia Taylor", email: "patricia.taylor@example.com", role: "Testing Manager", avatar: "https://ui-avatars.com/api/?name=Patricia+Taylor&background=random", }, { id: "u9", name: "Daniel Anderson", email: "daniel.anderson@example.com", role: "Senior Tester", avatar: "https://ui-avatars.com/api/?name=Daniel+Anderson&background=random", }, { id: "u10", name: "Jennifer Thomas", email: "jennifer.thomas@example.com", role: "Tester", avatar: "https://ui-avatars.com/api/?name=Jennifer+Thomas&background=random", }, ]; export const mockProjects: Project[] = [ { id: "p1", name: "Office Management", description: "Office management software development", status: "Active", progress: 65, startDate: "2023-04-01", endDate: "2023-07-15", teamId: "t1", leadId: "u3", }, { id: "p2", name: "Hospital Administration", description: "Hospital administration system", status: "Active", progress: 40, startDate: "2023-04-01", endDate: "2023-07-15", teamId: "t2", leadId: "u3", }, { id: "p3", name: "Project Management", description: "Project management tool development", status: "Active", progress: 25, startDate: "2023-07-01", endDate: "2023-10-15", teamId: "t3", leadId: "u5", }, { id: "p4", name: "Video Calling App", description: "Video conferencing solution", status: "Active", progress: 15, startDate: "2023-08-01", endDate: "2023-11-30", teamId: "t4", leadId: "u5", }, { id: "p5", name: "Digital Marketplace", description: "Online marketplace platform", status: "Active", progress: 5, startDate: "2023-09-01", endDate: "2024-01-15", teamId: "t5", leadId: "u3", }, ]; export const mockTeams: Team[] = [ { id: "t1", name: "Core Development", members: ["u3", "u5", "u6", "u7", "u8"], leadId: "u5", projectIds: ["p1"], }, { id: "t2", name: "Healthcare Solutions", members: ["u3", "u4", "u6", "u9", "u10"], leadId: "u4", projectIds: ["p2"], }, { id: "t3", name: "Product Team", members: ["u3", "u5", "u7", "u8", "u9"], leadId: "u5", projectIds: ["p3"], }, { id: "t4", name: "Communication Tech", members: ["u4", "u5", "u6", "u7", "u10"], leadId: "u5", projectIds: ["p4"], }, { id: "t5", name: "E-commerce Solutions", members: ["u3", "u4", "u6", "u8", "u9"], leadId: "u3", projectIds: ["p5"], }, ]; export const mockIssues: Issue[] = [ { id: "i1", title: "Login button not working", description: "Users cannot login using the login button on the homepage", projectId: "p1", assigneeId: "u7", reporterId: "u8", priority: "High", status: "In Progress", type: "Bug", createdAt: "2023-05-10T10:30:00Z", updatedAt: "2023-05-10T14:20:00Z", }, { id: "i2", title: "API timeout", description: "The API is timing out when fetching large datasets", projectId: "p1", assigneeId: "u6", reporterId: "u9", priority: "Critical", status: "In Progress", type: "Bug", createdAt: "2023-05-11T09:15:00Z", updatedAt: "2023-05-11T13:45:00Z", }, { id: "i3", title: "UI misalign", description: "UI elements are misaligned on mobile devices", projectId: "p2", assigneeId: "u6", reporterId: "u9", priority: "Medium", status: "New", type: "Bug", createdAt: "2023-05-12T11:20:00Z", updatedAt: "2023-05-12T11:20:00Z", }, { id: "i4", title: "Dark mode support", description: "Implement dark mode for better user experience", projectId: "p3", assigneeId: "u7", reporterId: "u5", priority: "Low", status: "New", type: "Feature", createdAt: "2023-05-13T14:10:00Z", updatedAt: "2023-05-13T14:10:00Z", }, { id: "i5", title: "Multi-language UI", description: "Add support for multiple languages in the UI", projectId: "p4", assigneeId: "u6", reporterId: "u3", priority: "Medium", status: "New", type: "Feature", createdAt: "2023-05-14T10:05:00Z", updatedAt: "2023-05-14T10:05:00Z", }, { id: "i6", title: "Notification panel", description: "Create a notification panel for real-time updates", projectId: "p5", assigneeId: "u7", reporterId: "u3", priority: "Medium", status: "New", type: "Feature", createdAt: "2023-05-15T09:30:00Z", updatedAt: "2023-05-15T09:30:00Z", }, { id: "i7", title: "Advanced search", description: "Implement advanced search functionality", projectId: "p5", assigneeId: "u6", reporterId: "u4", priority: "Low", status: "New", type: "Feature", createdAt: "2023-05-16T13:45:00Z", updatedAt: "2023-05-16T13:45:00Z", }, ]; export const mockTasks: Task[] = [ { id: "t1", title: "Fix login button", description: "Investigate and fix login button not working issue", issueId: "i1", assigneeId: "u7", status: "In Progress", priority: "High", dueDate: "2023-05-17", createdAt: "2023-05-10T14:20:00Z", updatedAt: "2023-05-10T14:20:00Z", }, { id: "t2", title: "Optimize API endpoints", description: "Improve API performance and fix timeout issues", issueId: "i2", assigneeId: "u6", status: "In Progress", priority: "Critical", dueDate: "2023-05-18", createdAt: "2023-05-11T13:45:00Z", updatedAt: "2023-05-11T13:45:00Z", }, { id: "t3", title: "Responsive design fixes", description: "Fix UI misalignment issues on mobile devices", issueId: "i3", assigneeId: "u6", status: "New", priority: "Medium", dueDate: "2023-05-19", createdAt: "2023-05-12T11:20:00Z", updatedAt: "2023-05-12T11:20:00Z", }, { id: "t4", title: "Dark mode implementation", description: "Create dark mode theme and toggle", issueId: "i4", assigneeId: "u7", status: "New", priority: "Low", dueDate: "2023-05-20", createdAt: "2023-05-13T14:10:00Z", updatedAt: "2023-05-13T14:10:00Z", }, { id: "t5", title: "UI localization", description: "Set up language switcher and translate UI elements", issueId: "i5", assigneeId: "u6", status: "New", priority: "Medium", dueDate: "2023-05-21", createdAt: "2023-05-14T10:05:00Z", updatedAt: "2023-05-14T10:05:00Z", }, { id: "t6", title: "Notification UI design", description: "Design notification panel UI components", issueId: "i6", assigneeId: "u7", status: "New", priority: "Medium", dueDate: "2023-05-22", createdAt: "2023-05-15T09:30:00Z", updatedAt: "2023-05-15T09:30:00Z", }, { id: "t7", title: "Search algorithm", description: "Develop advanced search algorithm and indexing", issueId: "i7", assigneeId: "u6", status: "New", priority: "Low", dueDate: "2023-05-23", createdAt: "2023-05-16T13:45:00Z", updatedAt: "2023-05-16T13:45:00Z", }, ]; export const mockDashboardStats: DashboardStats = { projects: 112, employees: 218, tasks: 37, clients: 44, revenue: 142500, expenses: 58500, profit: 84000, completedTasks: 156, pendingTasks: 32, inProgressTasks: 75, onHoldTasks: 21, reviewTasks: 5, }; export const mockRevenueData = [ { name: "2018", value: 150000, color: "#F97316" }, { name: "2019", value: 160000, color: "#F97316" }, { name: "2020", value: 130000, color: "#F97316" }, { name: "2021", value: 170000, color: "#F97316" }, { name: "2022", value: 150000, color: "#F97316" }, { name: "2023", value: 190000, color: "#F97316" }, ]; export const mockSalesData = [ { name: "00:00", value: 50, color: "#E53E3E" }, { name: "03:00", value: 80, color: "#E53E3E" }, { name: "06:00", value: 45, color: "#E53E3E" }, { name: "09:00", value: 60, color: "#E53E3E" }, { name: "12:00", value: 75, color: "#E53E3E" }, { name: "15:00", value: 55, color: "#E53E3E" }, { name: "18:00", value: 70, color: "#E53E3E" }, { name: "21:00", value: 90, color: "#E53E3E" }, { name: "00:00", value: 40, color: "#F97316" }, { name: "03:00", value: 60, color: "#F97316" }, { name: "06:00", value: 75, color: "#F97316" }, { name: "09:00", value: 45, color: "#F97316" }, { name: "12:00", value: 55, color: "#F97316" }, { name: "15:00", value: 70, color: "#F97316" }, { name: "18:00", value: 45, color: "#F97316" }, { name: "21:00", value: 85, color: "#F97316" }, ]; export function getUserById(id: string): User | undefined { return mockUsers.find(user => user.id === id); } export function getProjectById(id: string): Project | undefined { return mockProjects.find(project => project.id === id); } export function getTeamById(id: string): Team | undefined { return mockTeams.find(team => team.id === id); } export function getIssueById(id: string): Issue | undefined { return mockIssues.find(issue => issue.id === id); } export function getTaskById(id: string): Task | undefined { return mockTasks.find(task => task.id === id); } export function getUsersByTeamId(teamId: string): User[] { const team = mockTeams.find(t => t.id === teamId); if (!team) return []; return team.members.map(userId => getUserById(userId)).filter(Boolean) as User[]; } export function getProjectsByTeamId(teamId: string): Project[] { return mockProjects.filter(project => project.teamId === teamId); } export function getIssuesByProjectId(projectId: string): Issue[] { return mockIssues.filter(issue => issue.projectId === projectId); } export function getTasksByIssueId(issueId: string): Task[] { return mockTasks.filter(task => task.issueId === issueId); } export function getTasksByAssigneeId(assigneeId: string): Task[] { return mockTasks.filter(task => task.assigneeId === assigneeId); } export function getProjectsByLeadId(leadId: string): Project[] { return mockProjects.filter(project => project.leadId === leadId); } export function getTeamsByUserId(userId: string): Team[] { return mockTeams.filter(team => team.members.includes(userId)); }