Files
KAFM-Project/constants/constant.ts

890 lines
23 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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: "Audit & Survey", 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 trainingtabs: string[] = [
'Courses',
'Certificates & history',
];
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"
}
];
export const wasteStreams = [
{ name: "General / landfill", amount: "1240", percentage: 70, color: "bg-slate-500" },
{ name: "Recyclable (paper/plastic)", amount: "860", percentage: 50, color: "bg-teal-400" },
{ name: "Organic / compost", amount: "540", percentage: 35, color: "bg-emerald-400" },
{ name: "E-waste", amount: "120", percentage: 10, color: "bg-blue-500" },
{ name: "Hazardous", amount: "64", percentage: 5, color: "bg-rose-400" },
];
export const scheduleItems = [
{ frequency: "Mon · Wed · Fri", stream: "General + recyclable", vendor: "GreenCycle Pvt" },
{ frequency: "Tue · Sat", stream: "Organic / compost", vendor: "In-house" },
{ frequency: "Monthly", stream: "E-waste", vendor: "EcoReco" },
{ frequency: "On call", stream: "Hazardous", vendor: "Ramky Enviro" },
];
export const stockItems = [
{
item: "Cooling tower fan belt",
group: "HVAC",
store: "Block Store",
min: 5,
presentValue: 8,
unit: "Gallon",
status: "COMPLETED",
isHighlighted: false,
},
{
item: "Air filter 24×24",
group: "HVAC",
store: "Block Store",
min: 5,
presentValue: 2,
unit: "Nos",
status: "OVERDUE",
isHighlighted: true,
},
{
item: "MCB 32A",
group: "Electrical",
store: "Block Store",
min: 5,
presentValue: 8,
unit: "Nos",
status: "COMPLETED",
isHighlighted: false,
},
{
item: "Contactor 40A",
group: "Electrical",
store: "Block Store",
min: 2,
presentValue: 2,
unit: "Nos",
status: "OVERDUE",
isHighlighted: false,
},
{
item: "PVC pipe 1\"",
group: "Plumbing",
store: "Main Store",
min: 3,
presentValue: 0,
unit: "Mtr",
status: "OVERDUE",
isHighlighted: false,
},
{
item: "Submersible pump seal",
group: "Plumbing",
store: "Main Store",
min: 3,
presentValue: 2,
unit: "Nos",
status: "OVERDUE",
isHighlighted: false,
},
{
item: "Refrigerant R410a",
group: "HVAC",
store: "Block Store",
min: 5,
presentValue: 0,
unit: "Kg",
status: "OVERDUE",
isHighlighted: false,
},
];
export const consumptionLedger = [
{
txn: "TXN-5200",
item: "Cooling tower fan belt",
type: "Consume",
qty: "2 Gallon",
jobCard: "026/1009",
date: "Jun 20, 2026",
},
{
txn: "TXN-5201",
item: "MCB 32A",
type: "Consume",
qty: "1 Nos",
jobCard: "026/1016",
date: "Jun 21, 2026",
},
{
txn: "TXN-5202",
item: "Air filter 24×24",
type: "Receipt",
qty: "10 Nos",
jobCard: "—",
date: "Jun 22, 2026",
},
{
txn: "TXN-5203",
item: "Submersible pump seal",
type: "Consume",
qty: "1 Nos",
jobCard: "026/1023",
date: "Jun 23, 2026",
},
{
txn: "TXN-5204",
item: "Air filter 24×24",
type: "Consume",
qty: "3 Nos",
jobCard: "026/1030",
date: "Jun 24, 2026",
},
{
txn: "TXN-5205",
item: "PVC pipe 1\"",
type: "Receipt",
qty: "20 Mtr",
jobCard: "—",
date: "Jun 25, 2026",
},
{
txn: "TXN-5406",
item: "Cooling tower fan belt",
type: "Consume",
qty: "2 Gallon",
jobCard: "026/1009",
date: "Jun 7, 2026",
},
{
txn: "TXN-5407",
item: "MCB 32A",
type: "Consume",
qty: "1 Nos",
jobCard: "026/1016",
date: "Jun 7, 2026",
},
{
txn: "TXN-5200",
item: "Cooling tower fan belt",
type: "Consume",
qty: "2 Gallon",
jobCard: "026/1009",
date: "Jun 20, 2026",
},
{
txn: "TXN-5201",
item: "MCB 32A",
type: "Consume",
qty: "1 Nos",
jobCard: "026/1016",
date: "Jun 21, 2026",
},
{
txn: "TXN-5202",
item: "Air filter 24×24",
type: "Receipt",
qty: "10 Nos",
jobCard: "—",
date: "Jun 22, 2026",
},
{
txn: "TXN-5203",
item: "Submersible pump seal",
type: "Consume",
qty: "1 Nos",
jobCard: "026/1023",
date: "Jun 23, 2026",
},
{
txn: "TXN-5204",
item: "Air filter 24×24",
type: "Consume",
qty: "3 Nos",
jobCard: "026/1030",
date: "Jun 24, 2026",
},
{
txn: "TXN-5205",
item: "PVC pipe 1\"",
type: "Receipt",
qty: "20 Mtr",
jobCard: "—",
date: "Jun 25, 2026",
},
{
txn: "TXN-5406",
item: "Cooling tower fan belt",
type: "Consume",
qty: "2 Gallon",
jobCard: "026/1009",
date: "Jun 7, 2026",
},
{
txn: "TXN-5407",
item: "MCB 32A",
type: "Consume",
qty: "1 Nos",
jobCard: "026/1016",
date: "Jun 7, 2026",
},
];
export const vendorData = [
{
name: "Voltas Ltd",
id: "CTR-700",
scope: "HVAC AMC & breakdown",
rating: "4.6",
sla: "95%",
slaColor: "text-emerald-400",
response: "4.0h",
openJobs: "2",
},
{
name: "Blue Star",
id: "CTR-701",
scope: "Chiller & VRV service",
rating: "4.1",
sla: "88%",
slaColor: "text-amber-400",
response: "1.2h",
openJobs: "2",
},
{
name: "Sterling FM",
id: "CTR-702",
scope: "Integrated FM / soft services",
rating: "3.4",
sla: "94%",
slaColor: "text-emerald-400",
response: "2.4h",
openJobs: "4",
},
{
name: "OTIS Elevators",
id: "CTR-704",
scope: "Elevator AMC",
rating: "4.8",
sla: "95%",
slaColor: "text-emerald-400",
response: "2.8h",
openJobs: "—",
},
{
name: "Sodexo",
id: "CTR-705",
scope: "Soft services & cafeteria",
rating: "4.3",
sla: "90%",
slaColor: "text-amber-400",
response: "2.8h",
openJobs: "1",
},
{
name: "In-house team",
id: "—",
scope: "Day-to-day maintenance",
rating: "4.0",
sla: "93%",
slaColor: "text-amber-400",
response: "3.2h",
openJobs: "3",
},
];
export const fieldCrewData = [
{
initials: "RK",
name: "Ravi Kumar",
role: "M&E Technician • Chiller plant",
status: "ON-SITE",
statusType: "onsite",
time: "6.4h today",
},
{
initials: "SI",
name: "Sana Iqbal",
role: "HVAC Engineer • AHU room L7",
status: "ON-SITE",
statusType: "onsite",
time: "6.1h today",
},
{
initials: "MD",
name: "Mohan D.",
role: "Electrician • En route",
status: "EN-ROUTE",
statusType: "enroute",
time: "—",
},
{
initials: "LN",
name: "Lakshmi N.",
role: "Housekeeping Lead • Lobby + L2",
status: "ON-SITE",
statusType: "onsite",
time: "6.7h today",
},
{
initials: "AP",
name: "Arjun P.",
role: "Plumber • Off-site",
status: "OFF-SITE",
statusType: "offsite",
time: "—",
},
{
initials: "FR",
name: "Fatima R.",
role: "BMS Operator • Control room",
status: "ON-SITE",
statusType: "onsite",
time: "7.6h today",
},
];
export const permitsData = [
{
permit: "PTW-2663",
workingType: "Work at Height",
location: "Atrium void",
contractor: "Blue Star",
validityDate: "Jun 26, 2026",
validityTime: "08:3017:00",
crew: 2,
status: "ACTIVE",
actionText: "Close out",
isHighlighted: false,
},
{
permit: "PTW-2664",
workingType: "Electrical Isolation",
location: "STP wet well",
contractor: "Sterling FM",
validityDate: "Jun 26, 2026",
validityTime: "09:0013:00",
crew: 3,
status: "SUBMITTED",
actionText: "Approve",
isHighlighted: true, // Row with highlight bar
},
{
permit: "PTW-2665",
workingType: "Confined Space",
location: "DG yard",
contractor: "In-house team",
validityDate: "Jun 26, 2026",
validityTime: "14:0018:00",
crew: 4,
status: "APPROVED",
actionText: "Activate",
isHighlighted: false,
},
{
permit: "PTW-2666",
workingType: "Hot Work",
location: "Roof terrace",
contractor: "Voltas Ltd",
validityDate: "Jun 25, 2026",
validityTime: "08:0012:00",
crew: 5,
status: "EXPIRED",
hasViewIconOnly: true,
isHighlighted: false,
},
{
permit: "PTW-2667",
workingType: "Work at Height",
location: "LT panel room",
contractor: "Blue Star",
validityDate: "Jun 25, 2026",
validityTime: "10:0016:00",
crew: 2,
status: "CLOSED",
hasViewIconOnly: true,
isHighlighted: false,
},
{
permit: "PTW-2668",
workingType: "Electrical Isolation",
location: "Chiller plant",
contractor: "Sterling FM",
validityDate: "Jun 26, 2026",
validityTime: "11:0015:00",
crew: 3,
status: "REJECTED",
hasViewIconOnly: true,
isHighlighted: false,
},
{
permit: "PTW-2726",
workingType: "Work at Height",
location: "Atrium void",
contractor: "Blue Star",
validityDate: "Jun 26, 2026",
validityTime: "08:3017:00",
crew: 2,
status: "DRAFT",
actionText: "Submit",
isHighlighted: false,
},
];