Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 | 5x 5x 5x 5x 5x 5x 5x 5x | // Constants and configuration maps
// Room categories with metadata
// `value` is the display slug used in URLs. `roomTypeCodes` maps to actual DB room_type codes
// so the API can query the right rooms (e.g., "bedroom" aggregates master/kids/guest bedroom).
export const ROOM_CATEGORIES = [
{
value: "living_room",
label: "Living Room",
icon: "๐๏ธ",
description: "Sofas, entertainment, gathering spaces",
roomTypeCodes: ["living_room"],
},
{
value: "kitchen",
label: "Kitchen",
icon: "๐ณ",
description: "Modular kitchens, dining areas",
roomTypeCodes: ["kitchen"],
},
{
value: "bedroom",
label: "Bedroom",
icon: "๐๏ธ",
description: "Master bedroom, kids rooms, guest rooms",
roomTypeCodes: ["master_bedroom", "kids_bedroom", "guest_bedroom"],
},
{
value: "full_home",
label: "Full Home",
icon: "๐ ",
description: "Complete home interior design",
roomTypeCodes: ["full_home"],
},
{
value: "office",
label: "Home Office",
icon: "๐ผ",
description: "Work-from-home setups, study rooms",
roomTypeCodes: ["study"],
},
{
value: "bathroom",
label: "Bathroom",
icon: "๐ฟ",
description: "Bath, vanity, and fittings",
roomTypeCodes: ["bathroom"],
},
{
value: "kids_room",
label: "Kids Room",
icon: "๐งธ",
description: "Playful, safe, growing-up spaces",
roomTypeCodes: ["kids_bedroom"],
},
{
value: "dining",
label: "Dining",
icon: "๐ฝ๏ธ",
description: "Dining rooms and bar counters",
roomTypeCodes: ["dining_area"],
},
{
value: "balcony",
label: "Balcony",
icon: "๐ฟ",
description: "Outdoor lounges and terraces",
roomTypeCodes: ["balcony", "terrace"],
},
{
value: "pooja_room",
label: "Pooja Room",
icon: "๐ช",
description: "Prayer room and devotional spaces",
roomTypeCodes: ["pooja_room"],
},
{
value: "wardrobe",
label: "Wardrobe",
icon: "๐",
description: "Custom wardrobes and storage",
roomTypeCodes: ["wardrobe"],
},
{
value: "other",
label: "Other Spaces",
icon: "โจ",
description: "Foyers, corridors, and unique spaces",
roomTypeCodes: ["other", "foyer", "utility"],
},
] as const;
export const CITIES = [
{ value: "hyderabad", label: "Hyderabad" },
{ value: "pune", label: "Pune" },
{ value: "bangalore", label: "Bangalore" },
{ value: "mumbai", label: "Mumbai" },
{ value: "chennai", label: "Chennai" },
{ value: "delhi", label: "Delhi" },
] as const;
export interface CustomerSegmentConfig {
symbol: string;
label: string;
bgColor: string;
textColor: string;
}
export const CUSTOMER_SEGMENT_CONFIG: Record<string, CustomerSegmentConfig> = {
Budget: {
symbol: "โน",
label: "Budget-Friendly",
bgColor: "bg-background-muted",
textColor: "text-foreground-default",
},
"Mid-Range": {
symbol: "โนโน",
label: "Mid-Range",
bgColor: "bg-info-light",
textColor: "text-foreground-default",
},
Premium: {
symbol: "โนโนโน",
label: "Premium",
// `--purple-100` is inverted to a dark color in dark mode (see
// global.css), so explicit dark variants are required to keep the
// badge legible. Plain `text-purple-700` on `dark:bg-purple-100`
// gives contrast 2.14 โ fails WCAG AA.
bgColor: "bg-purple-100 dark:bg-purple-900",
textColor: "text-purple-700 dark:text-purple-200",
},
Luxury: {
symbol: "โนโนโนโน",
label: "Luxury",
bgColor: "bg-yellow-100",
textColor: "text-yellow-800",
},
};
export const PROPERTY_TYPE_LABELS: Record<string, string> = {
apartment: "Apartment",
villa: "Villa",
independent_house: "Independent House",
commercial: "Commercial",
};
export const BUDGET_RANGE_LABELS: Record<string, string> = {
under_1l: "Under 1L",
"1_3l": "1-3L",
"3_5l": "3-5L",
"5_10l": "5-10L",
above_10l: "10L+",
};
// Room-level budget labels (per-room cost, smaller ranges than project-level)
export const ROOM_BUDGET_LABELS: Record<string, string> = {
under_50k: "Under โน50K",
"50k_1l": "โน50K - 1 Lakh",
"1l_2l": "โน1 - 2 Lakhs",
"2l_5l": "โน2 - 5 Lakhs",
above_5l: "Above โน5 Lakhs",
};
// Full budget range labels (for project details)
export const BUDGET_RANGE_LABELS_FULL: Record<string, string> = {
under_1l: "Under 1 Lakh",
"1_3l": "1-3 Lakhs",
"3_5l": "3-5 Lakhs",
"5_10l": "5-10 Lakhs",
above_10l: "Above 10 Lakhs",
};
// Site-wide labels โ single source of truth for CTAs and navigation text
export const SITE_LABELS = {
JOIN_AS_PRO: "Join as Pro",
HOW_IT_WORKS: "How It Works",
LIST_YOUR_BUSINESS: "List Your Business โ Free",
LIST_YOUR_BUSINESS_ARROW: "List Your Business โ Free โ",
} as const;
|