Files
KAFM-Project/constants/constant.ts

462 lines
13 KiB
TypeScript

import { TableRowData } from '@/types/types';
import {
LayoutGrid,
Smile,
Building2,
User,
Target,
CheckSquare,
FileText,
Box,
Zap,
ClipboardList,
Star,
Monitor,
UserCheck,
Calendar,
Layers,
Coins,
Receipt,
ShieldCheck,
Flame,
Recycle,
GraduationCap,
Brain,
Activity,
Bot,
Gauge,
Snowflake,
Leaf,
MapPin,
BarChart3,
Sun,
Shield,
Settings,
Wallet,
Radar,
Cog,
} from "lucide-react";
//Side bar Drop Down menu
export const SIDEBAR_ITEMS = [
{
title: "Overview",
icon: LayoutGrid,
children: [
{ title: "Dashboard", href: "/dashboard/overview/dashboard", icon: LayoutGrid },
{ title: "Engagement", href: "/dashboard/overview/engagement", icon: Smile },
{ title: "Building Owner", href: "/dashboard/overview/buildingOwner", icon: Building2 },
{ title: "Property Manager", href: "/dashboard/overview/propertyManager", icon: User },
{ title: "Service Engineer", href: "/dashboard/overview/serviceEngineer", icon: Target },
],
},
{
title: "Operations",
icon: Settings,
children: [
{ title: "Help Desk", href: "/operations/help-desk", icon: CheckSquare, badge: 6, badgeColor: "bg-amber-500 text-black" },
{ title: "Equipment", href: "/operations/equipment", icon: Target },
{ title: "Requests", href: "/operations/requests", icon: FileText, badge: 15, badgeColor: "bg-amber-400 text-black" },
{ title: "Inventory", href: "/operations/inventory", icon: Box },
{ title: "Energy", href: "/operations/energy", icon: Zap },
{ title: "Work Permit", href: "/operations/work-permit", icon: ClipboardList, badge: 3, badgeColor: "bg-amber-500 text-black" },
{ title: "Vendor & Field Service", href: "/operations/vendor-field", icon: Star, badge: 12, badgeColor: "bg-sky-400 text-black" },
],
},
{
title: "Workplace",
icon: Monitor,
children: [
{ title: "Visitor Management", href: "/workplace/visitor", icon: UserCheck },
{ title: "Meeting Rooms", href: "/workplace/meeting-rooms", icon: Calendar },
{ title: "Workspace", href: "/workplace/workspace", icon: Layers },
],
},
{
title: "Finance",
icon: Wallet,
children: [
{ title: "O&M Budget", href: "/finance/om-budget", icon: Coins },
{ title: "Costing & Invoicing", href: "/finance/costing-invoicing", icon: Receipt },
],
},
{
title: "Compliance & Safety",
icon: ShieldCheck,
children: [
{ title: "Statutory Compliance", href: "/compliance/statutory", icon: ShieldCheck },
{ title: "Contracts & SLA", href: "/compliance/contracts-sla", icon: FileText },
{ title: "Fire & Safety", href: "/compliance/fire-safety", icon: Flame },
{ title: "Waste & ESG", href: "/compliance/waste-esg", icon: Recycle },
{ title: "Training", href: "/compliance/training", icon: GraduationCap },
],
},
{
title: "Intelligence",
icon: Brain,
children: [{ title: "AI & Predictive", href: "/intelligence/predictive", icon: Brain },
{ title: "Asset Health", href: "/intelligence/asset-health", icon: ShieldCheck },
{ title: "Energy Benchmarking", href: "/intelligence/benchmarking", icon: Activity },
{ title: "AI Helpdesk", href: "/intelligence/ai-helpdesk", icon: Bot },
{ title: "Connected Ops", href: "/intelligence/connected-ops", icon: Gauge },
{ title: "Connected Assets", href: "/intelligence/connected-assets", icon: Snowflake },
{ title: "Sustainability", href: "/intelligence/sustainability", icon: Leaf },
{ title: "GPS Tracking", href: "/intelligence/gps-tracking", icon: MapPin },],
},
{
title: "IoT Application",
icon: Radar,
children: [{ title: "Command Center", href: "/iot/command-center", icon: Gauge },
{ title: "HVAC Plant", href: "/iot/hvac-plant", icon: Snowflake },
{ title: "Energy & Utilities", href: "/iot/energy-utilities", icon: Zap },
{ title: "Device Fleet", href: "/iot/device-fleet", icon: LayoutGrid },
{ title: "Alarms & Rules", href: "/iot/alarms-rules", icon: Shield, badge: 7, badgeColor: "bg-rose-500 text-white" },],
},
{
title: "Insight",
icon: BarChart3,
children: [{ title: "Reports & MMR", href: "/insight/reports", icon: BarChart3 },],
},
{
title: "Configure",
icon: Cog,
children: [{ title: "Master Data", href: "/configure/master-data", icon: Layers },
{ title: "Roles & Access", href: "/configure/roles-access", icon: Shield },
{ title: "Workflow Automation", href: "/configure/workflow", icon: Bot },
{ title: "User Location", href: "/configure/user-location", icon: MapPin },
{ title: "Settings", href: "/configure/settings", icon: Sun },],
},
];
//Overview dashboard data
export const chartData = [
{ month: 'J', height: 'h-24' },
{ month: 'F', height: 'h-16' },
{ month: 'M', height: 'h-32' },
{ month: 'A', height: 'h-20' },
{ month: 'M', height: 'h-28' },
{ month: 'J', height: 'h-12' },
{ month: 'J', height: 'h-32' },
{ month: 'A', height: 'h-24' },
{ month: 'S', height: 'h-30' },
{ month: 'O', height: 'h-20' },
{ month: 'N', height: 'h-26' },
{ month: 'D', height: 'h-24' },
];
export const energyData = [
{ month: "Jan", height: 'h-20' },
{ month: "Feb", height: 'h-12' },
{ month: "Mar", height: 'h-24' },
{ month: "Apr", height: 'h-26' },
{ month: "May", height: 'h-18' },
{ month: "Jun", height: 'h-20' },
];
export const activities = [
{ time: '09:42', text: '6/1009 assigned to ME Local', boldText: '6/1009' },
{ time: '09:18', text: 'Location checklist Block 1/2 completed', boldText: 'Block 1/2' },
{ time: '08:55', text: 'Meter MTR-1 reading logged · 58.45 kWh', boldText: 'Meter MTR-1' },
{ time: '08:30', text: 'PPM job card printed for APP-1100', boldText: 'APP-1100' },
];
export const colorMap = {
teal: 'bg-teal-400',
amber: 'bg-amber-500',
rose: 'bg-rose-500',
emerald: 'bg-emerald-500',
};
export const SATISFACTION_DRIVERS = [
{ label: "Workplace cleanliness", score: 88, color: "bg-[#10b981]" },
{ label: "Response to requests", score: 82, color: "bg-[#10b981]" },
{ label: "Amenities & facilities", score: 79, color: "bg-[#06b6d4]" },
{ label: "Communication", score: 71, color: "bg-[#f59e0b]" },
{ label: "Comfort (HVAC / light)", score: 84, color: "bg-[#06b6d4]" },
];
// Mock Data for Tickets & Suggestions
export const TICKETS_DATA = [
{ title: "Pantry coffee machine down", type: "Complaint", status: "OPEN" },
{ title: "Add covered parking", type: "Suggestion", status: "CLOSED" },
{ title: "Lift slow on L4", type: "Complaint", status: "OPEN" },
{ title: "Lift slow on L4", type: "Complaint", status: "CLOSED" },
{ title: "More water dispensers", type: "Complaint", status: "CLOSED" },
];
//Tabs used in Operations dashboards
export const equipmentTabs: string[] = [
'Equipment Groups',
'Site-Wise Equipment',
'PPM Checklist',
'AMC Checklist',
'PPM Schedule',
'AMC Schedule',
'Maintenance Calendar'
];
export const helpdeskTtabs: string[] = ['Location', 'Technical',
'Missed', 'Departments', 'HSQE'];
export const Reqeusttabs: string[] = [
'TFM Requests',
'Engineering',
'Schedule Complaints'
];
export const statusFilters = [
{ label: 'All', count: 18 },
{ label: 'Registered', count: 4 },
{ label: 'Assigned', count: 3 },
{ label: 'Working', count: 4 },
{ label: 'Completed', count: 3 },
{ label: 'Overdue', count: 4 },
];
export const reportFilters = [
{ label: 'Site: All' },
{ label: 'Group: all' },
{ label: 'Status:All' },
];
export const workPermitFilters = [
{ label: 'All', count: 10 },
{ label: 'Awaiting', count: 3 },
{ label: 'Approved', count: 1},
{ label: 'Active', count: 2 },
{ label: 'Closed', count: 1 },
{ label: 'Expired', count: 1 },
{ label: 'Rejected', count: 1 },
];
export const visitorFilters = [
{ label: 'All', count: 12 },
{ label: 'Expected', count: 2 },
{ label: 'Pre-Reg', count: 2},
{ label: 'Onsite', count: 4 },
{ label: 'Left', count: 3 },
{ label: 'Denied', count: 1 },
];
// Data model interface
export const roomData = [
{
id: 1,
name: "Boardroom A",
location: "L10 • 16 seats",
status: "OCCUPIED",
statusColor: "bg-rose-500/10 text-rose-400 border-rose-500/20",
dotColor: "bg-rose-400",
tags: ["Video", "Display", "VC"],
subtitle: "Until 11:30 • Quarterly review",
actionType: "view"
},
{
id: 2,
name: "Huddle 1",
location: "L8 • 4 seats",
status: "AVAILABLE",
statusColor: "bg-emerald-500/10 text-emerald-400 border-emerald-500/20",
dotColor: "bg-emerald-400",
tags: ["Display"],
subtitle: "Free now",
actionType: "book"
},
{
id: 3,
name: "Training Hall",
location: "L2 • 40 seats",
status: "RESERVED",
statusColor: "bg-amber-500/10 text-amber-400 border-amber-500/20",
dotColor: "bg-amber-400",
tags: ["Projector", "Mic", "Catering"],
subtitle: "Until 14:00 • Safety induction",
actionType: "view"
},
{
id: 4,
name: "Focus Room 3",
location: "L8 • 2 seats",
status: "AVAILABLE",
statusColor: "bg-emerald-500/10 text-emerald-400 border-emerald-500/20",
dotColor: "bg-emerald-400",
tags: ["Display"],
subtitle: "Free now",
actionType: "book"
},
{
id: 5,
name: "Conf B",
location: "L5 • 10 seats",
status: "OCCUPIED",
statusColor: "bg-rose-500/10 text-rose-400 border-rose-500/20",
dotColor: "bg-rose-400",
tags: ["Video", "VC", "Whiteboard"],
subtitle: "Until 12:15 • Vendor call",
actionType: "view"
},
{
id: 6,
name: "Collab Zone",
location: "L3 • 8 seats",
status: "AVAILABLE",
statusColor: "bg-emerald-500/10 text-emerald-400 border-emerald-500/20",
dotColor: "bg-emerald-400",
tags: ["Display", "Whiteboard"],
subtitle: "Free now",
actionType: "book"
}
];
export const scheduleData = [
{
room: "Boardroom A",
title: "Quarterly business review",
time: "09:00",
status: "occupied"
},
{
room: "Conf B",
title: "Vendor onboarding call",
time: "10:00",
status: "occupied"
},
{
room: "Training Hall",
title: "Fire-safety induction",
time: "11:30",
status: "reserved"
},
{
room: "Collab Zone",
title: "Design sprint",
time: "14:00",
status: "available"
},
{
room: "Huddle 1",
title: "1:1 sync",
time: "16:00",
status: "available"
}
];
export const workspaceTabs: string[] = [
'Desk Booking',
'Floor Plan',
'TimeTable',
];
export const reporttabs: string[] = [
'Equipment',
'Maintance',
'Checklists',
'Requests',
'Inventory',
'Energy',
'HSQE',
'MMR',
];
// Mock Data for Zone Utilization
export const zoneUtilizationData = [
{ name: "North Wing · L8", current: 39, max: 48, barColor: "bg-amber-400" },
{ name: "Quiet Zone · L8", current: 11, max: 24, barColor: "bg-teal-400" },
{ name: "Collab · L3", current: 22, max: 30, barColor: "bg-amber-400" },
{ name: "Hot Desk · L5", current: 51, max: 60, barColor: "bg-amber-400" },
];
// Mock Data for Planned vs Actual Categories
export const categoryData = [
{
category: "PPM & AMC contracts",
type: "OPEX",
planned: "₹48.0 L",
actual: "₹31.2 L",
variance: "+₹16.8 L",
varianceColor: "text-emerald-400",
utilization: 65,
barColor: "bg-teal-400"
},
{
category: "Reactive repairs",
type: "OPEX",
planned: "₹15.0 L",
actual: "₹16.8 L",
variance: "-₹1.8 L",
varianceColor: "text-rose-400",
utilization: 112,
barColor: "bg-rose-400"
},
{
category: "Energy & utilities",
type: "OPEX",
planned: "₹62.0 L",
actual: "₹54.1 L",
variance: "+₹7.9 L",
varianceColor: "text-emerald-400",
utilization: 87,
barColor: "bg-teal-400"
},
{
category: "Consumables & spares",
type: "OPEX",
planned: "₹9.0 L",
actual: "₹7.4 L",
variance: "+₹1.6 L",
varianceColor: "text-emerald-400",
utilization: 82,
barColor: "bg-teal-400"
},
{
category: "Equipment upgrades",
type: "CAPEX",
planned: "₹35.0 L",
actual: "₹12.0 L",
variance: "+₹23.0 L",
varianceColor: "text-emerald-400",
utilization: 34,
barColor: "bg-teal-400"
},
{
category: "Soft services",
type: "OPEX",
planned: "₹22.0 L",
actual: "₹20.5 L",
variance: "+₹1.5 L",
varianceColor: "text-emerald-400",
utilization: 93,
barColor: "bg-amber-400"
}
];
// Mock Data for Approval Queue
export const approvalQueueData = [
{
id: "BUD-114",
title: "Chiller compressor overhaul",
meta: "L2 • FM Head • ₹4.8 L",
status: "pending"
},
{
id: "BUD-115",
title: "Q3 energy budget revision",
meta: "L3 • Finance • ₹12.0 L",
status: "pending"
},
{
id: "BUD-112",
title: "Fire panel AMC renewal",
meta: "L1 • Site • ₹2.6 L",
status: "completed"
}
];