/* Mock data for the YEIDA portal — realistic Yamuna Expressway style. */ window.YEIDA = (function () { const fmtINR = (n) => '₹' + n.toLocaleString('en-IN'); const user = { name: 'Rajeev Malhotra', firstName: 'Rajeev', lastName: 'Malhotra', initials: 'RM', allotment: 'YEA-654321', sector: 'Sector 18', pocket: 'Pocket B', plot: 'B-47', category: 'Residential', size: '300 sq.m', mobile: '+91 98xxxxxx12', email: 'r.malhotra@email.com', memberSince: 'Mar 2019', relationship: 'Self', // Self | Son | Daughter | Spouse | Relative | Authorized Representative isAllottee: true, // true = self registration (Allottee = User) allotteeFirstName: 'Rajeev', // original allottee (may differ from registrant) allotteeLastName: 'Malhotra', registeredAddress: { line1: 'Plot B-47, Pocket B, Sector 18', line2: 'Yamuna Expressway, Gautam Buddh Nagar', city: 'Greater Noida', state: 'Uttar Pradesh', pin: '203201', }, mailingAddress: { line1: 'C-204, Orchid Residency, Sector 50', line2: 'Near City Centre', city: 'Noida', state: 'Uttar Pradesh', pin: '201301', }, }; // Real authority statuses (NOT a generic "Verified") — driven by backend status codes const authorityStatus = { leaseDeed: { code: 'LD_COMPLETED', label: 'Lease Deed Completed', state: 'done', date: '05 Sep 2019' }, atl: { code: 'ATL_PENDING', label: 'ATL Pending', state: 'pending', date: 'Action required' }, verification: { code: 'VERIFIED_AUTH', label: 'Authority Verified', state: 'done', date: '12 Mar 2019' }, possession: { code: 'POSS_GRANTED', label: 'Possession Granted', state: 'done', date: '22 Aug 2019' }, }; // status-code → human label + colour (single source of truth for badges) const STATUS_CODES = { LD_COMPLETED: { label: 'Lease Deed Completed', tone: 'green', icon: 'file' }, LD_PENDING: { label: 'Lease Deed Pending', tone: 'amber', icon: 'file' }, ATL_COMPLETED: { label: 'ATL Completed', tone: 'green', icon: 'checkCircle' }, ATL_PENDING: { label: 'ATL Pending', tone: 'amber', icon: 'clock' }, VERIFICATION_REVIEW: { label: 'Verification Under Review', tone: 'blue', icon: 'clock' }, VERIFIED_AUTH: { label: 'Authority Verified', tone: 'green', icon: 'shield' }, POSS_GRANTED: { label: 'Possession Granted', tone: 'green', icon: 'home' }, }; const property = { allotmentNo: 'YEA-654321', sector: 'Sector 18', plot: 'B-47', block: 'Block B', size: '300 sq.m', category: 'Residential', facing: 'East', road: '12 m road', allottedOn: '14 Mar 2019', possession: '22 Aug 2019', leasePeriod: '90 years', rate: '₹25,750 / sq.m', totalValue: 7725000, paid: 6952500, coords: { col: 3, row: 2 }, }; const dues = [ { id: 'D-2026-Q1', label: 'Annual Lease Rent 2026-27', due: '30 Jun 2026', amount: 38625, status: 'due', type: 'Lease Rent' }, { id: 'D-2026-LP', label: 'Location Premium Instalment 14/16', due: '15 Jul 2026', amount: 96560, status: 'upcoming', type: 'Premium' }, { id: 'D-2026-WC', label: 'Water Connection Charges', due: '10 Jun 2026', amount: 12400, status: 'overdue', type: 'Utility' }, ]; const payments = [ { id: 'TXN-849213', date: '12 Mar 2026', label: 'Location Premium Instalment 13/16', mode: 'Net Banking', amount: 96560, status: 'Success', challan: 'CH-2026-0312-18' }, { id: 'TXN-831077', date: '28 Jan 2026', label: 'Annual Lease Rent 2025-26', mode: 'UPI', amount: 36750, status: 'Success', challan: 'CH-2026-0128-04' }, { id: 'TXN-802461', date: '15 Nov 2025', label: 'Building Plan Scrutiny Fee', mode: 'Debit Card', amount: 8500, status: 'Success', challan: 'CH-2025-1115-77' }, { id: 'TXN-778190', date: '12 Sep 2025', label: 'Location Premium Instalment 12/16', mode: 'Net Banking', amount: 96560, status: 'Success', challan: 'CH-2025-0912-21' }, { id: 'TXN-751002', date: '30 Jun 2025', label: 'Annual Lease Rent 2024-25', mode: 'UPI', amount: 35000, status: 'Success', challan: 'CH-2025-0630-09' }, ]; const constructionSteps = [ { key: 'overview', title: 'Overview', desc: 'Project & eligibility', done: true }, { key: 'required', title: 'Required Documents', desc: 'Checklist', done: true }, { key: 'upload', title: 'Upload Documents', desc: 'Building plans & approvals', done: true }, { key: 'review', title: 'Authority Review', desc: 'YEIDA scrutiny', done: false, active: true }, { key: 'approval', title: 'Approval', desc: 'Sanction letter', done: false }, { key: 'progress', title: 'Progress Tracker', desc: 'On-site milestones', done: false }, ]; const requiredDocs = [ { name: 'Approved Building Plan', note: 'Architect-stamped, 4 sets', status: 'uploaded' }, { name: 'Structural Stability Certificate', note: 'By registered structural engineer', status: 'uploaded' }, { name: 'Architect Registration (COA)', note: 'Valid council certificate', status: 'uploaded' }, { name: 'Soil Test Report', note: 'Geotechnical investigation', status: 'pending' }, { name: 'Indemnity Bond', note: '₹100 stamp paper, notarised', status: 'uploaded' }, { name: 'Possession Certificate Copy', note: 'Self-attested', status: 'uploaded' }, ]; const constructionMilestones = [ { label: 'Foundation & Plinth', pct: 100, status: 'Completed', date: 'Done · Apr 2026' }, { label: 'Ground Floor Structure', pct: 65, status: 'In Progress', date: 'Est. Aug 2026' }, { label: 'First Floor Structure', pct: 0, status: 'Not Started', date: 'Est. Nov 2026' }, { label: 'Finishing & Handover', pct: 0, status: 'Not Started', date: 'Est. Mar 2027' }, ]; const documents = [ { name: 'Allotment Letter', type: 'Allotment', date: '14 Mar 2019', size: '1.2 MB', tag: 'blue' }, { name: 'Possession Letter', type: 'Possession', date: '22 Aug 2019', size: '0.9 MB', tag: 'green' }, { name: 'Lease Deed (Registered)', type: 'Lease Deed', date: '05 Sep 2019', size: '3.4 MB', tag: 'navy' }, { name: 'Building Plan Sanction', type: 'Building Approvals', date: '18 Feb 2026', size: '5.1 MB', tag: 'amber' }, { name: 'Fire NOC', type: 'NOCs', date: '02 Mar 2026', size: '0.6 MB', tag: 'green' }, { name: 'Sector 18 Master Plan', type: 'Master Plans', date: '11 Jan 2024', size: '8.7 MB', tag: 'navy' }, { name: 'Circular: Transfer Policy 2026', type: 'Circulars', date: '20 Apr 2026', size: '0.4 MB', tag: 'blue' }, { name: 'Govt. Order — Lease Rent Revision', type: 'Government Orders', date: '01 Apr 2026', size: '0.3 MB', tag: 'amber' }, ]; const notices = [ { id: 1, title: 'Revised Annual Lease Rent rates effective FY 2026-27', cat: 'Policy Update', date: '01 Jun 2026', pinned: true, body: 'The Authority has revised annual lease rent rates for all residential and institutional allottees with effect from 1 April 2026. Allottees are advised to clear outstanding dues at the revised rate before 30 June 2026 to avoid interest.', attachments: ['GO-LeaseRent-2026.pdf'] }, { id: 2, title: 'Construction guidelines update — setback & FAR norms', cat: 'Construction Guidelines', date: '24 May 2026', pinned: true, body: 'Updated Floor Area Ratio (FAR) and setback norms apply to building plans submitted after 1 May 2026. Refer to the attached circular for sector-wise ground coverage limits.', attachments: ['FAR-Norms-2026.pdf', 'Setback-Chart.pdf'] }, { id: 3, title: 'Water supply augmentation work in Sector 18 & 20', cat: 'Sector Update', date: '18 May 2026', pinned: false, body: 'Scheduled maintenance and pipeline augmentation will be carried out from 25–28 May. Intermittent supply disruption is expected.', attachments: [] }, { id: 4, title: 'Online possession application window now open', cat: 'Announcement', date: '10 May 2026', pinned: false, body: 'Allottees who have completed payment of 100% premium can now apply for possession online through the portal.', attachments: ['Possession-SOP.pdf'] }, { id: 5, title: 'Authority Circular: e-Challan mandatory for all dues', cat: 'Authority Circular', date: '02 May 2026', pinned: false, body: 'With effect from 1 June 2026, all payments must be made via e-Challan generated through the portal. Offline challans will be discontinued.', attachments: [] }, ]; const activity = [ { icon: 'payments', color: 'emerald', title: 'Payment received', desc: 'Location Premium Instalment 13/16 — ₹96,560', time: '12 Mar 2026' }, { icon: 'upload', color: 'blue', title: 'Documents uploaded', desc: 'Building plan & structural certificate', time: '15 Feb 2026' }, { icon: 'construction', color: 'amber', title: 'Construction application submitted', desc: 'Under authority review', time: '16 Feb 2026' }, { icon: 'check', color: 'emerald', title: 'Fire NOC approved', desc: 'Valid till Mar 2031', time: '02 Mar 2026' }, { icon: 'notices', color: 'navy', title: 'New notice published', desc: 'Revised lease rent rates FY 2026-27', time: '01 Jun 2026' }, ]; const sectors = [ { id: '18', name: 'Sector 18', type: 'Residential', plots: 1240, status: 'Developed', mine: true }, { id: '20', name: 'Sector 20', type: 'Residential', plots: 1810, status: 'Developed', mine: false }, { id: '22D', name: 'Sector 22D', type: 'Institutional', plots: 420, status: 'Developing', mine: false }, { id: '24A', name: 'Sector 24A', type: 'Industrial', plots: 690, status: 'Developing', mine: false }, { id: '25', name: 'Sector 25', type: 'Mixed Use', plots: 980, status: 'Developed', mine: false }, { id: '28', name: 'Sector 28', type: 'Residential', plots: 1530, status: 'Planned', mine: false }, { id: '29', name: 'Sector 29', type: 'Commercial', plots: 350, status: 'Planned', mine: false }, ]; const transferFees = [ { label: 'Transfer Charges (2.5% of value)', amount: 193125 }, { label: 'Processing Fee', amount: 5000 }, { label: 'Documentation Charges', amount: 2500 }, { label: 'GST (18% on fees)', amount: 1350 }, ]; const assistantSuggestions = [ 'How do I start construction?', 'What documents are required?', 'Show latest notices', 'How can I transfer my plot?', 'What payments are pending?', 'Show Sector 18 map', ]; const tickets = [ { id: 'TKT-4821', subject: 'Lease deed correction request', status: 'Open', priority: 'High', updated: '2h ago' }, { id: 'TKT-4790', subject: 'Challan not reflecting after UPI payment', status: 'Resolved', priority: 'Medium', updated: '3d ago' }, { id: 'TKT-4755', subject: 'Building plan re-submission query', status: 'In Progress', priority: 'Medium', updated: '5d ago' }, ]; // Official authority deposit/challan records (read-only, from authority backend) — // shown immediately after login to build trust const authorityRecords = [ { id: 'AR-2019-001', date: '14 Mar 2019', head: 'Registration / Earnest Money', challan: 'CH-2019-0314-01', amount: 772500, mode: 'Demand Draft', status: 'Deposited' }, { id: 'AR-2019-014', date: '20 Aug 2019', head: 'Allotment Premium (Lump-sum 25%)', challan: 'CH-2019-0820-14', amount: 1158750, mode: 'RTGS', status: 'Deposited' }, { id: 'AR-2021-077', date: '12 Jul 2021', head: 'Location Premium Instalment 6/16', challan: 'CH-2021-0712-77', amount: 96560, mode: 'Net Banking', status: 'Deposited' }, { id: 'AR-2024-052', date: '30 Jun 2024', head: 'Annual Lease Rent 2023-24', challan: 'CH-2024-0630-52', amount: 33500, mode: 'UPI', status: 'Deposited' }, { id: 'AR-2025-091', date: '12 Sep 2025', head: 'Location Premium Instalment 12/16', challan: 'CH-2025-0912-21', amount: 96560, mode: 'Net Banking', status: 'Deposited' }, ]; // Construction journey state — drives the first-time "what next?" experience const journey = { constructionStarted: true, // toggleable in the demo via the journey screen stage: 'Authority Review', nextAction: 'Upload pending Soil Test Report', progressPct: 41, }; // Architectural sample plans (pre-construction guidance) const samplePlans = [ { id: 'SP-300-E', name: 'Aangan — Courtyard Villa', size: '300 sq.m', facing: 'East', floors: 'G+1', beds: 4, style: 'Contemporary', tour: true, accent: '#1d5fbf' }, { id: 'SP-300-N', name: 'Surya — Sunlit Modern', size: '300 sq.m', facing: 'North', floors: 'G+2', beds: 5, style: 'Modern', tour: true, accent: '#0f9d6b' }, { id: 'SP-200-E', name: 'Nivaas — Compact Smart', size: '200 sq.m', facing: 'East', floors: 'G+1', beds: 3, style: 'Minimal', tour: false, accent: '#c77a08' }, { id: 'SP-450-S', name: 'Vista — Luxury Duplex', size: '450 sq.m', facing: 'South', floors: 'G+2', beds: 6, style: 'Luxury', tour: true, accent: '#103263' }, { id: 'SP-200-W', name: 'Saral — Efficient Living', size: '200 sq.m', facing: 'West', floors: 'G+1', beds: 3, style: 'Contemporary', tour: false, accent: '#7a3fbf' }, { id: 'SP-300-S', name: 'Prakriti — Green Home', size: '300 sq.m', facing: 'South', floors: 'G+1', beds: 4, style: 'Eco / Sustainable', tour: true, accent: '#0a7d56' }, ]; // Construction financials & site (Section B dashboard widgets) const construction = { estimatedCost: 9800000, spent: 4018000, contractor: { name: 'Shreeji Constructions Pvt. Ltd.', status: 'On Site', rating: 4.6, since: 'Feb 2026' }, completionForecast: 'Mar 2027', onSchedule: true, currentMilestone: 'Ground Floor Structure', siteUpdates: [ { title: 'RCC slab casting completed', date: '04 Jun 2026', icon: 'check', color: 'emerald' }, { title: 'Steel reinforcement inspection passed', date: '28 May 2026', icon: 'shield', color: 'blue' }, { title: 'Brickwork — ground floor started', date: '20 May 2026', icon: 'construction', color: 'amber' }, ], }; // Construction-side payments (milestones / invoices / receipts) const constructionPayments = [ { id: 'CINV-014', milestone: 'Ground Floor Structure (40%)', vendor: 'Shreeji Constructions', date: '02 Jun 2026', amount: 1568000, status: 'Paid' }, { id: 'CINV-009', milestone: 'Foundation & Plinth (25%)', vendor: 'Shreeji Constructions', date: '14 Apr 2026', amount: 2450000, status: 'Paid' }, { id: 'CINV-018', milestone: 'First Floor Structure (20%)', vendor: 'Shreeji Constructions', date: 'Due 15 Aug 2026', amount: 1960000, status: 'Upcoming' }, { id: 'CINV-006', milestone: 'Architect & Design Fees', vendor: 'Studio Aangan', date: '10 Feb 2026', amount: 320000, status: 'Paid' }, ]; // Onboarding decision — 7 action cards const onboardingActions = [ { id: 'plot', icon: 'plot', title: 'View My Plot Status', desc: 'Authority records, lease deed & status', route: 'plot', color: 'blue' }, { id: 'paperwork', icon: 'documents', title: 'Complete Authority Paperwork', desc: 'ATL, lease deed & pending formalities', route: 'documents', color: 'navy' }, { id: 'construction', icon: 'construction', title: 'Start Construction', desc: 'Plans, approvals & build tracking', route: 'construction', color: 'amber' }, { id: 'plans', icon: 'grid', title: 'View Sample Plans', desc: 'Architect designs for your plot', route: 'sampleplans', color: 'emerald' }, { id: 'tours', icon: 'eye', title: 'Explore Virtual Tours', desc: '3D walkthroughs of ready designs', route: 'sampleplans', color: 'blue' }, { id: 'sell', icon: 'transfer', title: 'Sell My Plot', desc: 'Eligibility, fees & transfer application', route: 'transfer', color: 'navy' }, { id: 'expert', icon: 'support', title: 'Contact Expert', desc: 'Talk to a YEIDA support officer', route: 'support', color: 'emerald' }, ]; const relationshipOptions = ['Self', 'Son', 'Daughter', 'Spouse', 'Relative', 'Authorized Representative']; // ---- Construction Journey (8-step survey workflow) ---- const journeyGoals = [ { id: 'start', icon: 'construction', title: 'Start construction soon', desc: 'Begin your build journey with plans & approvals' }, { id: 'completion', icon: 'checkCircle', title: 'Obtain a completion certificate', desc: 'Finalise an existing or finished build' }, { id: 'full', icon: 'building', title: 'Complete full construction', desc: 'End-to-end managed construction' }, { id: 'consult', icon: 'support', title: 'Need construction consultation', desc: 'Talk to an expert before deciding' }, { id: 'explore', icon: 'grid', title: 'Explore design options', desc: 'Browse plans & 3D walkthroughs first' }, ]; const journeySteps = [ { key: 'goal', title: 'Goal Selection', desc: 'What you want to achieve', icon: 'flag', summary: 'Start construction soon', done: true }, { key: 'plot', title: 'Plot Verification', desc: 'Confirm your allotment & plot', icon: 'building', summary: 'YEA-654321 · Plot B-47, Sector 18', done: true }, { key: 'design', title: 'Design Selection', desc: 'Choose a house design', icon: 'grid', summary: 'Aangan — Courtyard Villa (G+1)', done: true }, { key: 'planning', title: 'Construction Planning', desc: 'Scope, timeline & permissions', icon: 'calendar', summary: 'G+1 · est. 11 months · plan sanctioned', done: true }, { key: 'budget', title: 'Budget & Payment Setup', desc: 'Cost plan & milestones', icon: 'rupee', summary: '₹98,00,000 budget · 5 milestones', done: false, active: true }, { key: 'contractor', title: 'Contractor Assignment', desc: 'Assign your project team', icon: 'users', summary: 'Pending assignment', done: false }, { key: 'progress', title: 'Construction Progress', desc: 'Track on-site milestones', icon: 'trend', summary: 'Not started', done: false }, { key: 'certificate', title: 'Completion Certificate', desc: 'Final inspection & handover', icon: 'checkCircle', summary: 'Not started', done: false }, ]; const projectTeam = [ { role: 'Project Manager', name: 'Anil Verma', org: 'YEIDA PMC', phone: '+91 98xxxxxx01', avatar: 'AV', online: true }, { role: 'Site Engineer', name: 'Priya Nair', org: 'Shreeji Constructions', phone: '+91 98xxxxxx02', avatar: 'PN', online: true }, { role: 'Architect', name: 'Studio Aangan', org: 'Lead: R. Mehta', phone: '+91 98xxxxxx03', avatar: 'SA', online: false }, { role: 'Construction Team', name: '12-member crew', org: 'Shreeji Constructions', phone: '+91 98xxxxxx04', avatar: 'CT', online: true }, ]; const teamUpdates = [ { who: 'Priya Nair', text: 'RCC slab casting for ground floor completed and cured.', time: '2h ago', avatar: 'PN' }, { who: 'Anil Verma', text: 'First-floor material procurement scheduled for next week.', time: 'Yesterday', avatar: 'AV' }, { who: 'Studio Aangan', text: 'Revised electrical layout shared for approval.', time: '3 days ago', avatar: 'SA' }, ]; // Project Progress Center — visual construction stages const progressStages = [ { name: 'Site Cleaning', pct: 100, date: '02 Mar 2026', note: 'Site cleared & leveled', photos: 4 }, { name: 'Excavation', pct: 100, date: '14 Mar 2026', note: 'Foundation trench dug', photos: 6 }, { name: 'Foundation', pct: 100, date: '04 Apr 2026', note: 'PCC & footing laid', photos: 8 }, { name: 'Boundary Wall', pct: 100, date: '20 Apr 2026', note: 'Perimeter wall complete', photos: 3 }, { name: 'Columns', pct: 100, date: '06 May 2026', note: 'GF columns cast', photos: 5 }, { name: 'Slab Casting', pct: 65, date: 'In progress', note: 'GF roof slab — curing', photos: 7 }, { name: 'Brick Work', pct: 20, date: 'Started', note: 'GF walls begun', photos: 2 }, { name: 'Electrical', pct: 0, date: 'Upcoming', note: '', photos: 0 }, { name: 'Plumbing', pct: 0, date: 'Upcoming', note: '', photos: 0 }, { name: 'Finishing', pct: 0, date: 'Upcoming', note: '', photos: 0 }, { name: 'Completion', pct: 0, date: 'Est. Mar 2027', note: '', photos: 0 }, ]; const countryCodes = [ { code: '+91', label: 'IN', digits: 10 }, { code: '+971', label: 'AE', digits: 9 }, { code: '+1', label: 'US', digits: 10 }, { code: '+44', label: 'UK', digits: 10 }, { code: '+65', label: 'SG', digits: 8 }, ]; return { fmtINR, user, authorityStatus, STATUS_CODES, authorityRecords, journey, samplePlans, relationshipOptions, countryCodes, construction, constructionPayments, onboardingActions, journeyGoals, journeySteps, projectTeam, teamUpdates, progressStages, property, dues, payments, constructionSteps, requiredDocs, constructionMilestones, documents, notices, activity, sectors, transferFees, assistantSuggestions, tickets, }; })();