@burdenoff/microfe-housingvista 2026.925.1 → 2026.928.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/housingvista/hooks/index.d.ts +2 -1
- package/dist/housingvista/hooks/index.d.ts.map +1 -1
- package/dist/housingvista/hooks/index.js.map +1 -1
- package/dist/housingvista/pages/properties/AddPropertyPage.d.ts.map +1 -1
- package/dist/housingvista/pages/properties/AddPropertyPage.js +170 -311
- package/dist/housingvista/pages/properties/AddPropertyPage.js.map +1 -1
- package/dist/housingvista/pages/properties/PropertyDetailPage.d.ts.map +1 -1
- package/dist/housingvista/pages/properties/PropertyDetailPage.js +1231 -721
- package/dist/housingvista/pages/properties/PropertyDetailPage.js.map +1 -1
- package/dist/housingvista/pages/viewings/ViewingsPage.d.ts +6 -4
- package/dist/housingvista/pages/viewings/ViewingsPage.d.ts.map +1 -1
- package/dist/housingvista/pages/viewings/ViewingsPage.js +260 -154
- package/dist/housingvista/pages/viewings/ViewingsPage.js.map +1 -1
- package/dist/housingvista/utils/amenities.d.ts +14 -0
- package/dist/housingvista/utils/amenities.d.ts.map +1 -0
- package/dist/housingvista/utils/amenities.js +48 -0
- package/dist/housingvista/utils/amenities.js.map +1 -0
- package/dist/housingvista/utils/propertyOptions.d.ts +24 -0
- package/dist/housingvista/utils/propertyOptions.d.ts.map +1 -0
- package/dist/housingvista/utils/propertyOptions.js +99 -0
- package/dist/housingvista/utils/propertyOptions.js.map +1 -0
- package/package.json +1 -1
|
@@ -590,7 +590,8 @@ export interface CreatePropertyInput {
|
|
|
590
590
|
price: number;
|
|
591
591
|
currency?: string;
|
|
592
592
|
priceType?: string;
|
|
593
|
-
|
|
593
|
+
/** On update, pass null to clear a stored period; absent/undefined means "no change". */
|
|
594
|
+
pricePeriod?: string | null;
|
|
594
595
|
negotiable?: boolean;
|
|
595
596
|
pricePerSqft?: number;
|
|
596
597
|
bedrooms: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/housingvista/hooks/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/housingvista/hooks/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/housingvista/hooks/index.ts"],"sourcesContent":["/**\n * HousingVista data hooks — real GraphQL against the wspace gateway via Apollo.\n *\n * Every read maps the `housingvista*` query contract to the MFE domain types in\n * `../types`. Every write wraps a `housingvista*` mutation and (where it changes\n * a list the UI shows) refetches the affected query so the cache stays honest.\n * No `any`, no mock data — hooks that have no backing query return an explicit\n * `unsupported` empty-state instead of fabricating rows.\n * @module housingvista\n */\n\nimport { gql } from '@apollo/client';\nimport { useQuery, useMutation, useLazyQuery } from '@apollo/client/react';\nimport type {\n Property,\n Transaction,\n Investment,\n DashboardStats,\n DashboardTrends,\n RecentActivity,\n RentalUnit,\n Asset,\n AMCContract,\n MarketplaceService,\n VerificationItem,\n LegalService,\n HomeLoan,\n MarketTrend,\n AreaInsight,\n AnalyticsChartData,\n AnalyticsPeriod,\n PropertyType,\n PropertyStatus,\n ReraVerificationStatus,\n} from '../types';\n\n// ---------------------------------------------------------------------------\n// Shared input shapes (mirror HousingVista*Input from the subgraph schema)\n// ---------------------------------------------------------------------------\n\nexport type PaginationInput = {\n limit?: number;\n offset?: number;\n};\n\nexport type PropertyGeoBoundsInput = {\n neLat: number;\n neLng: number;\n swLat: number;\n swLng: number;\n};\n\nexport type PropertyGeoCenterInput = {\n latitude: number;\n longitude: number;\n radiusKm: number;\n};\n\nexport type PropertyFilterInput = {\n search?: string;\n status?: PropertyStatus;\n type?: PropertyType;\n city?: string;\n category?: string;\n priceMin?: number;\n priceMax?: number;\n bedroomsMin?: number;\n amenities?: string[];\n reraVerificationStatus?: ReraVerificationStatus;\n bounds?: PropertyGeoBoundsInput;\n center?: PropertyGeoCenterInput;\n};\n\nexport type TransactionFilterInput = {\n search?: string;\n status?: string;\n type?: string;\n propertyId?: string;\n};\n\nexport type InvestmentFilterInput = {\n search?: string;\n status?: string;\n investmentType?: string;\n riskLevel?: string;\n propertyId?: string;\n};\n\nexport type RentalUnitFilterInput = {\n search?: string;\n status?: string;\n paymentStatus?: string;\n propertyId?: string;\n};\n\nexport type AssetFilterInput = {\n search?: string;\n status?: string;\n type?: string;\n category?: string;\n};\n\nexport type AmcContractFilterInput = {\n search?: string;\n status?: string;\n propertyId?: string;\n};\n\nexport type MarketplaceServiceFilterInput = {\n search?: string;\n category?: string;\n verified?: boolean;\n};\n\nexport type LegalServiceFilterInput = {\n search?: string;\n status?: string;\n category?: string;\n};\n\nexport type VerificationItemFilterInput = {\n search?: string;\n status?: string;\n priority?: string;\n entityType?: string;\n};\n\nexport type CreateVerificationItemInput = {\n entityLabel: string;\n entityType: string;\n entityId?: string;\n priority: string;\n notes?: string;\n documentFileIds?: string[];\n};\n\nexport type ViewingFilterInput = {\n search?: string;\n status?: string;\n type?: string;\n propertyId?: string;\n};\n\nexport type OfferFilterInput = {\n status?: string;\n propertyId?: string;\n};\n\nexport type RentalApplicationFilterInput = {\n search?: string;\n status?: string;\n rentalUnitId?: string;\n};\n\nexport type MaintenanceRequestFilterInput = {\n search?: string;\n status?: string;\n priority?: 'low' | 'medium' | 'high';\n category?: string;\n propertyId?: string;\n rentalUnitId?: string;\n};\n\n/** Options accepted by every server-filtered list hook. */\nexport interface ListOptions<TFilter> {\n filter?: TFilter;\n pagination?: PaginationInput;\n}\n\nconst DEFAULT_LIST_PAGINATION: Required<PaginationInput> = { limit: 50, offset: 0 };\n\nconst getPaginationVariables = (pagination: PaginationInput = DEFAULT_LIST_PAGINATION) => ({\n pagination: {\n limit: pagination.limit ?? DEFAULT_LIST_PAGINATION.limit,\n offset: pagination.offset ?? DEFAULT_LIST_PAGINATION.offset,\n },\n});\n\n// ---------------------------------------------------------------------------\n// Query documents\n// ---------------------------------------------------------------------------\n\nconst GET_DASHBOARD_STATS = gql`\n query GetDashboardStats {\n housingvistaDashboardStats {\n totalProperties\n totalValue\n occupancyRate\n monthlyRevenue\n activeTransactions\n pendingVerifications\n totalInvestments\n totalPortfolioValue\n investmentReturns\n totalTenants\n maintenanceRequests\n unreadMessages\n upcomingViewings\n trends {\n totalProperties {\n label\n value\n }\n monthlyRevenue {\n label\n value\n }\n occupancyRate {\n label\n value\n }\n activeTransactions {\n label\n value\n }\n }\n }\n }\n`;\n\nconst PROPERTY_FIELDS = gql`\n fragment PropertyFields on HousingVistaProperty {\n id\n title\n description\n type\n status\n category\n verificationStatus\n reraRegistrationNo\n reraAuthority\n reraApprovalDate\n reraUrl\n reraVerificationStatus\n imageUrl\n createdAt\n updatedAt\n price {\n amount\n currency\n type\n period\n negotiable\n pricePerSqft\n }\n location {\n address\n city\n state\n country\n pincode\n coordinates {\n latitude\n longitude\n }\n neighborhood\n landmarks\n }\n specifications {\n totalArea\n carpetArea\n builtUpArea\n bedrooms\n bathrooms\n floors\n totalFloors\n parking\n balconies\n furnishingStatus\n ageOfProperty\n facing\n }\n amenities {\n id\n name\n category\n available\n }\n images {\n id\n url\n title\n type\n order\n isPrimary\n }\n }\n`;\n\nconst GET_PROPERTIES = gql`\n ${PROPERTY_FIELDS}\n query GetProperties($filter: HousingVistaPropertyFilterInput, $pagination: HousingVistaPaginationInput) {\n housingvistaProperties(filter: $filter, pagination: $pagination) {\n ...PropertyFields\n }\n }\n`;\n\nconst GET_PROPERTY = gql`\n ${PROPERTY_FIELDS}\n query GetProperty($id: ID!) {\n housingvistaProperty(id: $id) {\n ...PropertyFields\n }\n }\n`;\n\nconst TRANSACTION_FIELDS = gql`\n fragment TransactionFields on HousingVistaTransaction {\n id\n title\n type\n status\n amount\n currency\n documents\n milestones\n parties\n escrow\n createdAt\n updatedAt\n property {\n id\n title\n location {\n city\n state\n }\n images {\n id\n url\n isPrimary\n }\n }\n buyer {\n id\n firstName\n lastName\n avatar\n }\n seller {\n id\n firstName\n lastName\n avatar\n }\n tenant {\n id\n firstName\n lastName\n avatar\n }\n landlord {\n id\n firstName\n lastName\n avatar\n }\n }\n`;\n\nconst GET_TRANSACTIONS = gql`\n ${TRANSACTION_FIELDS}\n query GetTransactions($filter: HousingVistaTransactionFilterInput, $pagination: HousingVistaPaginationInput) {\n housingvistaTransactions(filter: $filter, pagination: $pagination) {\n ...TransactionFields\n }\n }\n`;\n\nconst GET_TRANSACTION = gql`\n ${TRANSACTION_FIELDS}\n query GetTransaction($id: ID!) {\n housingvistaTransaction(id: $id) {\n ...TransactionFields\n }\n }\n`;\n\nconst INVESTMENT_FIELDS = gql`\n fragment InvestmentFields on HousingVistaInvestment {\n id\n title\n investmentType\n totalValue\n status\n startDate\n maturityDate\n riskLevel\n investors\n returns\n property {\n id\n title\n location {\n city\n state\n }\n }\n }\n`;\n\nconst GET_INVESTMENTS = gql`\n ${INVESTMENT_FIELDS}\n query GetInvestments($filter: HousingVistaInvestmentFilterInput, $pagination: HousingVistaPaginationInput) {\n housingvistaInvestments(filter: $filter, pagination: $pagination) {\n ...InvestmentFields\n }\n }\n`;\n\nconst GET_INVESTMENT = gql`\n ${INVESTMENT_FIELDS}\n query GetInvestment($id: ID!) {\n housingvistaInvestment(id: $id) {\n ...InvestmentFields\n }\n }\n`;\n\nconst GET_RENTAL_UNITS = gql`\n query GetRentalUnits($filter: HousingVistaRentalUnitFilterInput, $pagination: HousingVistaPaginationInput) {\n housingvistaRentalUnits(filter: $filter, pagination: $pagination) {\n id\n propertyId\n propertyTitle\n unitNumber\n tenantName\n tenantEmail\n tenantPhone\n monthlyRent\n leaseStart\n leaseEnd\n status\n lastPaymentDate\n paymentStatus\n securityDeposit\n }\n }\n`;\n\nconst ASSET_FIELDS = gql`\n fragment AssetFields on HousingVistaAsset {\n id\n title\n type\n category\n location\n currentValue\n purchasePrice\n purchaseDate\n appreciationPercent\n rentalYield\n status\n imageUrl\n lastValuationDate\n }\n`;\n\nconst GET_ASSETS = gql`\n ${ASSET_FIELDS}\n query GetAssets($filter: HousingVistaAssetFilterInput, $pagination: HousingVistaPaginationInput) {\n housingvistaAssets(filter: $filter, pagination: $pagination) {\n ...AssetFields\n }\n }\n`;\n\nconst GET_ASSET = gql`\n ${ASSET_FIELDS}\n query GetAsset($id: ID!) {\n housingvistaAsset(id: $id) {\n ...AssetFields\n }\n }\n`;\n\nconst GET_AMC_CONTRACTS = gql`\n query GetAmcContracts($filter: HousingVistaAmcContractFilterInput, $pagination: HousingVistaPaginationInput) {\n housingvistaAmcContracts(filter: $filter, pagination: $pagination) {\n id\n propertyId\n propertyTitle\n packageName\n providerName\n status\n startDate\n endDate\n monthlyCost\n nextServiceDate\n servicesIncluded\n }\n }\n`;\n\nconst MARKETPLACE_SERVICE_FIELDS = gql`\n fragment MarketplaceServiceFields on HousingVistaMarketplaceService {\n id\n name\n providerName\n category\n description\n rating\n reviewCount\n priceRange\n availableAreas\n responseTime\n verified\n imageUrl\n featured\n }\n`;\n\nconst GET_MARKETPLACE_SERVICES = gql`\n ${MARKETPLACE_SERVICE_FIELDS}\n query GetMarketplaceServices(\n $filter: HousingVistaMarketplaceServiceFilterInput\n $pagination: HousingVistaPaginationInput\n ) {\n housingvistaMarketplaceServices(filter: $filter, pagination: $pagination) {\n ...MarketplaceServiceFields\n }\n }\n`;\n\nconst GET_MARKETPLACE_SERVICE = gql`\n ${MARKETPLACE_SERVICE_FIELDS}\n query GetMarketplaceService($id: ID!) {\n housingvistaMarketplaceService(id: $id) {\n ...MarketplaceServiceFields\n }\n }\n`;\n\nconst VERIFICATION_FIELDS = gql`\n fragment VerificationFields on HousingVistaVerificationItem {\n id\n entityType\n entityId\n entityLabel\n status\n submittedDate\n reviewerName\n priority\n notes\n createdAt\n updatedAt\n }\n`;\n\nconst GET_VERIFICATIONS = gql`\n ${VERIFICATION_FIELDS}\n query GetVerifications($filter: HousingVistaVerificationItemFilterInput, $pagination: HousingVistaPaginationInput) {\n housingvistaVerificationItems(filter: $filter, pagination: $pagination) {\n ...VerificationFields\n }\n }\n`;\n\nconst GET_VERIFICATION = gql`\n ${VERIFICATION_FIELDS}\n query GetVerification($id: ID!) {\n housingvistaVerificationItem(id: $id) {\n ...VerificationFields\n }\n }\n`;\n\nconst LEGAL_SERVICE_FIELDS = gql`\n fragment LegalServiceFields on HousingVistaLegalService {\n id\n title\n category\n description\n providerName\n providerRating\n estimatedDuration\n priceRange\n status\n consultationFee\n documentsRequired\n }\n`;\n\nconst GET_LEGAL_SERVICES = gql`\n ${LEGAL_SERVICE_FIELDS}\n query GetLegalServices($filter: HousingVistaLegalServiceFilterInput, $pagination: HousingVistaPaginationInput) {\n housingvistaLegalServices(filter: $filter, pagination: $pagination) {\n ...LegalServiceFields\n }\n }\n`;\n\nconst GET_LEGAL_SERVICE = gql`\n ${LEGAL_SERVICE_FIELDS}\n query GetLegalService($id: ID!) {\n housingvistaLegalService(id: $id) {\n ...LegalServiceFields\n }\n }\n`;\n\nconst HOME_LOAN_FIELDS = gql`\n fragment HomeLoanFields on HousingVistaHomeLoanOffer {\n id\n bankName\n bankLogo\n interestRate\n maxTenure\n maxAmount\n processingFee\n emiPerLakh\n features\n rating\n specialOffer\n prepaymentCharges\n }\n`;\n\nconst GET_HOME_LOANS = gql`\n ${HOME_LOAN_FIELDS}\n query GetHomeLoans($pagination: HousingVistaPaginationInput) {\n housingvistaHomeLoanOffers(pagination: $pagination) {\n ...HomeLoanFields\n }\n }\n`;\n\nconst GET_HOME_LOAN = gql`\n ${HOME_LOAN_FIELDS}\n query GetHomeLoan($id: ID!) {\n housingvistaHomeLoanOffer(id: $id) {\n ...HomeLoanFields\n }\n }\n`;\n\nconst GET_MARKET_TRENDS = gql`\n query GetMarketTrends($pagination: HousingVistaPaginationInput) {\n housingvistaMarketTrends(pagination: $pagination) {\n month\n avgPrice\n avgRent\n demandIndex\n supplyIndex\n priceChangePercent\n }\n }\n`;\n\nconst GET_AREA_INSIGHTS = gql`\n query GetAreaInsights($pagination: HousingVistaPaginationInput) {\n housingvistaAreaInsights(pagination: $pagination) {\n id\n areaName\n city\n avgPropertyPrice\n avgRentalYield\n appreciationRate\n safetyScore\n connectivityScore\n amenitiesScore\n schoolsNearby\n hospitalsNearby\n population\n greenCoverPercent\n upcomingProjects\n avg2BhkPrice\n avg3BhkPrice\n amenitiesRating\n priceTrend {\n period\n avgPrice\n }\n futureProjects {\n name\n type\n expectedCompletion\n description\n }\n nearbyHubs\n transportLinks\n schools\n hospitals\n malls\n }\n }\n`;\n\nconst GET_ANALYTICS = gql`\n query GetHousingvistaAnalytics($period: HousingVistaAnalyticsPeriod) {\n housingvistaAnalytics(period: $period) {\n kpis {\n id\n label\n value\n previousValue\n unit\n trend\n changePercent\n }\n revenueByMonth {\n month\n revenue\n expenses\n }\n propertyTypeDistribution {\n type\n count\n value\n }\n occupancyRate {\n month\n rate\n }\n period\n }\n }\n`;\n\nconst SHORTLIST_FIELDS = gql`\n ${PROPERTY_FIELDS}\n fragment ShortlistFields on HousingVistaShortlist {\n id\n propertyId\n notes\n createdAt\n property {\n ...PropertyFields\n }\n }\n`;\n\nconst GET_SHORTLISTS = gql`\n ${SHORTLIST_FIELDS}\n query GetShortlists($pagination: HousingVistaPaginationInput) {\n housingvistaShortlists(pagination: $pagination) {\n ...ShortlistFields\n }\n }\n`;\n\nconst OFFER_FIELDS = gql`\n fragment OfferFields on HousingVistaOffer {\n id\n propertyId\n amount\n counterAmount\n currency\n status\n notes\n respondedAt\n createdAt\n updatedAt\n property {\n id\n title\n location {\n city\n state\n }\n images {\n id\n url\n isPrimary\n }\n price {\n amount\n currency\n }\n }\n }\n`;\n\nconst GET_OFFERS = gql`\n ${OFFER_FIELDS}\n query GetOffers($filter: HousingVistaOfferFilterInput, $pagination: HousingVistaPaginationInput) {\n housingvistaOffers(filter: $filter, pagination: $pagination) {\n ...OfferFields\n }\n }\n`;\n\nconst GET_OFFER = gql`\n ${OFFER_FIELDS}\n query GetOffer($id: ID!) {\n housingvistaOffer(id: $id) {\n ...OfferFields\n }\n }\n`;\n\nconst VIEWING_FIELDS = gql`\n fragment ViewingFields on HousingVistaViewing {\n id\n propertyId\n scheduledAt\n type\n status\n attendeeName\n attendeeEmail\n notes\n createdAt\n updatedAt\n property {\n id\n title\n location {\n city\n state\n }\n images {\n id\n url\n isPrimary\n }\n }\n }\n`;\n\nconst GET_VIEWINGS = gql`\n ${VIEWING_FIELDS}\n query GetViewings($filter: HousingVistaViewingFilterInput, $pagination: HousingVistaPaginationInput) {\n housingvistaViewings(filter: $filter, pagination: $pagination) {\n ...ViewingFields\n }\n }\n`;\n\nconst GET_VIEWING = gql`\n ${VIEWING_FIELDS}\n query GetViewing($id: ID!) {\n housingvistaViewing(id: $id) {\n ...ViewingFields\n }\n }\n`;\n\nconst RENTAL_APPLICATION_FIELDS = gql`\n fragment RentalApplicationFields on HousingVistaRentalApplication {\n id\n rentalUnitId\n applicantName\n applicantEmail\n applicantPhone\n monthlyIncome\n moveInDate\n status\n reviewNotes\n reviewedAt\n createdAt\n updatedAt\n rentalUnit {\n id\n unitNumber\n propertyTitle\n monthlyRent\n }\n }\n`;\n\nconst GET_RENTAL_APPLICATIONS = gql`\n ${RENTAL_APPLICATION_FIELDS}\n query GetRentalApplications(\n $filter: HousingVistaRentalApplicationFilterInput\n $pagination: HousingVistaPaginationInput\n ) {\n housingvistaRentalApplications(filter: $filter, pagination: $pagination) {\n ...RentalApplicationFields\n }\n }\n`;\n\nconst MAINTENANCE_FIELDS = gql`\n fragment MaintenanceFields on HousingVistaMaintenanceRequest {\n id\n propertyId\n rentalUnitId\n title\n description\n category\n priority\n status\n resolutionNotes\n resolvedAt\n createdAt\n updatedAt\n }\n`;\n\nconst GET_MAINTENANCE_REQUESTS = gql`\n ${MAINTENANCE_FIELDS}\n query GetMaintenanceRequests(\n $filter: HousingVistaMaintenanceRequestFilterInput\n $pagination: HousingVistaPaginationInput\n ) {\n housingvistaMaintenanceRequests(filter: $filter, pagination: $pagination) {\n ...MaintenanceFields\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Mutation documents\n// ---------------------------------------------------------------------------\n\nconst CREATE_PROPERTY = gql`\n ${PROPERTY_FIELDS}\n mutation CreateHousingvistaProperty($input: HousingVistaCreatePropertyInput!) {\n createHousingvistaProperty(input: $input) {\n ...PropertyFields\n }\n }\n`;\n\nconst UPDATE_PROPERTY = gql`\n ${PROPERTY_FIELDS}\n mutation UpdateHousingvistaProperty($id: ID!, $input: HousingVistaUpdatePropertyInput!) {\n updateHousingvistaProperty(id: $id, input: $input) {\n ...PropertyFields\n }\n }\n`;\n\nconst DELETE_PROPERTY = gql`\n mutation DeleteHousingvistaProperty($id: ID!) {\n deleteHousingvistaProperty(id: $id)\n }\n`;\n\nconst SAVE_SHORTLIST = gql`\n ${SHORTLIST_FIELDS}\n mutation SaveHousingvistaShortlist($input: HousingVistaSaveShortlistInput!) {\n saveHousingvistaShortlist(input: $input) {\n ...ShortlistFields\n }\n }\n`;\n\nconst REMOVE_SHORTLIST = gql`\n mutation RemoveHousingvistaShortlist($propertyId: ID!) {\n removeHousingvistaShortlist(propertyId: $propertyId)\n }\n`;\n\nconst BOOK_VIEWING = gql`\n mutation BookHousingvistaViewing($input: HousingVistaBookViewingInput!) {\n bookHousingvistaViewing(input: $input) {\n id\n propertyId\n scheduledAt\n type\n status\n attendeeName\n attendeeEmail\n notes\n }\n }\n`;\n\nconst CANCEL_VIEWING = gql`\n mutation CancelHousingvistaViewing($id: ID!) {\n cancelHousingvistaViewing(id: $id) {\n id\n status\n }\n }\n`;\n\nconst SUBMIT_OFFER = gql`\n mutation SubmitHousingvistaOffer($input: HousingVistaSubmitOfferInput!) {\n submitHousingvistaOffer(input: $input) {\n id\n propertyId\n amount\n currency\n status\n notes\n createdAt\n }\n }\n`;\n\nconst RESPOND_OFFER = gql`\n mutation RespondHousingvistaOffer($id: ID!, $input: HousingVistaRespondOfferInput!) {\n respondHousingvistaOffer(id: $id, input: $input) {\n id\n status\n counterAmount\n respondedAt\n }\n }\n`;\n\nconst CREATE_TRANSACTION = gql`\n ${TRANSACTION_FIELDS}\n mutation CreateHousingvistaTransaction($input: HousingVistaCreateTransactionInput!) {\n createHousingvistaTransaction(input: $input) {\n ...TransactionFields\n }\n }\n`;\n\nconst CREATE_INVESTMENT = gql`\n ${INVESTMENT_FIELDS}\n mutation CreateHousingvistaInvestment($input: HousingVistaCreateInvestmentInput!) {\n createHousingvistaInvestment(input: $input) {\n ...InvestmentFields\n }\n }\n`;\n\nconst CREATE_RENTAL_UNIT = gql`\n mutation CreateHousingvistaRentalUnit($input: HousingVistaCreateRentalUnitInput!) {\n createHousingvistaRentalUnit(input: $input) {\n id\n propertyTitle\n unitNumber\n tenantName\n monthlyRent\n status\n }\n }\n`;\n\nconst SUBMIT_RENTAL_APPLICATION = gql`\n mutation SubmitHousingvistaRentalApplication($input: HousingVistaSubmitRentalApplicationInput!) {\n submitHousingvistaRentalApplication(input: $input) {\n id\n rentalUnitId\n applicantName\n status\n }\n }\n`;\n\nconst CREATE_AMC_CONTRACT = gql`\n mutation CreateHousingvistaAmcContract($input: HousingVistaCreateAmcContractInput!) {\n createHousingvistaAmcContract(input: $input) {\n id\n propertyTitle\n packageName\n providerName\n monthlyCost\n status\n }\n }\n`;\n\nconst CREATE_MAINTENANCE_REQUEST = gql`\n mutation CreateHousingvistaMaintenanceRequest($input: HousingVistaCreateMaintenanceRequestInput!) {\n createHousingvistaMaintenanceRequest(input: $input) {\n id\n title\n category\n priority\n status\n }\n }\n`;\n\nconst CREATE_VERIFICATION_ITEM = gql`\n mutation CreateHousingvistaVerificationItem($input: HousingVistaCreateVerificationItemInput!) {\n createHousingvistaVerificationItem(input: $input) {\n id\n status\n entityLabel\n }\n }\n`;\n\nconst APPROVE_VERIFICATION = gql`\n mutation ApproveHousingvistaVerificationItem($id: ID!, $notes: String) {\n approveHousingvistaVerificationItem(id: $id, notes: $notes) {\n id\n status\n reviewerName\n notes\n }\n }\n`;\n\nconst REJECT_VERIFICATION = gql`\n mutation RejectHousingvistaVerificationItem($id: ID!, $notes: String) {\n rejectHousingvistaVerificationItem(id: $id, notes: $notes) {\n id\n status\n reviewerName\n notes\n }\n }\n`;\n\nconst UPDATE_PROPERTY_RERA_STATUS = gql`\n mutation UpdateHousingvistaPropertyReraStatus(\n $id: ID!\n $status: HousingVistaReraVerificationStatus!\n $notes: String\n ) {\n updateHousingvistaPropertyReraStatus(id: $id, status: $status, notes: $notes) {\n id\n reraVerificationStatus\n reraApprovalDate\n }\n }\n`;\n\nconst WITHDRAW_OFFER = gql`\n mutation WithdrawHousingvistaOffer($id: ID!) {\n withdrawHousingvistaOffer(id: $id) {\n id\n status\n }\n }\n`;\n\nconst UPDATE_VIEWING = gql`\n mutation UpdateHousingvistaViewing($id: ID!, $input: HousingVistaUpdateViewingInput!) {\n updateHousingvistaViewing(id: $id, input: $input) {\n id\n scheduledAt\n status\n type\n notes\n }\n }\n`;\n\nconst UPDATE_INVESTMENT = gql`\n ${INVESTMENT_FIELDS}\n mutation UpdateHousingvistaInvestment($id: ID!, $input: HousingVistaUpdateInvestmentInput!) {\n updateHousingvistaInvestment(id: $id, input: $input) {\n ...InvestmentFields\n }\n }\n`;\n\nconst DELETE_INVESTMENT = gql`\n mutation DeleteHousingvistaInvestment($id: ID!) {\n deleteHousingvistaInvestment(id: $id)\n }\n`;\n\nconst CREATE_ASSET = gql`\n ${ASSET_FIELDS}\n mutation CreateHousingvistaAsset($input: HousingVistaCreateAssetInput!) {\n createHousingvistaAsset(input: $input) {\n ...AssetFields\n }\n }\n`;\n\nconst UPDATE_ASSET = gql`\n ${ASSET_FIELDS}\n mutation UpdateHousingvistaAsset($id: ID!, $input: HousingVistaUpdateAssetInput!) {\n updateHousingvistaAsset(id: $id, input: $input) {\n ...AssetFields\n }\n }\n`;\n\nconst DELETE_ASSET = gql`\n mutation DeleteHousingvistaAsset($id: ID!) {\n deleteHousingvistaAsset(id: $id)\n }\n`;\n\nconst UPDATE_AMC_CONTRACT = gql`\n mutation UpdateHousingvistaAmcContract($id: ID!, $input: HousingVistaUpdateAmcContractInput!) {\n updateHousingvistaAmcContract(id: $id, input: $input) {\n id\n status\n packageName\n providerName\n monthlyCost\n }\n }\n`;\n\nconst DELETE_AMC_CONTRACT = gql`\n mutation DeleteHousingvistaAmcContract($id: ID!) {\n deleteHousingvistaAmcContract(id: $id)\n }\n`;\n\nconst UPDATE_TRANSACTION = gql`\n ${TRANSACTION_FIELDS}\n mutation UpdateHousingvistaTransaction($id: ID!, $input: HousingVistaUpdateTransactionInput!) {\n updateHousingvistaTransaction(id: $id, input: $input) {\n ...TransactionFields\n }\n }\n`;\n\nconst DELETE_TRANSACTION = gql`\n mutation DeleteHousingvistaTransaction($id: ID!) {\n deleteHousingvistaTransaction(id: $id)\n }\n`;\n\nconst RESOLVE_MAINTENANCE = gql`\n ${MAINTENANCE_FIELDS}\n mutation ResolveHousingvistaMaintenanceRequest($id: ID!, $resolutionNotes: String) {\n resolveHousingvistaMaintenanceRequest(id: $id, resolutionNotes: $resolutionNotes) {\n ...MaintenanceFields\n }\n }\n`;\n\nconst REVIEW_RENTAL_APPLICATION = gql`\n ${RENTAL_APPLICATION_FIELDS}\n mutation ReviewHousingvistaRentalApplication($id: ID!, $input: HousingVistaReviewRentalApplicationInput!) {\n reviewHousingvistaRentalApplication(id: $id, input: $input) {\n ...RentalApplicationFields\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Query-result row shapes (as selected above)\n// ---------------------------------------------------------------------------\n\ninterface PropertyRow {\n id: string;\n title: string;\n description: string | null;\n type: Property['type'];\n status: Property['status'];\n category: string;\n verificationStatus: string;\n reraRegistrationNo: string | null;\n reraAuthority: string | null;\n reraApprovalDate: string | null;\n reraUrl: string | null;\n reraVerificationStatus: ReraVerificationStatus;\n imageUrl: string | null;\n createdAt: string;\n updatedAt: string;\n price: Property['price'];\n location: Omit<Property['location'], 'coordinates'> & {\n coordinates: { latitude: number; longitude: number } | null;\n };\n specifications: Property['specifications'];\n amenities: Property['amenities'];\n images: Property['images'];\n}\n\ninterface TransactionRow {\n id: string;\n title: string;\n type: string;\n status: string;\n amount: number;\n currency: string;\n documents: unknown;\n milestones: unknown;\n parties: unknown;\n escrow: unknown;\n createdAt: string;\n updatedAt: string;\n property: PropertyRow | null;\n buyer: TxParty | null;\n seller: TxParty | null;\n tenant: TxParty | null;\n landlord: TxParty | null;\n}\n\ninterface TxParty {\n id: string | null;\n firstName: string | null;\n lastName: string | null;\n avatar: string | null;\n}\n\ninterface InvestmentRow {\n id: string;\n title: string;\n investmentType: string;\n totalValue: number;\n status: string;\n startDate: string;\n maturityDate: string | null;\n riskLevel: string;\n investors: unknown;\n returns: unknown;\n property: PropertyRow | null;\n}\n\ninterface ShortlistRow {\n id: string;\n propertyId: string;\n notes: string | null;\n createdAt: string;\n property: PropertyRow;\n}\n\n// ---------------------------------------------------------------------------\n// Mappers: GraphQL row → MFE domain type\n// ---------------------------------------------------------------------------\n\n/**\n * The domain `Property` carries display-only fields the subgraph does not\n * resolve (owner/documents/features/virtualTours/availability). We fill the\n * present fields from the query and default the rest to empty so consumers can\n * render honest empty-states rather than crashing on `undefined`.\n */\nconst mapProperty = (row: PropertyRow): Property => ({\n id: row.id,\n title: row.title,\n description: row.description ?? '',\n type: row.type,\n status: row.status,\n category: row.category as Property['category'],\n price: row.price,\n location: {\n ...row.location,\n coordinates: row.location.coordinates ?? { latitude: 0, longitude: 0 },\n },\n specifications: row.specifications,\n amenities: row.amenities ?? [],\n images: row.images ?? [],\n documents: [],\n virtualTours: [],\n owner: { id: '', name: '', email: '', phone: '', verified: false },\n features: [],\n verificationStatus: (row.verificationStatus as Property['verificationStatus']) ?? 'pending',\n availability: { available: true },\n createdAt: new Date(row.createdAt),\n updatedAt: new Date(row.updatedAt),\n reraRegistrationNo: row.reraRegistrationNo,\n reraAuthority: row.reraAuthority,\n reraApprovalDate: row.reraApprovalDate ? new Date(row.reraApprovalDate) : null,\n reraUrl: row.reraUrl,\n reraVerificationStatus: row.reraVerificationStatus ?? 'not_applicable',\n});\n\n// ---------------------------------------------------------------------------\n// Query hooks\n// ---------------------------------------------------------------------------\n\nconst emptyTrends: DashboardTrends = {\n totalProperties: [],\n monthlyRevenue: [],\n occupancyRate: [],\n activeTransactions: [],\n};\n\nexport const useDashboardStats = () => {\n const { data, loading, error } = useQuery<{ housingvistaDashboardStats: DashboardStats }>(GET_DASHBOARD_STATS);\n const empty: DashboardStats = {\n totalProperties: 0,\n totalValue: 0,\n occupancyRate: 0,\n monthlyRevenue: 0,\n activeTransactions: 0,\n pendingVerifications: 0,\n totalInvestments: 0,\n investmentReturns: 0,\n totalTenants: 0,\n maintenanceRequests: 0,\n unreadMessages: 0,\n upcomingViewings: 0,\n trends: emptyTrends,\n };\n return { data: data?.housingvistaDashboardStats ?? empty, loading, error };\n};\n\nexport const useRecentActivities = (pagination?: PaginationInput) => {\n const { data, loading, error } = useQuery<{ housingvistaTransactions: TransactionRow[] }>(GET_TRANSACTIONS, {\n variables: getPaginationVariables(pagination),\n });\n const activities: RecentActivity[] = (data?.housingvistaTransactions ?? []).map((txn) => ({\n id: `act-${txn.id}`,\n type: 'transaction_update',\n title: `Transaction: ${txn.type}`,\n description: `${txn.property?.title ?? 'Property'} - ${txn.status}`,\n timestamp: txn.updatedAt || txn.createdAt,\n entityId: txn.id,\n entityType: 'transaction',\n actorName: txn.buyer\n ? `${txn.buyer.firstName ?? ''} ${txn.buyer.lastName ?? ''}`.trim()\n : txn.tenant\n ? `${txn.tenant.firstName ?? ''} ${txn.tenant.lastName ?? ''}`.trim()\n : 'System',\n actorAvatar: txn.buyer?.avatar ?? txn.tenant?.avatar ?? undefined,\n }));\n return { data: activities, loading, error };\n};\n\nexport const useProperties = (options?: {\n filter?: PropertyFilterInput;\n pagination?: PaginationInput;\n skip?: boolean;\n}) => {\n const { data, loading, error, refetch } = useQuery<{ housingvistaProperties: PropertyRow[] }>(GET_PROPERTIES, {\n variables: {\n filter: options?.filter,\n ...getPaginationVariables(options?.pagination),\n },\n skip: options?.skip,\n });\n return {\n data: (data?.housingvistaProperties ?? []).map(mapProperty),\n loading,\n error,\n refetch,\n };\n};\n\nexport const useProperty = (id: string | undefined) => {\n const { data, loading, error } = useQuery<{ housingvistaProperty: PropertyRow | null }>(GET_PROPERTY, {\n variables: { id: id ?? '' },\n skip: !id,\n });\n return {\n data: data?.housingvistaProperty ? mapProperty(data.housingvistaProperty) : null,\n loading,\n error,\n };\n};\n\n// BOFF-4129 — natural-language property search. `method` tells the caller\n// whether the filter shown was extracted by an LLM ('ai') or the\n// deterministic keyword baseline ('keyword'); `fallbackReason` is set when\n// an AI attempt was made and failed. `results` are always a real\n// `listProperties` query result — never LLM-generated listing data.\nexport interface NlSearchFilter {\n city?: string | null;\n type?: PropertyType | null;\n status?: PropertyStatus | null;\n category?: string | null;\n priceMin?: number | null;\n priceMax?: number | null;\n bedroomsMin?: number | null;\n amenities?: string[] | null;\n reraVerificationStatus?: string | null;\n}\n\ninterface NlSearchResultRow {\n query: string;\n method: 'ai' | 'keyword';\n fallbackReason: string | null;\n filter: NlSearchFilter;\n properties: PropertyRow[];\n}\n\nconst NL_SEARCH_PROPERTIES = gql`\n ${PROPERTY_FIELDS}\n query HousingVistaNaturalLanguageSearch($query: String!, $pagination: HousingVistaPaginationInput) {\n housingvistaNaturalLanguageSearch(query: $query, pagination: $pagination) {\n query\n method\n fallbackReason\n filter {\n city\n type\n status\n category\n priceMin\n priceMax\n bedroomsMin\n amenities\n reraVerificationStatus\n }\n properties {\n ...PropertyFields\n }\n }\n }\n`;\n\nexport const useNaturalLanguageSearch = () => {\n const [run, { data, loading, error }] = useLazyQuery<\n { housingvistaNaturalLanguageSearch: NlSearchResultRow },\n { query: string; pagination?: PaginationInput }\n >(NL_SEARCH_PROPERTIES);\n\n const search = (query: string, pagination?: PaginationInput) => run({ variables: { query, pagination } });\n\n const result = data?.housingvistaNaturalLanguageSearch;\n return {\n search,\n loading,\n error,\n method: result?.method ?? null,\n fallbackReason: result?.fallbackReason ?? null,\n filter: result?.filter ?? null,\n properties: (result?.properties ?? []).map(mapProperty),\n };\n};\n\nexport const useTransactions = (options?: ListOptions<TransactionFilterInput>) => {\n const { data, loading, error, refetch } = useQuery<{ housingvistaTransactions: TransactionRow[] }>(GET_TRANSACTIONS, {\n variables: { filter: options?.filter, ...getPaginationVariables(options?.pagination) },\n });\n // Transaction JSON columns (documents/milestones/parties/escrow) are opaque to\n // the schema; the page guards their runtime shape. Cast is localized here.\n return { data: (data?.housingvistaTransactions ?? []) as unknown as Transaction[], loading, error, refetch };\n};\n\nexport const useTransaction = (id: string | undefined) => {\n const { data, loading, error } = useQuery<{ housingvistaTransaction: TransactionRow | null }>(GET_TRANSACTION, {\n variables: { id: id ?? '' },\n skip: !id,\n });\n return {\n data: (data?.housingvistaTransaction ?? null) as unknown as Transaction | null,\n loading,\n error,\n };\n};\n\nexport const useInvestments = (options?: ListOptions<InvestmentFilterInput>) => {\n const { data, loading, error, refetch } = useQuery<{ housingvistaInvestments: InvestmentRow[] }>(GET_INVESTMENTS, {\n variables: { filter: options?.filter, ...getPaginationVariables(options?.pagination) },\n });\n return { data: (data?.housingvistaInvestments ?? []) as unknown as Investment[], loading, error, refetch };\n};\n\nexport const useInvestment = (id: string | undefined) => {\n const { data, loading, error } = useQuery<{ housingvistaInvestment: InvestmentRow | null }>(GET_INVESTMENT, {\n variables: { id: id ?? '' },\n skip: !id,\n });\n return { data: (data?.housingvistaInvestment ?? null) as unknown as Investment | null, loading, error };\n};\n\nexport const useRentalUnits = (options?: ListOptions<RentalUnitFilterInput>) => {\n const { data, loading, error, refetch } = useQuery<{ housingvistaRentalUnits: RentalUnit[] }>(GET_RENTAL_UNITS, {\n variables: { filter: options?.filter, ...getPaginationVariables(options?.pagination) },\n });\n return { data: data?.housingvistaRentalUnits ?? [], loading, error, refetch };\n};\n\nexport const useAssets = (options?: ListOptions<AssetFilterInput>) => {\n const { data, loading, error, refetch } = useQuery<{ housingvistaAssets: Asset[] }>(GET_ASSETS, {\n variables: { filter: options?.filter, ...getPaginationVariables(options?.pagination) },\n });\n return { data: data?.housingvistaAssets ?? [], loading, error, refetch };\n};\n\nexport const useAsset = (id: string | undefined) => {\n const { data, loading, error } = useQuery<{ housingvistaAsset: Asset | null }>(GET_ASSET, {\n variables: { id: id ?? '' },\n skip: !id,\n });\n return { data: data?.housingvistaAsset ?? null, loading, error };\n};\n\nexport const useAMCContracts = (options?: ListOptions<AmcContractFilterInput>) => {\n const { data, loading, error, refetch } = useQuery<{ housingvistaAmcContracts: AMCContract[] }>(GET_AMC_CONTRACTS, {\n variables: { filter: options?.filter, ...getPaginationVariables(options?.pagination) },\n });\n return { data: data?.housingvistaAmcContracts ?? [], loading, error, refetch };\n};\n\nexport const useMarketplaceServices = (options?: ListOptions<MarketplaceServiceFilterInput>) => {\n const { data, loading, error, refetch } = useQuery<{ housingvistaMarketplaceServices: MarketplaceService[] }>(\n GET_MARKETPLACE_SERVICES,\n { variables: { filter: options?.filter, ...getPaginationVariables(options?.pagination) } }\n );\n return { data: data?.housingvistaMarketplaceServices ?? [], loading, error, refetch };\n};\n\nexport const useMarketplaceService = (id: string | undefined) => {\n const { data, loading, error } = useQuery<{ housingvistaMarketplaceService: MarketplaceService | null }>(\n GET_MARKETPLACE_SERVICE,\n { variables: { id: id ?? '' }, skip: !id }\n );\n return { data: data?.housingvistaMarketplaceService ?? null, loading, error };\n};\n\nexport const useVerifications = (options?: ListOptions<VerificationItemFilterInput>) => {\n const { data, loading, error, refetch } = useQuery<{ housingvistaVerificationItems: VerificationItem[] }>(\n GET_VERIFICATIONS,\n { variables: { filter: options?.filter, ...getPaginationVariables(options?.pagination) } }\n );\n return { data: data?.housingvistaVerificationItems ?? [], loading, error, refetch };\n};\n\n/**\n * Single verification item. The detail view needs the audit timestamps\n * (`createdAt`/`updatedAt`) that the list type omits, so the result is typed as\n * `VerificationItem` extended with those ISO-string fields.\n */\nexport type VerificationItemDetail = VerificationItem & {\n createdAt: string;\n updatedAt: string;\n};\n\nexport const useVerificationItem = (id: string | undefined) => {\n const { data, loading, error, refetch } = useQuery<{ housingvistaVerificationItem: VerificationItemDetail | null }>(\n GET_VERIFICATION,\n { variables: { id: id ?? '' }, skip: !id }\n );\n return { data: data?.housingvistaVerificationItem ?? null, loading, error, refetch };\n};\n\nexport const useLegalServices = (options?: ListOptions<LegalServiceFilterInput>) => {\n const { data, loading, error, refetch } = useQuery<{ housingvistaLegalServices: LegalService[] }>(\n GET_LEGAL_SERVICES,\n { variables: { filter: options?.filter, ...getPaginationVariables(options?.pagination) } }\n );\n return { data: data?.housingvistaLegalServices ?? [], loading, error, refetch };\n};\n\nexport const useLegalService = (id: string | undefined) => {\n const { data, loading, error } = useQuery<{ housingvistaLegalService: LegalService | null }>(GET_LEGAL_SERVICE, {\n variables: { id: id ?? '' },\n skip: !id,\n });\n return { data: data?.housingvistaLegalService ?? null, loading, error };\n};\n\nexport const useHomeLoans = (pagination?: PaginationInput) => {\n const { data, loading, error } = useQuery<{ housingvistaHomeLoanOffers: HomeLoan[] }>(GET_HOME_LOANS, {\n variables: getPaginationVariables(pagination),\n });\n return { data: data?.housingvistaHomeLoanOffers ?? [], loading, error };\n};\n\nexport const useHomeLoanOffer = (id: string | undefined) => {\n const { data, loading, error } = useQuery<{ housingvistaHomeLoanOffer: HomeLoan | null }>(GET_HOME_LOAN, {\n variables: { id: id ?? '' },\n skip: !id,\n });\n return { data: data?.housingvistaHomeLoanOffer ?? null, loading, error };\n};\n\nexport const useMarketTrends = (pagination?: PaginationInput) => {\n const { data, loading, error } = useQuery<{ housingvistaMarketTrends: MarketTrend[] }>(GET_MARKET_TRENDS, {\n variables: getPaginationVariables(pagination),\n });\n return { data: data?.housingvistaMarketTrends ?? [], loading, error };\n};\n\nexport const useAreaInsights = (pagination?: PaginationInput) => {\n const { data, loading, error } = useQuery<{ housingvistaAreaInsights: AreaInsight[] }>(GET_AREA_INSIGHTS, {\n variables: getPaginationVariables(pagination),\n });\n return { data: data?.housingvistaAreaInsights ?? [], loading, error };\n};\n\nexport const useShortlists = (pagination?: PaginationInput) => {\n const { data, loading, error, refetch } = useQuery<{ housingvistaShortlists: ShortlistRow[] }>(GET_SHORTLISTS, {\n variables: getPaginationVariables(pagination),\n });\n const shortlists = (data?.housingvistaShortlists ?? []).map((row) => ({\n id: row.id,\n propertyId: row.propertyId,\n notes: row.notes ?? undefined,\n createdAt: row.createdAt,\n property: mapProperty(row.property),\n }));\n return { data: shortlists, loading, error, refetch };\n};\n\nexport const useAnalyticsData = (period: AnalyticsPeriod = 'month') => {\n const { data, loading, error } = useQuery<{ housingvistaAnalytics: AnalyticsChartData }>(GET_ANALYTICS, {\n variables: { period },\n });\n return { data: data?.housingvistaAnalytics ?? null, loading, error };\n};\n\n// ---------------------------------------------------------------------------\n// Offers / Viewings / Rental applications / Maintenance — query hooks\n// ---------------------------------------------------------------------------\n\nexport interface OfferRow {\n id: string;\n propertyId: string;\n amount: number;\n counterAmount: number | null;\n currency: string;\n status: 'submitted' | 'countered' | 'accepted' | 'rejected' | 'withdrawn';\n notes: string | null;\n respondedAt: string | null;\n createdAt: string;\n updatedAt: string;\n property: {\n id: string;\n title: string;\n location: { city: string; state: string };\n images: { id: string; url: string; isPrimary: boolean }[];\n price: { amount: number; currency: string };\n } | null;\n}\n\nexport const useOffers = (options?: ListOptions<OfferFilterInput>) => {\n const { data, loading, error, refetch } = useQuery<{ housingvistaOffers: OfferRow[] }>(GET_OFFERS, {\n variables: { filter: options?.filter, ...getPaginationVariables(options?.pagination) },\n });\n return { data: data?.housingvistaOffers ?? [], loading, error, refetch };\n};\n\nexport const useOffer = (id: string | undefined) => {\n const { data, loading, error, refetch } = useQuery<{ housingvistaOffer: OfferRow | null }>(GET_OFFER, {\n variables: { id: id ?? '' },\n skip: !id,\n });\n return { data: data?.housingvistaOffer ?? null, loading, error, refetch };\n};\n\nexport interface ViewingRow {\n id: string;\n propertyId: string;\n scheduledAt: string;\n type: 'in_person' | 'virtual';\n status: 'requested' | 'confirmed' | 'completed' | 'cancelled';\n attendeeName: string | null;\n attendeeEmail: string | null;\n notes: string | null;\n createdAt: string;\n updatedAt: string;\n property: {\n id: string;\n title: string;\n location: { city: string; state: string };\n images: { id: string; url: string; isPrimary: boolean }[];\n } | null;\n}\n\nexport const useViewings = (options?: ListOptions<ViewingFilterInput>) => {\n const { data, loading, error, refetch } = useQuery<{ housingvistaViewings: ViewingRow[] }>(GET_VIEWINGS, {\n variables: { filter: options?.filter, ...getPaginationVariables(options?.pagination) },\n });\n return { data: data?.housingvistaViewings ?? [], loading, error, refetch };\n};\n\nexport const useViewing = (id: string | undefined) => {\n const { data, loading, error, refetch } = useQuery<{ housingvistaViewing: ViewingRow | null }>(GET_VIEWING, {\n variables: { id: id ?? '' },\n skip: !id,\n });\n return { data: data?.housingvistaViewing ?? null, loading, error, refetch };\n};\n\nexport interface RentalApplicationRow {\n id: string;\n rentalUnitId: string;\n applicantName: string;\n applicantEmail: string;\n applicantPhone: string | null;\n monthlyIncome: number | null;\n moveInDate: string | null;\n status: 'submitted' | 'screening' | 'approved' | 'rejected';\n reviewNotes: string | null;\n reviewedAt: string | null;\n createdAt: string;\n updatedAt: string;\n rentalUnit: {\n id: string;\n unitNumber: string;\n propertyTitle: string;\n monthlyRent: number;\n } | null;\n}\n\nexport const useRentalApplications = (options?: ListOptions<RentalApplicationFilterInput>) => {\n const { data, loading, error, refetch } = useQuery<{ housingvistaRentalApplications: RentalApplicationRow[] }>(\n GET_RENTAL_APPLICATIONS,\n { variables: { filter: options?.filter, ...getPaginationVariables(options?.pagination) } }\n );\n return { data: data?.housingvistaRentalApplications ?? [], loading, error, refetch };\n};\n\nexport interface MaintenanceRequestRow {\n id: string;\n propertyId: string | null;\n rentalUnitId: string | null;\n title: string;\n description: string | null;\n category: string;\n priority: 'low' | 'medium' | 'high';\n status: 'open' | 'in_progress' | 'resolved';\n resolutionNotes: string | null;\n resolvedAt: string | null;\n createdAt: string;\n updatedAt: string;\n}\n\nexport const useMaintenanceRequests = (options?: ListOptions<MaintenanceRequestFilterInput>) => {\n const { data, loading, error, refetch } = useQuery<{ housingvistaMaintenanceRequests: MaintenanceRequestRow[] }>(\n GET_MAINTENANCE_REQUESTS,\n { variables: { filter: options?.filter, ...getPaginationVariables(options?.pagination) } }\n );\n return { data: data?.housingvistaMaintenanceRequests ?? [], loading, error, refetch };\n};\n\n// ---------------------------------------------------------------------------\n// Mutation hooks\n// ---------------------------------------------------------------------------\n\nexport interface CreatePropertyInput {\n title: string;\n description?: string;\n status: PropertyStatus;\n type: PropertyType;\n category: string;\n address?: string;\n city: string;\n state: string;\n country?: string;\n pincode?: string;\n neighborhood?: string;\n landmarks?: string[];\n price: number;\n currency?: string;\n priceType?: string;\n pricePeriod?: string;\n negotiable?: boolean;\n pricePerSqft?: number;\n bedrooms: number;\n bathrooms: number;\n totalArea: number;\n carpetArea?: number;\n builtUpArea?: number;\n floors?: number;\n totalFloors?: number;\n parking?: number;\n balconies?: number;\n furnishingStatus?: string;\n ageOfProperty?: number;\n facing?: string;\n amenities?: { name: string; category: string; available?: boolean }[];\n images?: { url: string; title?: string; type?: string; order?: number; isPrimary?: boolean }[];\n imageUrl?: string;\n /** Optional geo-pin captured in the listing wizard (BOFF-7795). */\n coordinates?: { latitude: number; longitude: number } | null;\n}\n\nexport type UpdatePropertyInput = Partial<CreatePropertyInput>;\n\nexport const useCreateProperty = () => {\n const [mutate, { loading }] = useMutation<\n { createHousingvistaProperty: PropertyRow },\n { input: CreatePropertyInput }\n >(CREATE_PROPERTY, { refetchQueries: ['GetProperties'], awaitRefetchQueries: true });\n const createProperty = async (input: CreatePropertyInput): Promise<Property> => {\n const res = await mutate({ variables: { input } });\n if (!res.data) throw new Error('Property was not created');\n return mapProperty(res.data.createHousingvistaProperty);\n };\n return { createProperty, loading };\n};\n\nexport const useUpdateProperty = () => {\n const [mutate, { loading }] = useMutation<\n { updateHousingvistaProperty: PropertyRow },\n { id: string; input: UpdatePropertyInput }\n >(UPDATE_PROPERTY);\n const updateProperty = async (id: string, input: UpdatePropertyInput): Promise<Property> => {\n const res = await mutate({ variables: { id, input } });\n if (!res.data) throw new Error('Property was not updated');\n return mapProperty(res.data.updateHousingvistaProperty);\n };\n return { updateProperty, loading };\n};\n\nexport const useDeleteProperty = () => {\n const [mutate, { loading }] = useMutation<{ deleteHousingvistaProperty: boolean }, { id: string }>(DELETE_PROPERTY, {\n refetchQueries: ['GetProperties'],\n awaitRefetchQueries: true,\n });\n const deleteProperty = async (id: string): Promise<boolean> => {\n const res = await mutate({ variables: { id } });\n return res.data?.deleteHousingvistaProperty ?? false;\n };\n return { deleteProperty, loading };\n};\n\nexport const useSaveShortlist = () => {\n const [mutate, { loading }] = useMutation<\n { saveHousingvistaShortlist: ShortlistRow },\n { input: { propertyId: string; notes?: string } }\n >(SAVE_SHORTLIST, { refetchQueries: ['GetShortlists'], awaitRefetchQueries: true });\n const saveShortlist = async (propertyId: string, notes?: string) => {\n await mutate({ variables: { input: { propertyId, notes } } });\n };\n return { saveShortlist, loading };\n};\n\nexport const useRemoveShortlist = () => {\n const [mutate, { loading }] = useMutation<{ removeHousingvistaShortlist: boolean }, { propertyId: string }>(\n REMOVE_SHORTLIST,\n { refetchQueries: ['GetShortlists'], awaitRefetchQueries: true }\n );\n const removeShortlist = async (propertyId: string) => {\n await mutate({ variables: { propertyId } });\n };\n return { removeShortlist, loading };\n};\n\nexport interface BookViewingInput {\n propertyId: string;\n scheduledAt: string;\n type?: 'in_person' | 'virtual';\n attendeeName?: string;\n attendeeEmail?: string;\n notes?: string;\n}\n\nexport const useBookViewing = () => {\n const [mutate, { loading }] = useMutation<{ bookHousingvistaViewing: { id: string } }, { input: BookViewingInput }>(\n BOOK_VIEWING\n );\n const bookViewing = async (input: BookViewingInput) => {\n await mutate({ variables: { input } });\n };\n return { bookViewing, loading };\n};\n\nexport const useCancelViewing = () => {\n const [mutate, { loading }] = useMutation<{ cancelHousingvistaViewing: { id: string } }, { id: string }>(\n CANCEL_VIEWING\n );\n const cancelViewing = async (id: string) => {\n await mutate({ variables: { id } });\n };\n return { cancelViewing, loading };\n};\n\nexport interface SubmitOfferInput {\n propertyId: string;\n amount: number;\n currency?: string;\n notes?: string;\n}\n\nexport const useSubmitOffer = () => {\n const [mutate, { loading }] = useMutation<{ submitHousingvistaOffer: { id: string } }, { input: SubmitOfferInput }>(\n SUBMIT_OFFER\n );\n const submitOffer = async (input: SubmitOfferInput) => {\n await mutate({ variables: { input } });\n };\n return { submitOffer, loading };\n};\n\nexport const useRespondOffer = () => {\n const [mutate, { loading }] = useMutation<\n { respondHousingvistaOffer: { id: string } },\n { id: string; input: { action: 'accept' | 'reject' | 'counter'; counterAmount?: number; notes?: string } }\n >(RESPOND_OFFER);\n const respondOffer = async (\n id: string,\n input: { action: 'accept' | 'reject' | 'counter'; counterAmount?: number; notes?: string }\n ) => {\n await mutate({ variables: { id, input } });\n };\n return { respondOffer, loading };\n};\n\nexport interface CreateTransactionInput {\n propertyId: string;\n title: string;\n type: string;\n status: string;\n amount: number;\n currency?: string;\n}\n\nexport const useCreateTransaction = () => {\n const [mutate, { loading }] = useMutation<\n { createHousingvistaTransaction: TransactionRow },\n { input: CreateTransactionInput }\n >(CREATE_TRANSACTION, { refetchQueries: ['GetTransactions'], awaitRefetchQueries: true });\n const createTransaction = async (input: CreateTransactionInput) => {\n await mutate({ variables: { input } });\n };\n return { createTransaction, loading };\n};\n\nexport interface CreateInvestmentInput {\n propertyId: string;\n title: string;\n status: string;\n investmentType: string;\n riskLevel: string;\n totalValue: number;\n startDate?: string;\n maturityDate?: string;\n}\n\nexport const useCreateInvestment = () => {\n const [mutate, { loading }] = useMutation<\n { createHousingvistaInvestment: InvestmentRow },\n { input: CreateInvestmentInput }\n >(CREATE_INVESTMENT, { refetchQueries: ['GetInvestments'], awaitRefetchQueries: true });\n const createInvestment = async (input: CreateInvestmentInput) => {\n await mutate({ variables: { input } });\n };\n return { createInvestment, loading };\n};\n\nexport interface CreateRentalUnitInput {\n propertyId?: string;\n propertyTitle: string;\n unitNumber: string;\n tenantName: string;\n tenantEmail: string;\n tenantPhone?: string;\n monthlyRent: number;\n leaseStart: string;\n leaseEnd: string;\n status: string;\n paymentStatus: string;\n securityDeposit?: number;\n}\n\nexport const useCreateRentalUnit = () => {\n const [mutate, { loading }] = useMutation<\n { createHousingvistaRentalUnit: { id: string } },\n { input: CreateRentalUnitInput }\n >(CREATE_RENTAL_UNIT, { refetchQueries: ['GetRentalUnits'], awaitRefetchQueries: true });\n const createRentalUnit = async (input: CreateRentalUnitInput) => {\n await mutate({ variables: { input } });\n };\n return { createRentalUnit, loading };\n};\n\nexport interface SubmitRentalApplicationInput {\n rentalUnitId: string;\n applicantName: string;\n applicantEmail: string;\n applicantPhone?: string;\n monthlyIncome?: number;\n moveInDate?: string;\n}\n\nexport const useSubmitRentalApplication = () => {\n const [mutate, { loading }] = useMutation<\n { submitHousingvistaRentalApplication: { id: string } },\n { input: SubmitRentalApplicationInput }\n >(SUBMIT_RENTAL_APPLICATION);\n const submitRentalApplication = async (input: SubmitRentalApplicationInput) => {\n await mutate({ variables: { input } });\n };\n return { submitRentalApplication, loading };\n};\n\nexport interface CreateAmcContractInput {\n propertyId?: string;\n propertyTitle: string;\n packageName: string;\n providerName: string;\n monthlyCost: number;\n startDate: string;\n endDate: string;\n nextServiceDate?: string;\n status: string;\n servicesIncluded?: string[];\n}\n\nexport const useCreateAmcContract = () => {\n const [mutate, { loading }] = useMutation<\n { createHousingvistaAmcContract: { id: string } },\n { input: CreateAmcContractInput }\n >(CREATE_AMC_CONTRACT, { refetchQueries: ['GetAmcContracts'], awaitRefetchQueries: true });\n const createAmcContract = async (input: CreateAmcContractInput) => {\n await mutate({ variables: { input } });\n };\n return { createAmcContract, loading };\n};\n\nexport interface CreateMaintenanceRequestInput {\n propertyId?: string;\n rentalUnitId?: string;\n title: string;\n description?: string;\n category: string;\n priority?: 'low' | 'medium' | 'high';\n}\n\nexport const useCreateMaintenanceRequest = () => {\n const [mutate, { loading }] = useMutation<\n { createHousingvistaMaintenanceRequest: { id: string } },\n { input: CreateMaintenanceRequestInput }\n >(CREATE_MAINTENANCE_REQUEST);\n const createMaintenanceRequest = async (input: CreateMaintenanceRequestInput) => {\n await mutate({ variables: { input } });\n };\n return { createMaintenanceRequest, loading };\n};\n\nexport const useCreateVerification = () => {\n const [mutate, { loading }] = useMutation<\n { createHousingvistaVerificationItem: { id: string } },\n { input: CreateVerificationItemInput }\n >(CREATE_VERIFICATION_ITEM, { refetchQueries: ['GetVerifications'], awaitRefetchQueries: true });\n const createVerification = async (input: CreateVerificationItemInput) => {\n await mutate({ variables: { input } });\n };\n return { createVerification, loading };\n};\n\nexport const useApproveVerification = () => {\n const [mutate, { loading }] = useMutation<\n { approveHousingvistaVerificationItem: { id: string } },\n { id: string; notes?: string }\n >(APPROVE_VERIFICATION, { refetchQueries: ['GetVerifications'], awaitRefetchQueries: true });\n const approveVerification = async (id: string, notes?: string) => {\n await mutate({ variables: { id, notes } });\n };\n return { approveVerification, loading };\n};\n\nexport const useRejectVerification = () => {\n const [mutate, { loading }] = useMutation<\n { rejectHousingvistaVerificationItem: { id: string } },\n { id: string; notes?: string }\n >(REJECT_VERIFICATION, { refetchQueries: ['GetVerifications'], awaitRefetchQueries: true });\n const rejectVerification = async (id: string, notes?: string) => {\n await mutate({ variables: { id, notes } });\n };\n return { rejectVerification, loading };\n};\n\n/** RERA review workflow transition (BOFF-4132) — separate from the generic\n * verification review above since RERA is its own regulatory workflow. */\nexport const useUpdatePropertyReraStatus = () => {\n const [mutate, { loading }] = useMutation<\n { updateHousingvistaPropertyReraStatus: { id: string; reraVerificationStatus: ReraVerificationStatus } },\n { id: string; status: ReraVerificationStatus; notes?: string }\n >(UPDATE_PROPERTY_RERA_STATUS, { refetchQueries: ['GetProperties', 'GetProperty'], awaitRefetchQueries: true });\n const updatePropertyReraStatus = async (id: string, status: ReraVerificationStatus, notes?: string) => {\n await mutate({ variables: { id, status, notes } });\n };\n return { updatePropertyReraStatus, loading };\n};\n\n// ---------------------------------------------------------------------------\n// Offer / Viewing owner-side + lifecycle mutation hooks\n// ---------------------------------------------------------------------------\n\nexport const useWithdrawOffer = () => {\n const [mutate, { loading }] = useMutation<{ withdrawHousingvistaOffer: { id: string } }, { id: string }>(\n WITHDRAW_OFFER,\n { refetchQueries: ['GetOffers', 'GetOffer'], awaitRefetchQueries: true }\n );\n const withdrawOffer = async (id: string) => {\n await mutate({ variables: { id } });\n };\n return { withdrawOffer, loading };\n};\n\nexport interface UpdateViewingInput {\n scheduledAt?: string;\n status?: 'requested' | 'confirmed' | 'completed' | 'cancelled';\n type?: 'in_person' | 'virtual';\n attendeeName?: string;\n attendeeEmail?: string;\n notes?: string;\n}\n\nexport const useUpdateViewing = () => {\n const [mutate, { loading }] = useMutation<\n { updateHousingvistaViewing: { id: string } },\n { id: string; input: UpdateViewingInput }\n >(UPDATE_VIEWING, { refetchQueries: ['GetViewings', 'GetViewing'], awaitRefetchQueries: true });\n const updateViewing = async (id: string, input: UpdateViewingInput) => {\n await mutate({ variables: { id, input } });\n };\n return { updateViewing, loading };\n};\n\n// ---------------------------------------------------------------------------\n// Investment update / delete\n// ---------------------------------------------------------------------------\n\nexport interface UpdateInvestmentInput {\n title?: string;\n investmentType?: string;\n status?: string;\n riskLevel?: string;\n totalValue?: number;\n startDate?: string;\n maturityDate?: string;\n}\n\nexport const useUpdateInvestment = () => {\n const [mutate, { loading }] = useMutation<\n { updateHousingvistaInvestment: InvestmentRow },\n { id: string; input: UpdateInvestmentInput }\n >(UPDATE_INVESTMENT, { refetchQueries: ['GetInvestments', 'GetInvestment'], awaitRefetchQueries: true });\n const updateInvestment = async (id: string, input: UpdateInvestmentInput) => {\n await mutate({ variables: { id, input } });\n };\n return { updateInvestment, loading };\n};\n\nexport const useDeleteInvestment = () => {\n const [mutate, { loading }] = useMutation<{ deleteHousingvistaInvestment: boolean }, { id: string }>(\n DELETE_INVESTMENT,\n { refetchQueries: ['GetInvestments'], awaitRefetchQueries: true }\n );\n const deleteInvestment = async (id: string): Promise<boolean> => {\n const res = await mutate({ variables: { id } });\n return res.data?.deleteHousingvistaInvestment ?? false;\n };\n return { deleteInvestment, loading };\n};\n\n// ---------------------------------------------------------------------------\n// Asset create / update / delete\n// ---------------------------------------------------------------------------\n\nexport interface CreateAssetInput {\n title: string;\n type: string;\n category: string;\n location: string;\n currentValue: number;\n purchasePrice: number;\n purchaseDate?: string;\n appreciationPercent?: number;\n rentalYield?: number;\n status: string;\n imageUrl?: string;\n lastValuationDate?: string;\n}\n\nexport const useCreateAsset = () => {\n const [mutate, { loading }] = useMutation<{ createHousingvistaAsset: Asset }, { input: CreateAssetInput }>(\n CREATE_ASSET,\n { refetchQueries: ['GetAssets'], awaitRefetchQueries: true }\n );\n const createAsset = async (input: CreateAssetInput) => {\n await mutate({ variables: { input } });\n };\n return { createAsset, loading };\n};\n\nexport type UpdateAssetInput = Partial<CreateAssetInput>;\n\nexport const useUpdateAsset = () => {\n const [mutate, { loading }] = useMutation<\n { updateHousingvistaAsset: Asset },\n { id: string; input: UpdateAssetInput }\n >(UPDATE_ASSET, { refetchQueries: ['GetAssets', 'GetAsset'], awaitRefetchQueries: true });\n const updateAsset = async (id: string, input: UpdateAssetInput) => {\n await mutate({ variables: { id, input } });\n };\n return { updateAsset, loading };\n};\n\nexport const useDeleteAsset = () => {\n const [mutate, { loading }] = useMutation<{ deleteHousingvistaAsset: boolean }, { id: string }>(DELETE_ASSET, {\n refetchQueries: ['GetAssets'],\n awaitRefetchQueries: true,\n });\n const deleteAsset = async (id: string): Promise<boolean> => {\n const res = await mutate({ variables: { id } });\n return res.data?.deleteHousingvistaAsset ?? false;\n };\n return { deleteAsset, loading };\n};\n\n// ---------------------------------------------------------------------------\n// AMC update / delete\n// ---------------------------------------------------------------------------\n\nexport type UpdateAmcContractInput = Partial<CreateAmcContractInput>;\n\nexport const useUpdateAmcContract = () => {\n const [mutate, { loading }] = useMutation<\n { updateHousingvistaAmcContract: { id: string } },\n { id: string; input: UpdateAmcContractInput }\n >(UPDATE_AMC_CONTRACT, { refetchQueries: ['GetAmcContracts'], awaitRefetchQueries: true });\n const updateAmcContract = async (id: string, input: UpdateAmcContractInput) => {\n await mutate({ variables: { id, input } });\n };\n return { updateAmcContract, loading };\n};\n\nexport const useDeleteAmcContract = () => {\n const [mutate, { loading }] = useMutation<{ deleteHousingvistaAmcContract: boolean }, { id: string }>(\n DELETE_AMC_CONTRACT,\n { refetchQueries: ['GetAmcContracts'], awaitRefetchQueries: true }\n );\n const deleteAmcContract = async (id: string): Promise<boolean> => {\n const res = await mutate({ variables: { id } });\n return res.data?.deleteHousingvistaAmcContract ?? false;\n };\n return { deleteAmcContract, loading };\n};\n\n// ---------------------------------------------------------------------------\n// Transaction update / delete\n// ---------------------------------------------------------------------------\n\nexport interface UpdateTransactionInput {\n title?: string;\n type?: string;\n status?: string;\n amount?: number;\n currency?: string;\n documents?: unknown;\n}\n\nexport const useUpdateTransaction = () => {\n const [mutate, { loading }] = useMutation<\n { updateHousingvistaTransaction: TransactionRow },\n { id: string; input: UpdateTransactionInput }\n >(UPDATE_TRANSACTION, { refetchQueries: ['GetTransactions', 'GetTransaction'], awaitRefetchQueries: true });\n const updateTransaction = async (id: string, input: UpdateTransactionInput) => {\n await mutate({ variables: { id, input } });\n };\n return { updateTransaction, loading };\n};\n\nexport const useDeleteTransaction = () => {\n const [mutate, { loading }] = useMutation<{ deleteHousingvistaTransaction: boolean }, { id: string }>(\n DELETE_TRANSACTION,\n { refetchQueries: ['GetTransactions'], awaitRefetchQueries: true }\n );\n const deleteTransaction = async (id: string): Promise<boolean> => {\n const res = await mutate({ variables: { id } });\n return res.data?.deleteHousingvistaTransaction ?? false;\n };\n return { deleteTransaction, loading };\n};\n\n// ---------------------------------------------------------------------------\n// Maintenance resolve + Rental-application review\n// ---------------------------------------------------------------------------\n\nexport const useResolveMaintenanceRequest = () => {\n const [mutate, { loading }] = useMutation<\n { resolveHousingvistaMaintenanceRequest: MaintenanceRequestRow },\n { id: string; resolutionNotes?: string }\n >(RESOLVE_MAINTENANCE, { refetchQueries: ['GetMaintenanceRequests'], awaitRefetchQueries: true });\n const resolveMaintenanceRequest = async (id: string, resolutionNotes?: string) => {\n await mutate({ variables: { id, resolutionNotes } });\n };\n return { resolveMaintenanceRequest, loading };\n};\n\nexport interface ReviewRentalApplicationInput {\n decision: 'approved' | 'rejected' | 'screening' | 'submitted';\n reviewNotes?: string;\n}\n\nexport const useReviewRentalApplication = () => {\n const [mutate, { loading }] = useMutation<\n { reviewHousingvistaRentalApplication: RentalApplicationRow },\n { id: string; input: ReviewRentalApplicationInput }\n >(REVIEW_RENTAL_APPLICATION, { refetchQueries: ['GetRentalApplications'], awaitRefetchQueries: true });\n const reviewRentalApplication = async (id: string, input: ReviewRentalApplicationInput) => {\n await mutate({ variables: { id, input } });\n };\n return { reviewRentalApplication, loading };\n};\n\n// ---------------------------------------------------------------------------\n// Platform-service reuse (conversations / files) — re-exported from ./platform\n// ---------------------------------------------------------------------------\n\nexport {\n useContactConversation,\n useSendMessage,\n useSendContextMessage,\n useConversationMessages,\n useEntityComments,\n useCreateEntityComment,\n useFileUpload,\n} from './platform';\nexport type {\n HvContextTarget,\n HvConversationMessage,\n HvConversationSourceContext,\n HvEntityComment,\n HvMessageAttachment,\n HvUploadedFile,\n} from './platform';\n\n// Analytics\nexport { useHousingVistaAnalytics } from './useHousingVistaAnalytics';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/housingvista/hooks/index.ts"],"sourcesContent":["/**\n * HousingVista data hooks — real GraphQL against the wspace gateway via Apollo.\n *\n * Every read maps the `housingvista*` query contract to the MFE domain types in\n * `../types`. Every write wraps a `housingvista*` mutation and (where it changes\n * a list the UI shows) refetches the affected query so the cache stays honest.\n * No `any`, no mock data — hooks that have no backing query return an explicit\n * `unsupported` empty-state instead of fabricating rows.\n * @module housingvista\n */\n\nimport { gql } from '@apollo/client';\nimport { useQuery, useMutation, useLazyQuery } from '@apollo/client/react';\nimport type {\n Property,\n Transaction,\n Investment,\n DashboardStats,\n DashboardTrends,\n RecentActivity,\n RentalUnit,\n Asset,\n AMCContract,\n MarketplaceService,\n VerificationItem,\n LegalService,\n HomeLoan,\n MarketTrend,\n AreaInsight,\n AnalyticsChartData,\n AnalyticsPeriod,\n PropertyType,\n PropertyStatus,\n ReraVerificationStatus,\n} from '../types';\n\n// ---------------------------------------------------------------------------\n// Shared input shapes (mirror HousingVista*Input from the subgraph schema)\n// ---------------------------------------------------------------------------\n\nexport type PaginationInput = {\n limit?: number;\n offset?: number;\n};\n\nexport type PropertyGeoBoundsInput = {\n neLat: number;\n neLng: number;\n swLat: number;\n swLng: number;\n};\n\nexport type PropertyGeoCenterInput = {\n latitude: number;\n longitude: number;\n radiusKm: number;\n};\n\nexport type PropertyFilterInput = {\n search?: string;\n status?: PropertyStatus;\n type?: PropertyType;\n city?: string;\n category?: string;\n priceMin?: number;\n priceMax?: number;\n bedroomsMin?: number;\n amenities?: string[];\n reraVerificationStatus?: ReraVerificationStatus;\n bounds?: PropertyGeoBoundsInput;\n center?: PropertyGeoCenterInput;\n};\n\nexport type TransactionFilterInput = {\n search?: string;\n status?: string;\n type?: string;\n propertyId?: string;\n};\n\nexport type InvestmentFilterInput = {\n search?: string;\n status?: string;\n investmentType?: string;\n riskLevel?: string;\n propertyId?: string;\n};\n\nexport type RentalUnitFilterInput = {\n search?: string;\n status?: string;\n paymentStatus?: string;\n propertyId?: string;\n};\n\nexport type AssetFilterInput = {\n search?: string;\n status?: string;\n type?: string;\n category?: string;\n};\n\nexport type AmcContractFilterInput = {\n search?: string;\n status?: string;\n propertyId?: string;\n};\n\nexport type MarketplaceServiceFilterInput = {\n search?: string;\n category?: string;\n verified?: boolean;\n};\n\nexport type LegalServiceFilterInput = {\n search?: string;\n status?: string;\n category?: string;\n};\n\nexport type VerificationItemFilterInput = {\n search?: string;\n status?: string;\n priority?: string;\n entityType?: string;\n};\n\nexport type CreateVerificationItemInput = {\n entityLabel: string;\n entityType: string;\n entityId?: string;\n priority: string;\n notes?: string;\n documentFileIds?: string[];\n};\n\nexport type ViewingFilterInput = {\n search?: string;\n status?: string;\n type?: string;\n propertyId?: string;\n};\n\nexport type OfferFilterInput = {\n status?: string;\n propertyId?: string;\n};\n\nexport type RentalApplicationFilterInput = {\n search?: string;\n status?: string;\n rentalUnitId?: string;\n};\n\nexport type MaintenanceRequestFilterInput = {\n search?: string;\n status?: string;\n priority?: 'low' | 'medium' | 'high';\n category?: string;\n propertyId?: string;\n rentalUnitId?: string;\n};\n\n/** Options accepted by every server-filtered list hook. */\nexport interface ListOptions<TFilter> {\n filter?: TFilter;\n pagination?: PaginationInput;\n}\n\nconst DEFAULT_LIST_PAGINATION: Required<PaginationInput> = { limit: 50, offset: 0 };\n\nconst getPaginationVariables = (pagination: PaginationInput = DEFAULT_LIST_PAGINATION) => ({\n pagination: {\n limit: pagination.limit ?? DEFAULT_LIST_PAGINATION.limit,\n offset: pagination.offset ?? DEFAULT_LIST_PAGINATION.offset,\n },\n});\n\n// ---------------------------------------------------------------------------\n// Query documents\n// ---------------------------------------------------------------------------\n\nconst GET_DASHBOARD_STATS = gql`\n query GetDashboardStats {\n housingvistaDashboardStats {\n totalProperties\n totalValue\n occupancyRate\n monthlyRevenue\n activeTransactions\n pendingVerifications\n totalInvestments\n totalPortfolioValue\n investmentReturns\n totalTenants\n maintenanceRequests\n unreadMessages\n upcomingViewings\n trends {\n totalProperties {\n label\n value\n }\n monthlyRevenue {\n label\n value\n }\n occupancyRate {\n label\n value\n }\n activeTransactions {\n label\n value\n }\n }\n }\n }\n`;\n\nconst PROPERTY_FIELDS = gql`\n fragment PropertyFields on HousingVistaProperty {\n id\n title\n description\n type\n status\n category\n verificationStatus\n reraRegistrationNo\n reraAuthority\n reraApprovalDate\n reraUrl\n reraVerificationStatus\n imageUrl\n createdAt\n updatedAt\n price {\n amount\n currency\n type\n period\n negotiable\n pricePerSqft\n }\n location {\n address\n city\n state\n country\n pincode\n coordinates {\n latitude\n longitude\n }\n neighborhood\n landmarks\n }\n specifications {\n totalArea\n carpetArea\n builtUpArea\n bedrooms\n bathrooms\n floors\n totalFloors\n parking\n balconies\n furnishingStatus\n ageOfProperty\n facing\n }\n amenities {\n id\n name\n category\n available\n }\n images {\n id\n url\n title\n type\n order\n isPrimary\n }\n }\n`;\n\nconst GET_PROPERTIES = gql`\n ${PROPERTY_FIELDS}\n query GetProperties($filter: HousingVistaPropertyFilterInput, $pagination: HousingVistaPaginationInput) {\n housingvistaProperties(filter: $filter, pagination: $pagination) {\n ...PropertyFields\n }\n }\n`;\n\nconst GET_PROPERTY = gql`\n ${PROPERTY_FIELDS}\n query GetProperty($id: ID!) {\n housingvistaProperty(id: $id) {\n ...PropertyFields\n }\n }\n`;\n\nconst TRANSACTION_FIELDS = gql`\n fragment TransactionFields on HousingVistaTransaction {\n id\n title\n type\n status\n amount\n currency\n documents\n milestones\n parties\n escrow\n createdAt\n updatedAt\n property {\n id\n title\n location {\n city\n state\n }\n images {\n id\n url\n isPrimary\n }\n }\n buyer {\n id\n firstName\n lastName\n avatar\n }\n seller {\n id\n firstName\n lastName\n avatar\n }\n tenant {\n id\n firstName\n lastName\n avatar\n }\n landlord {\n id\n firstName\n lastName\n avatar\n }\n }\n`;\n\nconst GET_TRANSACTIONS = gql`\n ${TRANSACTION_FIELDS}\n query GetTransactions($filter: HousingVistaTransactionFilterInput, $pagination: HousingVistaPaginationInput) {\n housingvistaTransactions(filter: $filter, pagination: $pagination) {\n ...TransactionFields\n }\n }\n`;\n\nconst GET_TRANSACTION = gql`\n ${TRANSACTION_FIELDS}\n query GetTransaction($id: ID!) {\n housingvistaTransaction(id: $id) {\n ...TransactionFields\n }\n }\n`;\n\nconst INVESTMENT_FIELDS = gql`\n fragment InvestmentFields on HousingVistaInvestment {\n id\n title\n investmentType\n totalValue\n status\n startDate\n maturityDate\n riskLevel\n investors\n returns\n property {\n id\n title\n location {\n city\n state\n }\n }\n }\n`;\n\nconst GET_INVESTMENTS = gql`\n ${INVESTMENT_FIELDS}\n query GetInvestments($filter: HousingVistaInvestmentFilterInput, $pagination: HousingVistaPaginationInput) {\n housingvistaInvestments(filter: $filter, pagination: $pagination) {\n ...InvestmentFields\n }\n }\n`;\n\nconst GET_INVESTMENT = gql`\n ${INVESTMENT_FIELDS}\n query GetInvestment($id: ID!) {\n housingvistaInvestment(id: $id) {\n ...InvestmentFields\n }\n }\n`;\n\nconst GET_RENTAL_UNITS = gql`\n query GetRentalUnits($filter: HousingVistaRentalUnitFilterInput, $pagination: HousingVistaPaginationInput) {\n housingvistaRentalUnits(filter: $filter, pagination: $pagination) {\n id\n propertyId\n propertyTitle\n unitNumber\n tenantName\n tenantEmail\n tenantPhone\n monthlyRent\n leaseStart\n leaseEnd\n status\n lastPaymentDate\n paymentStatus\n securityDeposit\n }\n }\n`;\n\nconst ASSET_FIELDS = gql`\n fragment AssetFields on HousingVistaAsset {\n id\n title\n type\n category\n location\n currentValue\n purchasePrice\n purchaseDate\n appreciationPercent\n rentalYield\n status\n imageUrl\n lastValuationDate\n }\n`;\n\nconst GET_ASSETS = gql`\n ${ASSET_FIELDS}\n query GetAssets($filter: HousingVistaAssetFilterInput, $pagination: HousingVistaPaginationInput) {\n housingvistaAssets(filter: $filter, pagination: $pagination) {\n ...AssetFields\n }\n }\n`;\n\nconst GET_ASSET = gql`\n ${ASSET_FIELDS}\n query GetAsset($id: ID!) {\n housingvistaAsset(id: $id) {\n ...AssetFields\n }\n }\n`;\n\nconst GET_AMC_CONTRACTS = gql`\n query GetAmcContracts($filter: HousingVistaAmcContractFilterInput, $pagination: HousingVistaPaginationInput) {\n housingvistaAmcContracts(filter: $filter, pagination: $pagination) {\n id\n propertyId\n propertyTitle\n packageName\n providerName\n status\n startDate\n endDate\n monthlyCost\n nextServiceDate\n servicesIncluded\n }\n }\n`;\n\nconst MARKETPLACE_SERVICE_FIELDS = gql`\n fragment MarketplaceServiceFields on HousingVistaMarketplaceService {\n id\n name\n providerName\n category\n description\n rating\n reviewCount\n priceRange\n availableAreas\n responseTime\n verified\n imageUrl\n featured\n }\n`;\n\nconst GET_MARKETPLACE_SERVICES = gql`\n ${MARKETPLACE_SERVICE_FIELDS}\n query GetMarketplaceServices(\n $filter: HousingVistaMarketplaceServiceFilterInput\n $pagination: HousingVistaPaginationInput\n ) {\n housingvistaMarketplaceServices(filter: $filter, pagination: $pagination) {\n ...MarketplaceServiceFields\n }\n }\n`;\n\nconst GET_MARKETPLACE_SERVICE = gql`\n ${MARKETPLACE_SERVICE_FIELDS}\n query GetMarketplaceService($id: ID!) {\n housingvistaMarketplaceService(id: $id) {\n ...MarketplaceServiceFields\n }\n }\n`;\n\nconst VERIFICATION_FIELDS = gql`\n fragment VerificationFields on HousingVistaVerificationItem {\n id\n entityType\n entityId\n entityLabel\n status\n submittedDate\n reviewerName\n priority\n notes\n createdAt\n updatedAt\n }\n`;\n\nconst GET_VERIFICATIONS = gql`\n ${VERIFICATION_FIELDS}\n query GetVerifications($filter: HousingVistaVerificationItemFilterInput, $pagination: HousingVistaPaginationInput) {\n housingvistaVerificationItems(filter: $filter, pagination: $pagination) {\n ...VerificationFields\n }\n }\n`;\n\nconst GET_VERIFICATION = gql`\n ${VERIFICATION_FIELDS}\n query GetVerification($id: ID!) {\n housingvistaVerificationItem(id: $id) {\n ...VerificationFields\n }\n }\n`;\n\nconst LEGAL_SERVICE_FIELDS = gql`\n fragment LegalServiceFields on HousingVistaLegalService {\n id\n title\n category\n description\n providerName\n providerRating\n estimatedDuration\n priceRange\n status\n consultationFee\n documentsRequired\n }\n`;\n\nconst GET_LEGAL_SERVICES = gql`\n ${LEGAL_SERVICE_FIELDS}\n query GetLegalServices($filter: HousingVistaLegalServiceFilterInput, $pagination: HousingVistaPaginationInput) {\n housingvistaLegalServices(filter: $filter, pagination: $pagination) {\n ...LegalServiceFields\n }\n }\n`;\n\nconst GET_LEGAL_SERVICE = gql`\n ${LEGAL_SERVICE_FIELDS}\n query GetLegalService($id: ID!) {\n housingvistaLegalService(id: $id) {\n ...LegalServiceFields\n }\n }\n`;\n\nconst HOME_LOAN_FIELDS = gql`\n fragment HomeLoanFields on HousingVistaHomeLoanOffer {\n id\n bankName\n bankLogo\n interestRate\n maxTenure\n maxAmount\n processingFee\n emiPerLakh\n features\n rating\n specialOffer\n prepaymentCharges\n }\n`;\n\nconst GET_HOME_LOANS = gql`\n ${HOME_LOAN_FIELDS}\n query GetHomeLoans($pagination: HousingVistaPaginationInput) {\n housingvistaHomeLoanOffers(pagination: $pagination) {\n ...HomeLoanFields\n }\n }\n`;\n\nconst GET_HOME_LOAN = gql`\n ${HOME_LOAN_FIELDS}\n query GetHomeLoan($id: ID!) {\n housingvistaHomeLoanOffer(id: $id) {\n ...HomeLoanFields\n }\n }\n`;\n\nconst GET_MARKET_TRENDS = gql`\n query GetMarketTrends($pagination: HousingVistaPaginationInput) {\n housingvistaMarketTrends(pagination: $pagination) {\n month\n avgPrice\n avgRent\n demandIndex\n supplyIndex\n priceChangePercent\n }\n }\n`;\n\nconst GET_AREA_INSIGHTS = gql`\n query GetAreaInsights($pagination: HousingVistaPaginationInput) {\n housingvistaAreaInsights(pagination: $pagination) {\n id\n areaName\n city\n avgPropertyPrice\n avgRentalYield\n appreciationRate\n safetyScore\n connectivityScore\n amenitiesScore\n schoolsNearby\n hospitalsNearby\n population\n greenCoverPercent\n upcomingProjects\n avg2BhkPrice\n avg3BhkPrice\n amenitiesRating\n priceTrend {\n period\n avgPrice\n }\n futureProjects {\n name\n type\n expectedCompletion\n description\n }\n nearbyHubs\n transportLinks\n schools\n hospitals\n malls\n }\n }\n`;\n\nconst GET_ANALYTICS = gql`\n query GetHousingvistaAnalytics($period: HousingVistaAnalyticsPeriod) {\n housingvistaAnalytics(period: $period) {\n kpis {\n id\n label\n value\n previousValue\n unit\n trend\n changePercent\n }\n revenueByMonth {\n month\n revenue\n expenses\n }\n propertyTypeDistribution {\n type\n count\n value\n }\n occupancyRate {\n month\n rate\n }\n period\n }\n }\n`;\n\nconst SHORTLIST_FIELDS = gql`\n ${PROPERTY_FIELDS}\n fragment ShortlistFields on HousingVistaShortlist {\n id\n propertyId\n notes\n createdAt\n property {\n ...PropertyFields\n }\n }\n`;\n\nconst GET_SHORTLISTS = gql`\n ${SHORTLIST_FIELDS}\n query GetShortlists($pagination: HousingVistaPaginationInput) {\n housingvistaShortlists(pagination: $pagination) {\n ...ShortlistFields\n }\n }\n`;\n\nconst OFFER_FIELDS = gql`\n fragment OfferFields on HousingVistaOffer {\n id\n propertyId\n amount\n counterAmount\n currency\n status\n notes\n respondedAt\n createdAt\n updatedAt\n property {\n id\n title\n location {\n city\n state\n }\n images {\n id\n url\n isPrimary\n }\n price {\n amount\n currency\n }\n }\n }\n`;\n\nconst GET_OFFERS = gql`\n ${OFFER_FIELDS}\n query GetOffers($filter: HousingVistaOfferFilterInput, $pagination: HousingVistaPaginationInput) {\n housingvistaOffers(filter: $filter, pagination: $pagination) {\n ...OfferFields\n }\n }\n`;\n\nconst GET_OFFER = gql`\n ${OFFER_FIELDS}\n query GetOffer($id: ID!) {\n housingvistaOffer(id: $id) {\n ...OfferFields\n }\n }\n`;\n\nconst VIEWING_FIELDS = gql`\n fragment ViewingFields on HousingVistaViewing {\n id\n propertyId\n scheduledAt\n type\n status\n attendeeName\n attendeeEmail\n notes\n createdAt\n updatedAt\n property {\n id\n title\n location {\n city\n state\n }\n images {\n id\n url\n isPrimary\n }\n }\n }\n`;\n\nconst GET_VIEWINGS = gql`\n ${VIEWING_FIELDS}\n query GetViewings($filter: HousingVistaViewingFilterInput, $pagination: HousingVistaPaginationInput) {\n housingvistaViewings(filter: $filter, pagination: $pagination) {\n ...ViewingFields\n }\n }\n`;\n\nconst GET_VIEWING = gql`\n ${VIEWING_FIELDS}\n query GetViewing($id: ID!) {\n housingvistaViewing(id: $id) {\n ...ViewingFields\n }\n }\n`;\n\nconst RENTAL_APPLICATION_FIELDS = gql`\n fragment RentalApplicationFields on HousingVistaRentalApplication {\n id\n rentalUnitId\n applicantName\n applicantEmail\n applicantPhone\n monthlyIncome\n moveInDate\n status\n reviewNotes\n reviewedAt\n createdAt\n updatedAt\n rentalUnit {\n id\n unitNumber\n propertyTitle\n monthlyRent\n }\n }\n`;\n\nconst GET_RENTAL_APPLICATIONS = gql`\n ${RENTAL_APPLICATION_FIELDS}\n query GetRentalApplications(\n $filter: HousingVistaRentalApplicationFilterInput\n $pagination: HousingVistaPaginationInput\n ) {\n housingvistaRentalApplications(filter: $filter, pagination: $pagination) {\n ...RentalApplicationFields\n }\n }\n`;\n\nconst MAINTENANCE_FIELDS = gql`\n fragment MaintenanceFields on HousingVistaMaintenanceRequest {\n id\n propertyId\n rentalUnitId\n title\n description\n category\n priority\n status\n resolutionNotes\n resolvedAt\n createdAt\n updatedAt\n }\n`;\n\nconst GET_MAINTENANCE_REQUESTS = gql`\n ${MAINTENANCE_FIELDS}\n query GetMaintenanceRequests(\n $filter: HousingVistaMaintenanceRequestFilterInput\n $pagination: HousingVistaPaginationInput\n ) {\n housingvistaMaintenanceRequests(filter: $filter, pagination: $pagination) {\n ...MaintenanceFields\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Mutation documents\n// ---------------------------------------------------------------------------\n\nconst CREATE_PROPERTY = gql`\n ${PROPERTY_FIELDS}\n mutation CreateHousingvistaProperty($input: HousingVistaCreatePropertyInput!) {\n createHousingvistaProperty(input: $input) {\n ...PropertyFields\n }\n }\n`;\n\nconst UPDATE_PROPERTY = gql`\n ${PROPERTY_FIELDS}\n mutation UpdateHousingvistaProperty($id: ID!, $input: HousingVistaUpdatePropertyInput!) {\n updateHousingvistaProperty(id: $id, input: $input) {\n ...PropertyFields\n }\n }\n`;\n\nconst DELETE_PROPERTY = gql`\n mutation DeleteHousingvistaProperty($id: ID!) {\n deleteHousingvistaProperty(id: $id)\n }\n`;\n\nconst SAVE_SHORTLIST = gql`\n ${SHORTLIST_FIELDS}\n mutation SaveHousingvistaShortlist($input: HousingVistaSaveShortlistInput!) {\n saveHousingvistaShortlist(input: $input) {\n ...ShortlistFields\n }\n }\n`;\n\nconst REMOVE_SHORTLIST = gql`\n mutation RemoveHousingvistaShortlist($propertyId: ID!) {\n removeHousingvistaShortlist(propertyId: $propertyId)\n }\n`;\n\nconst BOOK_VIEWING = gql`\n mutation BookHousingvistaViewing($input: HousingVistaBookViewingInput!) {\n bookHousingvistaViewing(input: $input) {\n id\n propertyId\n scheduledAt\n type\n status\n attendeeName\n attendeeEmail\n notes\n }\n }\n`;\n\nconst CANCEL_VIEWING = gql`\n mutation CancelHousingvistaViewing($id: ID!) {\n cancelHousingvistaViewing(id: $id) {\n id\n status\n }\n }\n`;\n\nconst SUBMIT_OFFER = gql`\n mutation SubmitHousingvistaOffer($input: HousingVistaSubmitOfferInput!) {\n submitHousingvistaOffer(input: $input) {\n id\n propertyId\n amount\n currency\n status\n notes\n createdAt\n }\n }\n`;\n\nconst RESPOND_OFFER = gql`\n mutation RespondHousingvistaOffer($id: ID!, $input: HousingVistaRespondOfferInput!) {\n respondHousingvistaOffer(id: $id, input: $input) {\n id\n status\n counterAmount\n respondedAt\n }\n }\n`;\n\nconst CREATE_TRANSACTION = gql`\n ${TRANSACTION_FIELDS}\n mutation CreateHousingvistaTransaction($input: HousingVistaCreateTransactionInput!) {\n createHousingvistaTransaction(input: $input) {\n ...TransactionFields\n }\n }\n`;\n\nconst CREATE_INVESTMENT = gql`\n ${INVESTMENT_FIELDS}\n mutation CreateHousingvistaInvestment($input: HousingVistaCreateInvestmentInput!) {\n createHousingvistaInvestment(input: $input) {\n ...InvestmentFields\n }\n }\n`;\n\nconst CREATE_RENTAL_UNIT = gql`\n mutation CreateHousingvistaRentalUnit($input: HousingVistaCreateRentalUnitInput!) {\n createHousingvistaRentalUnit(input: $input) {\n id\n propertyTitle\n unitNumber\n tenantName\n monthlyRent\n status\n }\n }\n`;\n\nconst SUBMIT_RENTAL_APPLICATION = gql`\n mutation SubmitHousingvistaRentalApplication($input: HousingVistaSubmitRentalApplicationInput!) {\n submitHousingvistaRentalApplication(input: $input) {\n id\n rentalUnitId\n applicantName\n status\n }\n }\n`;\n\nconst CREATE_AMC_CONTRACT = gql`\n mutation CreateHousingvistaAmcContract($input: HousingVistaCreateAmcContractInput!) {\n createHousingvistaAmcContract(input: $input) {\n id\n propertyTitle\n packageName\n providerName\n monthlyCost\n status\n }\n }\n`;\n\nconst CREATE_MAINTENANCE_REQUEST = gql`\n mutation CreateHousingvistaMaintenanceRequest($input: HousingVistaCreateMaintenanceRequestInput!) {\n createHousingvistaMaintenanceRequest(input: $input) {\n id\n title\n category\n priority\n status\n }\n }\n`;\n\nconst CREATE_VERIFICATION_ITEM = gql`\n mutation CreateHousingvistaVerificationItem($input: HousingVistaCreateVerificationItemInput!) {\n createHousingvistaVerificationItem(input: $input) {\n id\n status\n entityLabel\n }\n }\n`;\n\nconst APPROVE_VERIFICATION = gql`\n mutation ApproveHousingvistaVerificationItem($id: ID!, $notes: String) {\n approveHousingvistaVerificationItem(id: $id, notes: $notes) {\n id\n status\n reviewerName\n notes\n }\n }\n`;\n\nconst REJECT_VERIFICATION = gql`\n mutation RejectHousingvistaVerificationItem($id: ID!, $notes: String) {\n rejectHousingvistaVerificationItem(id: $id, notes: $notes) {\n id\n status\n reviewerName\n notes\n }\n }\n`;\n\nconst UPDATE_PROPERTY_RERA_STATUS = gql`\n mutation UpdateHousingvistaPropertyReraStatus(\n $id: ID!\n $status: HousingVistaReraVerificationStatus!\n $notes: String\n ) {\n updateHousingvistaPropertyReraStatus(id: $id, status: $status, notes: $notes) {\n id\n reraVerificationStatus\n reraApprovalDate\n }\n }\n`;\n\nconst WITHDRAW_OFFER = gql`\n mutation WithdrawHousingvistaOffer($id: ID!) {\n withdrawHousingvistaOffer(id: $id) {\n id\n status\n }\n }\n`;\n\nconst UPDATE_VIEWING = gql`\n mutation UpdateHousingvistaViewing($id: ID!, $input: HousingVistaUpdateViewingInput!) {\n updateHousingvistaViewing(id: $id, input: $input) {\n id\n scheduledAt\n status\n type\n notes\n }\n }\n`;\n\nconst UPDATE_INVESTMENT = gql`\n ${INVESTMENT_FIELDS}\n mutation UpdateHousingvistaInvestment($id: ID!, $input: HousingVistaUpdateInvestmentInput!) {\n updateHousingvistaInvestment(id: $id, input: $input) {\n ...InvestmentFields\n }\n }\n`;\n\nconst DELETE_INVESTMENT = gql`\n mutation DeleteHousingvistaInvestment($id: ID!) {\n deleteHousingvistaInvestment(id: $id)\n }\n`;\n\nconst CREATE_ASSET = gql`\n ${ASSET_FIELDS}\n mutation CreateHousingvistaAsset($input: HousingVistaCreateAssetInput!) {\n createHousingvistaAsset(input: $input) {\n ...AssetFields\n }\n }\n`;\n\nconst UPDATE_ASSET = gql`\n ${ASSET_FIELDS}\n mutation UpdateHousingvistaAsset($id: ID!, $input: HousingVistaUpdateAssetInput!) {\n updateHousingvistaAsset(id: $id, input: $input) {\n ...AssetFields\n }\n }\n`;\n\nconst DELETE_ASSET = gql`\n mutation DeleteHousingvistaAsset($id: ID!) {\n deleteHousingvistaAsset(id: $id)\n }\n`;\n\nconst UPDATE_AMC_CONTRACT = gql`\n mutation UpdateHousingvistaAmcContract($id: ID!, $input: HousingVistaUpdateAmcContractInput!) {\n updateHousingvistaAmcContract(id: $id, input: $input) {\n id\n status\n packageName\n providerName\n monthlyCost\n }\n }\n`;\n\nconst DELETE_AMC_CONTRACT = gql`\n mutation DeleteHousingvistaAmcContract($id: ID!) {\n deleteHousingvistaAmcContract(id: $id)\n }\n`;\n\nconst UPDATE_TRANSACTION = gql`\n ${TRANSACTION_FIELDS}\n mutation UpdateHousingvistaTransaction($id: ID!, $input: HousingVistaUpdateTransactionInput!) {\n updateHousingvistaTransaction(id: $id, input: $input) {\n ...TransactionFields\n }\n }\n`;\n\nconst DELETE_TRANSACTION = gql`\n mutation DeleteHousingvistaTransaction($id: ID!) {\n deleteHousingvistaTransaction(id: $id)\n }\n`;\n\nconst RESOLVE_MAINTENANCE = gql`\n ${MAINTENANCE_FIELDS}\n mutation ResolveHousingvistaMaintenanceRequest($id: ID!, $resolutionNotes: String) {\n resolveHousingvistaMaintenanceRequest(id: $id, resolutionNotes: $resolutionNotes) {\n ...MaintenanceFields\n }\n }\n`;\n\nconst REVIEW_RENTAL_APPLICATION = gql`\n ${RENTAL_APPLICATION_FIELDS}\n mutation ReviewHousingvistaRentalApplication($id: ID!, $input: HousingVistaReviewRentalApplicationInput!) {\n reviewHousingvistaRentalApplication(id: $id, input: $input) {\n ...RentalApplicationFields\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Query-result row shapes (as selected above)\n// ---------------------------------------------------------------------------\n\ninterface PropertyRow {\n id: string;\n title: string;\n description: string | null;\n type: Property['type'];\n status: Property['status'];\n category: string;\n verificationStatus: string;\n reraRegistrationNo: string | null;\n reraAuthority: string | null;\n reraApprovalDate: string | null;\n reraUrl: string | null;\n reraVerificationStatus: ReraVerificationStatus;\n imageUrl: string | null;\n createdAt: string;\n updatedAt: string;\n price: Property['price'];\n location: Omit<Property['location'], 'coordinates'> & {\n coordinates: { latitude: number; longitude: number } | null;\n };\n specifications: Property['specifications'];\n amenities: Property['amenities'];\n images: Property['images'];\n}\n\ninterface TransactionRow {\n id: string;\n title: string;\n type: string;\n status: string;\n amount: number;\n currency: string;\n documents: unknown;\n milestones: unknown;\n parties: unknown;\n escrow: unknown;\n createdAt: string;\n updatedAt: string;\n property: PropertyRow | null;\n buyer: TxParty | null;\n seller: TxParty | null;\n tenant: TxParty | null;\n landlord: TxParty | null;\n}\n\ninterface TxParty {\n id: string | null;\n firstName: string | null;\n lastName: string | null;\n avatar: string | null;\n}\n\ninterface InvestmentRow {\n id: string;\n title: string;\n investmentType: string;\n totalValue: number;\n status: string;\n startDate: string;\n maturityDate: string | null;\n riskLevel: string;\n investors: unknown;\n returns: unknown;\n property: PropertyRow | null;\n}\n\ninterface ShortlistRow {\n id: string;\n propertyId: string;\n notes: string | null;\n createdAt: string;\n property: PropertyRow;\n}\n\n// ---------------------------------------------------------------------------\n// Mappers: GraphQL row → MFE domain type\n// ---------------------------------------------------------------------------\n\n/**\n * The domain `Property` carries display-only fields the subgraph does not\n * resolve (owner/documents/features/virtualTours/availability). We fill the\n * present fields from the query and default the rest to empty so consumers can\n * render honest empty-states rather than crashing on `undefined`.\n */\nconst mapProperty = (row: PropertyRow): Property => ({\n id: row.id,\n title: row.title,\n description: row.description ?? '',\n type: row.type,\n status: row.status,\n category: row.category as Property['category'],\n price: row.price,\n location: {\n ...row.location,\n coordinates: row.location.coordinates ?? { latitude: 0, longitude: 0 },\n },\n specifications: row.specifications,\n amenities: row.amenities ?? [],\n images: row.images ?? [],\n documents: [],\n virtualTours: [],\n owner: { id: '', name: '', email: '', phone: '', verified: false },\n features: [],\n verificationStatus: (row.verificationStatus as Property['verificationStatus']) ?? 'pending',\n availability: { available: true },\n createdAt: new Date(row.createdAt),\n updatedAt: new Date(row.updatedAt),\n reraRegistrationNo: row.reraRegistrationNo,\n reraAuthority: row.reraAuthority,\n reraApprovalDate: row.reraApprovalDate ? new Date(row.reraApprovalDate) : null,\n reraUrl: row.reraUrl,\n reraVerificationStatus: row.reraVerificationStatus ?? 'not_applicable',\n});\n\n// ---------------------------------------------------------------------------\n// Query hooks\n// ---------------------------------------------------------------------------\n\nconst emptyTrends: DashboardTrends = {\n totalProperties: [],\n monthlyRevenue: [],\n occupancyRate: [],\n activeTransactions: [],\n};\n\nexport const useDashboardStats = () => {\n const { data, loading, error } = useQuery<{ housingvistaDashboardStats: DashboardStats }>(GET_DASHBOARD_STATS);\n const empty: DashboardStats = {\n totalProperties: 0,\n totalValue: 0,\n occupancyRate: 0,\n monthlyRevenue: 0,\n activeTransactions: 0,\n pendingVerifications: 0,\n totalInvestments: 0,\n investmentReturns: 0,\n totalTenants: 0,\n maintenanceRequests: 0,\n unreadMessages: 0,\n upcomingViewings: 0,\n trends: emptyTrends,\n };\n return { data: data?.housingvistaDashboardStats ?? empty, loading, error };\n};\n\nexport const useRecentActivities = (pagination?: PaginationInput) => {\n const { data, loading, error } = useQuery<{ housingvistaTransactions: TransactionRow[] }>(GET_TRANSACTIONS, {\n variables: getPaginationVariables(pagination),\n });\n const activities: RecentActivity[] = (data?.housingvistaTransactions ?? []).map((txn) => ({\n id: `act-${txn.id}`,\n type: 'transaction_update',\n title: `Transaction: ${txn.type}`,\n description: `${txn.property?.title ?? 'Property'} - ${txn.status}`,\n timestamp: txn.updatedAt || txn.createdAt,\n entityId: txn.id,\n entityType: 'transaction',\n actorName: txn.buyer\n ? `${txn.buyer.firstName ?? ''} ${txn.buyer.lastName ?? ''}`.trim()\n : txn.tenant\n ? `${txn.tenant.firstName ?? ''} ${txn.tenant.lastName ?? ''}`.trim()\n : 'System',\n actorAvatar: txn.buyer?.avatar ?? txn.tenant?.avatar ?? undefined,\n }));\n return { data: activities, loading, error };\n};\n\nexport const useProperties = (options?: {\n filter?: PropertyFilterInput;\n pagination?: PaginationInput;\n skip?: boolean;\n}) => {\n const { data, loading, error, refetch } = useQuery<{ housingvistaProperties: PropertyRow[] }>(GET_PROPERTIES, {\n variables: {\n filter: options?.filter,\n ...getPaginationVariables(options?.pagination),\n },\n skip: options?.skip,\n });\n return {\n data: (data?.housingvistaProperties ?? []).map(mapProperty),\n loading,\n error,\n refetch,\n };\n};\n\nexport const useProperty = (id: string | undefined) => {\n const { data, loading, error } = useQuery<{ housingvistaProperty: PropertyRow | null }>(GET_PROPERTY, {\n variables: { id: id ?? '' },\n skip: !id,\n });\n return {\n data: data?.housingvistaProperty ? mapProperty(data.housingvistaProperty) : null,\n loading,\n error,\n };\n};\n\n// BOFF-4129 — natural-language property search. `method` tells the caller\n// whether the filter shown was extracted by an LLM ('ai') or the\n// deterministic keyword baseline ('keyword'); `fallbackReason` is set when\n// an AI attempt was made and failed. `results` are always a real\n// `listProperties` query result — never LLM-generated listing data.\nexport interface NlSearchFilter {\n city?: string | null;\n type?: PropertyType | null;\n status?: PropertyStatus | null;\n category?: string | null;\n priceMin?: number | null;\n priceMax?: number | null;\n bedroomsMin?: number | null;\n amenities?: string[] | null;\n reraVerificationStatus?: string | null;\n}\n\ninterface NlSearchResultRow {\n query: string;\n method: 'ai' | 'keyword';\n fallbackReason: string | null;\n filter: NlSearchFilter;\n properties: PropertyRow[];\n}\n\nconst NL_SEARCH_PROPERTIES = gql`\n ${PROPERTY_FIELDS}\n query HousingVistaNaturalLanguageSearch($query: String!, $pagination: HousingVistaPaginationInput) {\n housingvistaNaturalLanguageSearch(query: $query, pagination: $pagination) {\n query\n method\n fallbackReason\n filter {\n city\n type\n status\n category\n priceMin\n priceMax\n bedroomsMin\n amenities\n reraVerificationStatus\n }\n properties {\n ...PropertyFields\n }\n }\n }\n`;\n\nexport const useNaturalLanguageSearch = () => {\n const [run, { data, loading, error }] = useLazyQuery<\n { housingvistaNaturalLanguageSearch: NlSearchResultRow },\n { query: string; pagination?: PaginationInput }\n >(NL_SEARCH_PROPERTIES);\n\n const search = (query: string, pagination?: PaginationInput) => run({ variables: { query, pagination } });\n\n const result = data?.housingvistaNaturalLanguageSearch;\n return {\n search,\n loading,\n error,\n method: result?.method ?? null,\n fallbackReason: result?.fallbackReason ?? null,\n filter: result?.filter ?? null,\n properties: (result?.properties ?? []).map(mapProperty),\n };\n};\n\nexport const useTransactions = (options?: ListOptions<TransactionFilterInput>) => {\n const { data, loading, error, refetch } = useQuery<{ housingvistaTransactions: TransactionRow[] }>(GET_TRANSACTIONS, {\n variables: { filter: options?.filter, ...getPaginationVariables(options?.pagination) },\n });\n // Transaction JSON columns (documents/milestones/parties/escrow) are opaque to\n // the schema; the page guards their runtime shape. Cast is localized here.\n return { data: (data?.housingvistaTransactions ?? []) as unknown as Transaction[], loading, error, refetch };\n};\n\nexport const useTransaction = (id: string | undefined) => {\n const { data, loading, error } = useQuery<{ housingvistaTransaction: TransactionRow | null }>(GET_TRANSACTION, {\n variables: { id: id ?? '' },\n skip: !id,\n });\n return {\n data: (data?.housingvistaTransaction ?? null) as unknown as Transaction | null,\n loading,\n error,\n };\n};\n\nexport const useInvestments = (options?: ListOptions<InvestmentFilterInput>) => {\n const { data, loading, error, refetch } = useQuery<{ housingvistaInvestments: InvestmentRow[] }>(GET_INVESTMENTS, {\n variables: { filter: options?.filter, ...getPaginationVariables(options?.pagination) },\n });\n return { data: (data?.housingvistaInvestments ?? []) as unknown as Investment[], loading, error, refetch };\n};\n\nexport const useInvestment = (id: string | undefined) => {\n const { data, loading, error } = useQuery<{ housingvistaInvestment: InvestmentRow | null }>(GET_INVESTMENT, {\n variables: { id: id ?? '' },\n skip: !id,\n });\n return { data: (data?.housingvistaInvestment ?? null) as unknown as Investment | null, loading, error };\n};\n\nexport const useRentalUnits = (options?: ListOptions<RentalUnitFilterInput>) => {\n const { data, loading, error, refetch } = useQuery<{ housingvistaRentalUnits: RentalUnit[] }>(GET_RENTAL_UNITS, {\n variables: { filter: options?.filter, ...getPaginationVariables(options?.pagination) },\n });\n return { data: data?.housingvistaRentalUnits ?? [], loading, error, refetch };\n};\n\nexport const useAssets = (options?: ListOptions<AssetFilterInput>) => {\n const { data, loading, error, refetch } = useQuery<{ housingvistaAssets: Asset[] }>(GET_ASSETS, {\n variables: { filter: options?.filter, ...getPaginationVariables(options?.pagination) },\n });\n return { data: data?.housingvistaAssets ?? [], loading, error, refetch };\n};\n\nexport const useAsset = (id: string | undefined) => {\n const { data, loading, error } = useQuery<{ housingvistaAsset: Asset | null }>(GET_ASSET, {\n variables: { id: id ?? '' },\n skip: !id,\n });\n return { data: data?.housingvistaAsset ?? null, loading, error };\n};\n\nexport const useAMCContracts = (options?: ListOptions<AmcContractFilterInput>) => {\n const { data, loading, error, refetch } = useQuery<{ housingvistaAmcContracts: AMCContract[] }>(GET_AMC_CONTRACTS, {\n variables: { filter: options?.filter, ...getPaginationVariables(options?.pagination) },\n });\n return { data: data?.housingvistaAmcContracts ?? [], loading, error, refetch };\n};\n\nexport const useMarketplaceServices = (options?: ListOptions<MarketplaceServiceFilterInput>) => {\n const { data, loading, error, refetch } = useQuery<{ housingvistaMarketplaceServices: MarketplaceService[] }>(\n GET_MARKETPLACE_SERVICES,\n { variables: { filter: options?.filter, ...getPaginationVariables(options?.pagination) } }\n );\n return { data: data?.housingvistaMarketplaceServices ?? [], loading, error, refetch };\n};\n\nexport const useMarketplaceService = (id: string | undefined) => {\n const { data, loading, error } = useQuery<{ housingvistaMarketplaceService: MarketplaceService | null }>(\n GET_MARKETPLACE_SERVICE,\n { variables: { id: id ?? '' }, skip: !id }\n );\n return { data: data?.housingvistaMarketplaceService ?? null, loading, error };\n};\n\nexport const useVerifications = (options?: ListOptions<VerificationItemFilterInput>) => {\n const { data, loading, error, refetch } = useQuery<{ housingvistaVerificationItems: VerificationItem[] }>(\n GET_VERIFICATIONS,\n { variables: { filter: options?.filter, ...getPaginationVariables(options?.pagination) } }\n );\n return { data: data?.housingvistaVerificationItems ?? [], loading, error, refetch };\n};\n\n/**\n * Single verification item. The detail view needs the audit timestamps\n * (`createdAt`/`updatedAt`) that the list type omits, so the result is typed as\n * `VerificationItem` extended with those ISO-string fields.\n */\nexport type VerificationItemDetail = VerificationItem & {\n createdAt: string;\n updatedAt: string;\n};\n\nexport const useVerificationItem = (id: string | undefined) => {\n const { data, loading, error, refetch } = useQuery<{ housingvistaVerificationItem: VerificationItemDetail | null }>(\n GET_VERIFICATION,\n { variables: { id: id ?? '' }, skip: !id }\n );\n return { data: data?.housingvistaVerificationItem ?? null, loading, error, refetch };\n};\n\nexport const useLegalServices = (options?: ListOptions<LegalServiceFilterInput>) => {\n const { data, loading, error, refetch } = useQuery<{ housingvistaLegalServices: LegalService[] }>(\n GET_LEGAL_SERVICES,\n { variables: { filter: options?.filter, ...getPaginationVariables(options?.pagination) } }\n );\n return { data: data?.housingvistaLegalServices ?? [], loading, error, refetch };\n};\n\nexport const useLegalService = (id: string | undefined) => {\n const { data, loading, error } = useQuery<{ housingvistaLegalService: LegalService | null }>(GET_LEGAL_SERVICE, {\n variables: { id: id ?? '' },\n skip: !id,\n });\n return { data: data?.housingvistaLegalService ?? null, loading, error };\n};\n\nexport const useHomeLoans = (pagination?: PaginationInput) => {\n const { data, loading, error } = useQuery<{ housingvistaHomeLoanOffers: HomeLoan[] }>(GET_HOME_LOANS, {\n variables: getPaginationVariables(pagination),\n });\n return { data: data?.housingvistaHomeLoanOffers ?? [], loading, error };\n};\n\nexport const useHomeLoanOffer = (id: string | undefined) => {\n const { data, loading, error } = useQuery<{ housingvistaHomeLoanOffer: HomeLoan | null }>(GET_HOME_LOAN, {\n variables: { id: id ?? '' },\n skip: !id,\n });\n return { data: data?.housingvistaHomeLoanOffer ?? null, loading, error };\n};\n\nexport const useMarketTrends = (pagination?: PaginationInput) => {\n const { data, loading, error } = useQuery<{ housingvistaMarketTrends: MarketTrend[] }>(GET_MARKET_TRENDS, {\n variables: getPaginationVariables(pagination),\n });\n return { data: data?.housingvistaMarketTrends ?? [], loading, error };\n};\n\nexport const useAreaInsights = (pagination?: PaginationInput) => {\n const { data, loading, error } = useQuery<{ housingvistaAreaInsights: AreaInsight[] }>(GET_AREA_INSIGHTS, {\n variables: getPaginationVariables(pagination),\n });\n return { data: data?.housingvistaAreaInsights ?? [], loading, error };\n};\n\nexport const useShortlists = (pagination?: PaginationInput) => {\n const { data, loading, error, refetch } = useQuery<{ housingvistaShortlists: ShortlistRow[] }>(GET_SHORTLISTS, {\n variables: getPaginationVariables(pagination),\n });\n const shortlists = (data?.housingvistaShortlists ?? []).map((row) => ({\n id: row.id,\n propertyId: row.propertyId,\n notes: row.notes ?? undefined,\n createdAt: row.createdAt,\n property: mapProperty(row.property),\n }));\n return { data: shortlists, loading, error, refetch };\n};\n\nexport const useAnalyticsData = (period: AnalyticsPeriod = 'month') => {\n const { data, loading, error } = useQuery<{ housingvistaAnalytics: AnalyticsChartData }>(GET_ANALYTICS, {\n variables: { period },\n });\n return { data: data?.housingvistaAnalytics ?? null, loading, error };\n};\n\n// ---------------------------------------------------------------------------\n// Offers / Viewings / Rental applications / Maintenance — query hooks\n// ---------------------------------------------------------------------------\n\nexport interface OfferRow {\n id: string;\n propertyId: string;\n amount: number;\n counterAmount: number | null;\n currency: string;\n status: 'submitted' | 'countered' | 'accepted' | 'rejected' | 'withdrawn';\n notes: string | null;\n respondedAt: string | null;\n createdAt: string;\n updatedAt: string;\n property: {\n id: string;\n title: string;\n location: { city: string; state: string };\n images: { id: string; url: string; isPrimary: boolean }[];\n price: { amount: number; currency: string };\n } | null;\n}\n\nexport const useOffers = (options?: ListOptions<OfferFilterInput>) => {\n const { data, loading, error, refetch } = useQuery<{ housingvistaOffers: OfferRow[] }>(GET_OFFERS, {\n variables: { filter: options?.filter, ...getPaginationVariables(options?.pagination) },\n });\n return { data: data?.housingvistaOffers ?? [], loading, error, refetch };\n};\n\nexport const useOffer = (id: string | undefined) => {\n const { data, loading, error, refetch } = useQuery<{ housingvistaOffer: OfferRow | null }>(GET_OFFER, {\n variables: { id: id ?? '' },\n skip: !id,\n });\n return { data: data?.housingvistaOffer ?? null, loading, error, refetch };\n};\n\nexport interface ViewingRow {\n id: string;\n propertyId: string;\n scheduledAt: string;\n type: 'in_person' | 'virtual';\n status: 'requested' | 'confirmed' | 'completed' | 'cancelled';\n attendeeName: string | null;\n attendeeEmail: string | null;\n notes: string | null;\n createdAt: string;\n updatedAt: string;\n property: {\n id: string;\n title: string;\n location: { city: string; state: string };\n images: { id: string; url: string; isPrimary: boolean }[];\n } | null;\n}\n\nexport const useViewings = (options?: ListOptions<ViewingFilterInput>) => {\n const { data, loading, error, refetch } = useQuery<{ housingvistaViewings: ViewingRow[] }>(GET_VIEWINGS, {\n variables: { filter: options?.filter, ...getPaginationVariables(options?.pagination) },\n });\n return { data: data?.housingvistaViewings ?? [], loading, error, refetch };\n};\n\nexport const useViewing = (id: string | undefined) => {\n const { data, loading, error, refetch } = useQuery<{ housingvistaViewing: ViewingRow | null }>(GET_VIEWING, {\n variables: { id: id ?? '' },\n skip: !id,\n });\n return { data: data?.housingvistaViewing ?? null, loading, error, refetch };\n};\n\nexport interface RentalApplicationRow {\n id: string;\n rentalUnitId: string;\n applicantName: string;\n applicantEmail: string;\n applicantPhone: string | null;\n monthlyIncome: number | null;\n moveInDate: string | null;\n status: 'submitted' | 'screening' | 'approved' | 'rejected';\n reviewNotes: string | null;\n reviewedAt: string | null;\n createdAt: string;\n updatedAt: string;\n rentalUnit: {\n id: string;\n unitNumber: string;\n propertyTitle: string;\n monthlyRent: number;\n } | null;\n}\n\nexport const useRentalApplications = (options?: ListOptions<RentalApplicationFilterInput>) => {\n const { data, loading, error, refetch } = useQuery<{ housingvistaRentalApplications: RentalApplicationRow[] }>(\n GET_RENTAL_APPLICATIONS,\n { variables: { filter: options?.filter, ...getPaginationVariables(options?.pagination) } }\n );\n return { data: data?.housingvistaRentalApplications ?? [], loading, error, refetch };\n};\n\nexport interface MaintenanceRequestRow {\n id: string;\n propertyId: string | null;\n rentalUnitId: string | null;\n title: string;\n description: string | null;\n category: string;\n priority: 'low' | 'medium' | 'high';\n status: 'open' | 'in_progress' | 'resolved';\n resolutionNotes: string | null;\n resolvedAt: string | null;\n createdAt: string;\n updatedAt: string;\n}\n\nexport const useMaintenanceRequests = (options?: ListOptions<MaintenanceRequestFilterInput>) => {\n const { data, loading, error, refetch } = useQuery<{ housingvistaMaintenanceRequests: MaintenanceRequestRow[] }>(\n GET_MAINTENANCE_REQUESTS,\n { variables: { filter: options?.filter, ...getPaginationVariables(options?.pagination) } }\n );\n return { data: data?.housingvistaMaintenanceRequests ?? [], loading, error, refetch };\n};\n\n// ---------------------------------------------------------------------------\n// Mutation hooks\n// ---------------------------------------------------------------------------\n\nexport interface CreatePropertyInput {\n title: string;\n description?: string;\n status: PropertyStatus;\n type: PropertyType;\n category: string;\n address?: string;\n city: string;\n state: string;\n country?: string;\n pincode?: string;\n neighborhood?: string;\n landmarks?: string[];\n price: number;\n currency?: string;\n priceType?: string;\n /** On update, pass null to clear a stored period; absent/undefined means \"no change\". */\n pricePeriod?: string | null;\n negotiable?: boolean;\n pricePerSqft?: number;\n bedrooms: number;\n bathrooms: number;\n totalArea: number;\n carpetArea?: number;\n builtUpArea?: number;\n floors?: number;\n totalFloors?: number;\n parking?: number;\n balconies?: number;\n furnishingStatus?: string;\n ageOfProperty?: number;\n facing?: string;\n amenities?: { name: string; category: string; available?: boolean }[];\n images?: { url: string; title?: string; type?: string; order?: number; isPrimary?: boolean }[];\n imageUrl?: string;\n /** Optional geo-pin captured in the listing wizard (BOFF-7795). */\n coordinates?: { latitude: number; longitude: number } | null;\n}\n\nexport type UpdatePropertyInput = Partial<CreatePropertyInput>;\n\nexport const useCreateProperty = () => {\n const [mutate, { loading }] = useMutation<\n { createHousingvistaProperty: PropertyRow },\n { input: CreatePropertyInput }\n >(CREATE_PROPERTY, { refetchQueries: ['GetProperties'], awaitRefetchQueries: true });\n const createProperty = async (input: CreatePropertyInput): Promise<Property> => {\n const res = await mutate({ variables: { input } });\n if (!res.data) throw new Error('Property was not created');\n return mapProperty(res.data.createHousingvistaProperty);\n };\n return { createProperty, loading };\n};\n\nexport const useUpdateProperty = () => {\n const [mutate, { loading }] = useMutation<\n { updateHousingvistaProperty: PropertyRow },\n { id: string; input: UpdatePropertyInput }\n >(UPDATE_PROPERTY);\n const updateProperty = async (id: string, input: UpdatePropertyInput): Promise<Property> => {\n const res = await mutate({ variables: { id, input } });\n if (!res.data) throw new Error('Property was not updated');\n return mapProperty(res.data.updateHousingvistaProperty);\n };\n return { updateProperty, loading };\n};\n\nexport const useDeleteProperty = () => {\n const [mutate, { loading }] = useMutation<{ deleteHousingvistaProperty: boolean }, { id: string }>(DELETE_PROPERTY, {\n refetchQueries: ['GetProperties'],\n awaitRefetchQueries: true,\n });\n const deleteProperty = async (id: string): Promise<boolean> => {\n const res = await mutate({ variables: { id } });\n return res.data?.deleteHousingvistaProperty ?? false;\n };\n return { deleteProperty, loading };\n};\n\nexport const useSaveShortlist = () => {\n const [mutate, { loading }] = useMutation<\n { saveHousingvistaShortlist: ShortlistRow },\n { input: { propertyId: string; notes?: string } }\n >(SAVE_SHORTLIST, { refetchQueries: ['GetShortlists'], awaitRefetchQueries: true });\n const saveShortlist = async (propertyId: string, notes?: string) => {\n await mutate({ variables: { input: { propertyId, notes } } });\n };\n return { saveShortlist, loading };\n};\n\nexport const useRemoveShortlist = () => {\n const [mutate, { loading }] = useMutation<{ removeHousingvistaShortlist: boolean }, { propertyId: string }>(\n REMOVE_SHORTLIST,\n { refetchQueries: ['GetShortlists'], awaitRefetchQueries: true }\n );\n const removeShortlist = async (propertyId: string) => {\n await mutate({ variables: { propertyId } });\n };\n return { removeShortlist, loading };\n};\n\nexport interface BookViewingInput {\n propertyId: string;\n scheduledAt: string;\n type?: 'in_person' | 'virtual';\n attendeeName?: string;\n attendeeEmail?: string;\n notes?: string;\n}\n\nexport const useBookViewing = () => {\n const [mutate, { loading }] = useMutation<{ bookHousingvistaViewing: { id: string } }, { input: BookViewingInput }>(\n BOOK_VIEWING\n );\n const bookViewing = async (input: BookViewingInput) => {\n await mutate({ variables: { input } });\n };\n return { bookViewing, loading };\n};\n\nexport const useCancelViewing = () => {\n const [mutate, { loading }] = useMutation<{ cancelHousingvistaViewing: { id: string } }, { id: string }>(\n CANCEL_VIEWING\n );\n const cancelViewing = async (id: string) => {\n await mutate({ variables: { id } });\n };\n return { cancelViewing, loading };\n};\n\nexport interface SubmitOfferInput {\n propertyId: string;\n amount: number;\n currency?: string;\n notes?: string;\n}\n\nexport const useSubmitOffer = () => {\n const [mutate, { loading }] = useMutation<{ submitHousingvistaOffer: { id: string } }, { input: SubmitOfferInput }>(\n SUBMIT_OFFER\n );\n const submitOffer = async (input: SubmitOfferInput) => {\n await mutate({ variables: { input } });\n };\n return { submitOffer, loading };\n};\n\nexport const useRespondOffer = () => {\n const [mutate, { loading }] = useMutation<\n { respondHousingvistaOffer: { id: string } },\n { id: string; input: { action: 'accept' | 'reject' | 'counter'; counterAmount?: number; notes?: string } }\n >(RESPOND_OFFER);\n const respondOffer = async (\n id: string,\n input: { action: 'accept' | 'reject' | 'counter'; counterAmount?: number; notes?: string }\n ) => {\n await mutate({ variables: { id, input } });\n };\n return { respondOffer, loading };\n};\n\nexport interface CreateTransactionInput {\n propertyId: string;\n title: string;\n type: string;\n status: string;\n amount: number;\n currency?: string;\n}\n\nexport const useCreateTransaction = () => {\n const [mutate, { loading }] = useMutation<\n { createHousingvistaTransaction: TransactionRow },\n { input: CreateTransactionInput }\n >(CREATE_TRANSACTION, { refetchQueries: ['GetTransactions'], awaitRefetchQueries: true });\n const createTransaction = async (input: CreateTransactionInput) => {\n await mutate({ variables: { input } });\n };\n return { createTransaction, loading };\n};\n\nexport interface CreateInvestmentInput {\n propertyId: string;\n title: string;\n status: string;\n investmentType: string;\n riskLevel: string;\n totalValue: number;\n startDate?: string;\n maturityDate?: string;\n}\n\nexport const useCreateInvestment = () => {\n const [mutate, { loading }] = useMutation<\n { createHousingvistaInvestment: InvestmentRow },\n { input: CreateInvestmentInput }\n >(CREATE_INVESTMENT, { refetchQueries: ['GetInvestments'], awaitRefetchQueries: true });\n const createInvestment = async (input: CreateInvestmentInput) => {\n await mutate({ variables: { input } });\n };\n return { createInvestment, loading };\n};\n\nexport interface CreateRentalUnitInput {\n propertyId?: string;\n propertyTitle: string;\n unitNumber: string;\n tenantName: string;\n tenantEmail: string;\n tenantPhone?: string;\n monthlyRent: number;\n leaseStart: string;\n leaseEnd: string;\n status: string;\n paymentStatus: string;\n securityDeposit?: number;\n}\n\nexport const useCreateRentalUnit = () => {\n const [mutate, { loading }] = useMutation<\n { createHousingvistaRentalUnit: { id: string } },\n { input: CreateRentalUnitInput }\n >(CREATE_RENTAL_UNIT, { refetchQueries: ['GetRentalUnits'], awaitRefetchQueries: true });\n const createRentalUnit = async (input: CreateRentalUnitInput) => {\n await mutate({ variables: { input } });\n };\n return { createRentalUnit, loading };\n};\n\nexport interface SubmitRentalApplicationInput {\n rentalUnitId: string;\n applicantName: string;\n applicantEmail: string;\n applicantPhone?: string;\n monthlyIncome?: number;\n moveInDate?: string;\n}\n\nexport const useSubmitRentalApplication = () => {\n const [mutate, { loading }] = useMutation<\n { submitHousingvistaRentalApplication: { id: string } },\n { input: SubmitRentalApplicationInput }\n >(SUBMIT_RENTAL_APPLICATION);\n const submitRentalApplication = async (input: SubmitRentalApplicationInput) => {\n await mutate({ variables: { input } });\n };\n return { submitRentalApplication, loading };\n};\n\nexport interface CreateAmcContractInput {\n propertyId?: string;\n propertyTitle: string;\n packageName: string;\n providerName: string;\n monthlyCost: number;\n startDate: string;\n endDate: string;\n nextServiceDate?: string;\n status: string;\n servicesIncluded?: string[];\n}\n\nexport const useCreateAmcContract = () => {\n const [mutate, { loading }] = useMutation<\n { createHousingvistaAmcContract: { id: string } },\n { input: CreateAmcContractInput }\n >(CREATE_AMC_CONTRACT, { refetchQueries: ['GetAmcContracts'], awaitRefetchQueries: true });\n const createAmcContract = async (input: CreateAmcContractInput) => {\n await mutate({ variables: { input } });\n };\n return { createAmcContract, loading };\n};\n\nexport interface CreateMaintenanceRequestInput {\n propertyId?: string;\n rentalUnitId?: string;\n title: string;\n description?: string;\n category: string;\n priority?: 'low' | 'medium' | 'high';\n}\n\nexport const useCreateMaintenanceRequest = () => {\n const [mutate, { loading }] = useMutation<\n { createHousingvistaMaintenanceRequest: { id: string } },\n { input: CreateMaintenanceRequestInput }\n >(CREATE_MAINTENANCE_REQUEST);\n const createMaintenanceRequest = async (input: CreateMaintenanceRequestInput) => {\n await mutate({ variables: { input } });\n };\n return { createMaintenanceRequest, loading };\n};\n\nexport const useCreateVerification = () => {\n const [mutate, { loading }] = useMutation<\n { createHousingvistaVerificationItem: { id: string } },\n { input: CreateVerificationItemInput }\n >(CREATE_VERIFICATION_ITEM, { refetchQueries: ['GetVerifications'], awaitRefetchQueries: true });\n const createVerification = async (input: CreateVerificationItemInput) => {\n await mutate({ variables: { input } });\n };\n return { createVerification, loading };\n};\n\nexport const useApproveVerification = () => {\n const [mutate, { loading }] = useMutation<\n { approveHousingvistaVerificationItem: { id: string } },\n { id: string; notes?: string }\n >(APPROVE_VERIFICATION, { refetchQueries: ['GetVerifications'], awaitRefetchQueries: true });\n const approveVerification = async (id: string, notes?: string) => {\n await mutate({ variables: { id, notes } });\n };\n return { approveVerification, loading };\n};\n\nexport const useRejectVerification = () => {\n const [mutate, { loading }] = useMutation<\n { rejectHousingvistaVerificationItem: { id: string } },\n { id: string; notes?: string }\n >(REJECT_VERIFICATION, { refetchQueries: ['GetVerifications'], awaitRefetchQueries: true });\n const rejectVerification = async (id: string, notes?: string) => {\n await mutate({ variables: { id, notes } });\n };\n return { rejectVerification, loading };\n};\n\n/** RERA review workflow transition (BOFF-4132) — separate from the generic\n * verification review above since RERA is its own regulatory workflow. */\nexport const useUpdatePropertyReraStatus = () => {\n const [mutate, { loading }] = useMutation<\n { updateHousingvistaPropertyReraStatus: { id: string; reraVerificationStatus: ReraVerificationStatus } },\n { id: string; status: ReraVerificationStatus; notes?: string }\n >(UPDATE_PROPERTY_RERA_STATUS, { refetchQueries: ['GetProperties', 'GetProperty'], awaitRefetchQueries: true });\n const updatePropertyReraStatus = async (id: string, status: ReraVerificationStatus, notes?: string) => {\n await mutate({ variables: { id, status, notes } });\n };\n return { updatePropertyReraStatus, loading };\n};\n\n// ---------------------------------------------------------------------------\n// Offer / Viewing owner-side + lifecycle mutation hooks\n// ---------------------------------------------------------------------------\n\nexport const useWithdrawOffer = () => {\n const [mutate, { loading }] = useMutation<{ withdrawHousingvistaOffer: { id: string } }, { id: string }>(\n WITHDRAW_OFFER,\n { refetchQueries: ['GetOffers', 'GetOffer'], awaitRefetchQueries: true }\n );\n const withdrawOffer = async (id: string) => {\n await mutate({ variables: { id } });\n };\n return { withdrawOffer, loading };\n};\n\nexport interface UpdateViewingInput {\n scheduledAt?: string;\n status?: 'requested' | 'confirmed' | 'completed' | 'cancelled';\n type?: 'in_person' | 'virtual';\n attendeeName?: string;\n attendeeEmail?: string;\n notes?: string;\n}\n\nexport const useUpdateViewing = () => {\n const [mutate, { loading }] = useMutation<\n { updateHousingvistaViewing: { id: string } },\n { id: string; input: UpdateViewingInput }\n >(UPDATE_VIEWING, { refetchQueries: ['GetViewings', 'GetViewing'], awaitRefetchQueries: true });\n const updateViewing = async (id: string, input: UpdateViewingInput) => {\n await mutate({ variables: { id, input } });\n };\n return { updateViewing, loading };\n};\n\n// ---------------------------------------------------------------------------\n// Investment update / delete\n// ---------------------------------------------------------------------------\n\nexport interface UpdateInvestmentInput {\n title?: string;\n investmentType?: string;\n status?: string;\n riskLevel?: string;\n totalValue?: number;\n startDate?: string;\n maturityDate?: string;\n}\n\nexport const useUpdateInvestment = () => {\n const [mutate, { loading }] = useMutation<\n { updateHousingvistaInvestment: InvestmentRow },\n { id: string; input: UpdateInvestmentInput }\n >(UPDATE_INVESTMENT, { refetchQueries: ['GetInvestments', 'GetInvestment'], awaitRefetchQueries: true });\n const updateInvestment = async (id: string, input: UpdateInvestmentInput) => {\n await mutate({ variables: { id, input } });\n };\n return { updateInvestment, loading };\n};\n\nexport const useDeleteInvestment = () => {\n const [mutate, { loading }] = useMutation<{ deleteHousingvistaInvestment: boolean }, { id: string }>(\n DELETE_INVESTMENT,\n { refetchQueries: ['GetInvestments'], awaitRefetchQueries: true }\n );\n const deleteInvestment = async (id: string): Promise<boolean> => {\n const res = await mutate({ variables: { id } });\n return res.data?.deleteHousingvistaInvestment ?? false;\n };\n return { deleteInvestment, loading };\n};\n\n// ---------------------------------------------------------------------------\n// Asset create / update / delete\n// ---------------------------------------------------------------------------\n\nexport interface CreateAssetInput {\n title: string;\n type: string;\n category: string;\n location: string;\n currentValue: number;\n purchasePrice: number;\n purchaseDate?: string;\n appreciationPercent?: number;\n rentalYield?: number;\n status: string;\n imageUrl?: string;\n lastValuationDate?: string;\n}\n\nexport const useCreateAsset = () => {\n const [mutate, { loading }] = useMutation<{ createHousingvistaAsset: Asset }, { input: CreateAssetInput }>(\n CREATE_ASSET,\n { refetchQueries: ['GetAssets'], awaitRefetchQueries: true }\n );\n const createAsset = async (input: CreateAssetInput) => {\n await mutate({ variables: { input } });\n };\n return { createAsset, loading };\n};\n\nexport type UpdateAssetInput = Partial<CreateAssetInput>;\n\nexport const useUpdateAsset = () => {\n const [mutate, { loading }] = useMutation<\n { updateHousingvistaAsset: Asset },\n { id: string; input: UpdateAssetInput }\n >(UPDATE_ASSET, { refetchQueries: ['GetAssets', 'GetAsset'], awaitRefetchQueries: true });\n const updateAsset = async (id: string, input: UpdateAssetInput) => {\n await mutate({ variables: { id, input } });\n };\n return { updateAsset, loading };\n};\n\nexport const useDeleteAsset = () => {\n const [mutate, { loading }] = useMutation<{ deleteHousingvistaAsset: boolean }, { id: string }>(DELETE_ASSET, {\n refetchQueries: ['GetAssets'],\n awaitRefetchQueries: true,\n });\n const deleteAsset = async (id: string): Promise<boolean> => {\n const res = await mutate({ variables: { id } });\n return res.data?.deleteHousingvistaAsset ?? false;\n };\n return { deleteAsset, loading };\n};\n\n// ---------------------------------------------------------------------------\n// AMC update / delete\n// ---------------------------------------------------------------------------\n\nexport type UpdateAmcContractInput = Partial<CreateAmcContractInput>;\n\nexport const useUpdateAmcContract = () => {\n const [mutate, { loading }] = useMutation<\n { updateHousingvistaAmcContract: { id: string } },\n { id: string; input: UpdateAmcContractInput }\n >(UPDATE_AMC_CONTRACT, { refetchQueries: ['GetAmcContracts'], awaitRefetchQueries: true });\n const updateAmcContract = async (id: string, input: UpdateAmcContractInput) => {\n await mutate({ variables: { id, input } });\n };\n return { updateAmcContract, loading };\n};\n\nexport const useDeleteAmcContract = () => {\n const [mutate, { loading }] = useMutation<{ deleteHousingvistaAmcContract: boolean }, { id: string }>(\n DELETE_AMC_CONTRACT,\n { refetchQueries: ['GetAmcContracts'], awaitRefetchQueries: true }\n );\n const deleteAmcContract = async (id: string): Promise<boolean> => {\n const res = await mutate({ variables: { id } });\n return res.data?.deleteHousingvistaAmcContract ?? false;\n };\n return { deleteAmcContract, loading };\n};\n\n// ---------------------------------------------------------------------------\n// Transaction update / delete\n// ---------------------------------------------------------------------------\n\nexport interface UpdateTransactionInput {\n title?: string;\n type?: string;\n status?: string;\n amount?: number;\n currency?: string;\n documents?: unknown;\n}\n\nexport const useUpdateTransaction = () => {\n const [mutate, { loading }] = useMutation<\n { updateHousingvistaTransaction: TransactionRow },\n { id: string; input: UpdateTransactionInput }\n >(UPDATE_TRANSACTION, { refetchQueries: ['GetTransactions', 'GetTransaction'], awaitRefetchQueries: true });\n const updateTransaction = async (id: string, input: UpdateTransactionInput) => {\n await mutate({ variables: { id, input } });\n };\n return { updateTransaction, loading };\n};\n\nexport const useDeleteTransaction = () => {\n const [mutate, { loading }] = useMutation<{ deleteHousingvistaTransaction: boolean }, { id: string }>(\n DELETE_TRANSACTION,\n { refetchQueries: ['GetTransactions'], awaitRefetchQueries: true }\n );\n const deleteTransaction = async (id: string): Promise<boolean> => {\n const res = await mutate({ variables: { id } });\n return res.data?.deleteHousingvistaTransaction ?? false;\n };\n return { deleteTransaction, loading };\n};\n\n// ---------------------------------------------------------------------------\n// Maintenance resolve + Rental-application review\n// ---------------------------------------------------------------------------\n\nexport const useResolveMaintenanceRequest = () => {\n const [mutate, { loading }] = useMutation<\n { resolveHousingvistaMaintenanceRequest: MaintenanceRequestRow },\n { id: string; resolutionNotes?: string }\n >(RESOLVE_MAINTENANCE, { refetchQueries: ['GetMaintenanceRequests'], awaitRefetchQueries: true });\n const resolveMaintenanceRequest = async (id: string, resolutionNotes?: string) => {\n await mutate({ variables: { id, resolutionNotes } });\n };\n return { resolveMaintenanceRequest, loading };\n};\n\nexport interface ReviewRentalApplicationInput {\n decision: 'approved' | 'rejected' | 'screening' | 'submitted';\n reviewNotes?: string;\n}\n\nexport const useReviewRentalApplication = () => {\n const [mutate, { loading }] = useMutation<\n { reviewHousingvistaRentalApplication: RentalApplicationRow },\n { id: string; input: ReviewRentalApplicationInput }\n >(REVIEW_RENTAL_APPLICATION, { refetchQueries: ['GetRentalApplications'], awaitRefetchQueries: true });\n const reviewRentalApplication = async (id: string, input: ReviewRentalApplicationInput) => {\n await mutate({ variables: { id, input } });\n };\n return { reviewRentalApplication, loading };\n};\n\n// ---------------------------------------------------------------------------\n// Platform-service reuse (conversations / files) — re-exported from ./platform\n// ---------------------------------------------------------------------------\n\nexport {\n useContactConversation,\n useSendMessage,\n useSendContextMessage,\n useConversationMessages,\n useEntityComments,\n useCreateEntityComment,\n useFileUpload,\n} from './platform';\nexport type {\n HvContextTarget,\n HvConversationMessage,\n HvConversationSourceContext,\n HvEntityComment,\n HvMessageAttachment,\n HvUploadedFile,\n} from './platform';\n\n// Analytics\nexport { useHousingVistaAnalytics } from './useHousingVistaAnalytics';\n"],"mappings":";;;;;AAyKA,IAAM,IAAqD;CAAE,OAAO;CAAI,QAAQ;CAAG,EAE7E,KAA0B,IAA8B,OAA6B,EACzF,YAAY;CACV,OAAO,EAAW,SAAS,EAAwB;CACnD,QAAQ,EAAW,UAAU,EAAwB;CACtD,EACF,GAMK,IAAsB,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCzB,IAAkB,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqErB,IAAiB,CAAG;IACtB,EAAgB;;;;;;GAQd,IAAe,CAAG;IACpB,EAAgB;;;;;;GAQd,IAAqB,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDxB,IAAmB,CAAG;IACxB,EAAmB;;;;;;GAQjB,KAAkB,CAAG;IACvB,EAAmB;;;;;;GAQjB,IAAoB,CAAG;;;;;;;;;;;;;;;;;;;;;GAuBvB,IAAkB,CAAG;IACvB,EAAkB;;;;;;GAQhB,IAAiB,CAAG;IACtB,EAAkB;;;;;;GAQhB,IAAmB,CAAG;;;;;;;;;;;;;;;;;;;GAqBtB,IAAe,CAAG;;;;;;;;;;;;;;;;GAkBlB,IAAa,CAAG;IAClB,EAAa;;;;;;GAQX,IAAY,CAAG;IACjB,EAAa;;;;;;GAQX,IAAoB,CAAG;;;;;;;;;;;;;;;;GAkBvB,IAA6B,CAAG;;;;;;;;;;;;;;;;GAkBhC,KAA2B,CAAG;IAChC,EAA2B;;;;;;;;;GAWzB,KAA0B,CAAG;IAC/B,EAA2B;;;;;;GAQzB,IAAsB,CAAG;;;;;;;;;;;;;;GAgBzB,IAAoB,CAAG;IACzB,EAAoB;;;;;;GAQlB,IAAmB,CAAG;IACxB,EAAoB;;;;;;GAQlB,IAAuB,CAAG;;;;;;;;;;;;;;GAgB1B,IAAqB,CAAG;IAC1B,EAAqB;;;;;;GAQnB,IAAoB,CAAG;IACzB,EAAqB;;;;;;GAQnB,IAAmB,CAAG;;;;;;;;;;;;;;;GAiBtB,IAAiB,CAAG;IACtB,EAAiB;;;;;;GAQf,IAAgB,CAAG;IACrB,EAAiB;;;;;;GAQf,IAAoB,CAAG;;;;;;;;;;;GAavB,IAAoB,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCvB,IAAgB,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BnB,IAAmB,CAAG;IACxB,EAAgB;;;;;;;;;;GAYd,IAAiB,CAAG;IACtB,EAAiB;;;;;;GAQf,IAAe,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgClB,IAAa,CAAG;IAClB,EAAa;;;;;;;AAQC,CAAG;IACjB,EAAa;;;;;;;AAQjB,IAAM,IAAiB,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BpB,IAAe,CAAG;IACpB,EAAe;;;;;;;AAQC,CAAG;IACnB,EAAe;;;;;;;AAQnB,IAAM,IAA4B,CAAG;;;;;;;;;;;;;;;;;;;;;GAuB/B,IAA0B,CAAG;IAC/B,EAA0B;;;;;;;;;GAWxB,IAAqB,CAAG;;;;;;;;;;;;;;;GAiBxB,IAA2B,CAAG;IAChC,EAAmB;;;;;;;;;GAejB,IAAkB,CAAG;IACvB,EAAgB;;;;;;GAQd,IAAkB,CAAG;IACvB,EAAgB;;;;;;GAQd,IAAkB,CAAG;;;;GAMrB,IAAiB,CAAG;IACtB,EAAiB;;;;;;GAQf,IAAmB,CAAG;;;;GAMtB,IAAe,CAAG;;;;;;;;;;;;;GAelB,IAAiB,CAAG;;;;;;;GASpB,IAAe,CAAG;;;;;;;;;;;;GAclB,IAAgB,CAAG;;;;;;;;;GAWnB,KAAqB,CAAG;IAC1B,EAAmB;;;;;;GAQjB,KAAoB,CAAG;IACzB,EAAkB;;;;;;GAQhB,KAAqB,CAAG;;;;;;;;;;;GAaxB,KAA4B,CAAG;;;;;;;;;GAW/B,KAAsB,CAAG;;;;;;;;;;;GAazB,KAA6B,CAAG;;;;;;;;;;GAYhC,KAA2B,CAAG;;;;;;;;GAU9B,KAAuB,CAAG;;;;;;;;;GAW1B,KAAsB,CAAG;;;;;;;;;GAWzB,KAA8B,CAAG;;;;;;;;;;;;GAcjC,KAAiB,CAAG;;;;;;;GASpB,KAAiB,CAAG;;;;;;;;;;GAYpB,KAAoB,CAAG;IACzB,EAAkB;;;;;;GAQhB,KAAoB,CAAG;;;;GAMvB,KAAe,CAAG;IACpB,EAAa;;;;;;;AAQI,CAAG;IACpB,EAAa;;;;;;GAQI,CAAG;;;;GAMI,CAAG;;;;;;;;;;GAYH,CAAG;;;;;AAM/B,IAAM,KAAqB,CAAG;IAC1B,EAAmB;;;;;;;AAQI,CAAG;;;;;AAM9B,IAAM,KAAsB,CAAG;IAC3B,EAAmB;;;;;;GAQjB,IAA4B,CAAG;IACjC,EAA0B;;;;;;GAgGxB,KAAe,OAAgC;CACnD,IAAI,EAAI;CACR,OAAO,EAAI;CACX,aAAa,EAAI,eAAe;CAChC,MAAM,EAAI;CACV,QAAQ,EAAI;CACZ,UAAU,EAAI;CACd,OAAO,EAAI;CACX,UAAU;EACR,GAAG,EAAI;EACP,aAAa,EAAI,SAAS,eAAe;GAAE,UAAU;GAAG,WAAW;GAAG;EACvE;CACD,gBAAgB,EAAI;CACpB,WAAW,EAAI,aAAa,EAAE;CAC9B,QAAQ,EAAI,UAAU,EAAE;CACxB,WAAW,EAAE;CACb,cAAc,EAAE;CAChB,OAAO;EAAE,IAAI;EAAI,MAAM;EAAI,OAAO;EAAI,OAAO;EAAI,UAAU;EAAO;CAClE,UAAU,EAAE;CACZ,oBAAqB,EAAI,sBAAyD;CAClF,cAAc,EAAE,WAAW,IAAM;CACjC,WAAW,IAAI,KAAK,EAAI,UAAU;CAClC,WAAW,IAAI,KAAK,EAAI,UAAU;CAClC,oBAAoB,EAAI;CACxB,eAAe,EAAI;CACnB,kBAAkB,EAAI,mBAAmB,IAAI,KAAK,EAAI,iBAAiB,GAAG;CAC1E,SAAS,EAAI;CACb,wBAAwB,EAAI,0BAA0B;CACvD,GAMK,KAA+B;CACnC,iBAAiB,EAAE;CACnB,gBAAgB,EAAE;CAClB,eAAe,EAAE;CACjB,oBAAoB,EAAE;CACvB,EAEY,WAA0B;CACrC,IAAM,EAAE,SAAM,YAAS,aAAU,EAAyD,EAAoB,EACxG,IAAwB;EAC5B,iBAAiB;EACjB,YAAY;EACZ,eAAe;EACf,gBAAgB;EAChB,oBAAoB;EACpB,sBAAsB;EACtB,kBAAkB;EAClB,mBAAmB;EACnB,cAAc;EACd,qBAAqB;EACrB,gBAAgB;EAChB,kBAAkB;EAClB,QAAQ;EACT;AACD,QAAO;EAAE,MAAM,GAAM,8BAA8B;EAAO;EAAS;EAAO;GAG/D,MAAuB,MAAiC;CACnE,IAAM,EAAE,SAAM,YAAS,aAAU,EAAyD,GAAkB,EAC1G,WAAW,EAAuB,EAAW,EAC9C,CAAC;AAgBF,QAAO;EAAE,OAf6B,GAAM,4BAA4B,EAAE,EAAE,KAAK,OAAS;GACxF,IAAI,OAAO,EAAI;GACf,MAAM;GACN,OAAO,gBAAgB,EAAI;GAC3B,aAAa,GAAG,EAAI,UAAU,SAAS,WAAW,KAAK,EAAI;GAC3D,WAAW,EAAI,aAAa,EAAI;GAChC,UAAU,EAAI;GACd,YAAY;GACZ,WAAW,EAAI,QACX,GAAG,EAAI,MAAM,aAAa,GAAG,GAAG,EAAI,MAAM,YAAY,KAAK,MAAM,GACjE,EAAI,SACF,GAAG,EAAI,OAAO,aAAa,GAAG,GAAG,EAAI,OAAO,YAAY,KAAK,MAAM,GACnE;GACN,aAAa,EAAI,OAAO,UAAU,EAAI,QAAQ,UAAU,KAAA;GACzD,EAAE;EACwB;EAAS;EAAO;GAGhC,MAAiB,MAIxB;CACJ,IAAM,EAAE,SAAM,YAAS,UAAO,eAAY,EAAoD,GAAgB;EAC5G,WAAW;GACT,QAAQ,GAAS;GACjB,GAAG,EAAuB,GAAS,WAAW;GAC/C;EACD,MAAM,GAAS;EAChB,CAAC;AACF,QAAO;EACL,OAAO,GAAM,0BAA0B,EAAE,EAAE,IAAI,EAAY;EAC3D;EACA;EACA;EACD;GAGU,MAAe,MAA2B;CACrD,IAAM,EAAE,SAAM,YAAS,aAAU,EAAuD,GAAc;EACpG,WAAW,EAAE,IAAI,KAAM,IAAI;EAC3B,MAAM,CAAC;EACR,CAAC;AACF,QAAO;EACL,MAAM,GAAM,uBAAuB,EAAY,EAAK,qBAAqB,GAAG;EAC5E;EACA;EACD;GA4BG,KAAuB,CAAG;IAC5B,EAAgB;;;;;;;;;;;;;;;;;;;;;;GAwBP,WAAiC;CAC5C,IAAM,CAAC,GAAK,EAAE,SAAM,YAAS,cAAW,EAGtC,GAAqB,EAEjB,KAAU,GAAe,MAAiC,EAAI,EAAE,WAAW;EAAE;EAAO;EAAY,EAAE,CAAC,EAEnG,IAAS,GAAM;AACrB,QAAO;EACL;EACA;EACA;EACA,QAAQ,GAAQ,UAAU;EAC1B,gBAAgB,GAAQ,kBAAkB;EAC1C,QAAQ,GAAQ,UAAU;EAC1B,aAAa,GAAQ,cAAc,EAAE,EAAE,IAAI,EAAY;EACxD;GAGU,MAAmB,MAAkD;CAChF,IAAM,EAAE,SAAM,YAAS,UAAO,eAAY,EAAyD,GAAkB,EACnH,WAAW;EAAE,QAAQ,GAAS;EAAQ,GAAG,EAAuB,GAAS,WAAW;EAAE,EACvF,CAAC;AAGF,QAAO;EAAE,MAAO,GAAM,4BAA4B,EAAE;EAA+B;EAAS;EAAO;EAAS;GAGjG,MAAkB,MAA2B;CACxD,IAAM,EAAE,SAAM,YAAS,aAAU,EAA6D,IAAiB;EAC7G,WAAW,EAAE,IAAI,KAAM,IAAI;EAC3B,MAAM,CAAC;EACR,CAAC;AACF,QAAO;EACL,MAAO,GAAM,2BAA2B;EACxC;EACA;EACD;GAGU,MAAkB,MAAiD;CAC9E,IAAM,EAAE,SAAM,YAAS,UAAO,eAAY,EAAuD,GAAiB,EAChH,WAAW;EAAE,QAAQ,GAAS;EAAQ,GAAG,EAAuB,GAAS,WAAW;EAAE,EACvF,CAAC;AACF,QAAO;EAAE,MAAO,GAAM,2BAA2B,EAAE;EAA8B;EAAS;EAAO;EAAS;GAG/F,MAAiB,MAA2B;CACvD,IAAM,EAAE,SAAM,YAAS,aAAU,EAA2D,GAAgB;EAC1G,WAAW,EAAE,IAAI,KAAM,IAAI;EAC3B,MAAM,CAAC;EACR,CAAC;AACF,QAAO;EAAE,MAAO,GAAM,0BAA0B;EAAuC;EAAS;EAAO;GAG5F,MAAkB,MAAiD;CAC9E,IAAM,EAAE,SAAM,YAAS,UAAO,eAAY,EAAoD,GAAkB,EAC9G,WAAW;EAAE,QAAQ,GAAS;EAAQ,GAAG,EAAuB,GAAS,WAAW;EAAE,EACvF,CAAC;AACF,QAAO;EAAE,MAAM,GAAM,2BAA2B,EAAE;EAAE;EAAS;EAAO;EAAS;GAGlE,MAAa,MAA4C;CACpE,IAAM,EAAE,SAAM,YAAS,UAAO,eAAY,EAA0C,GAAY,EAC9F,WAAW;EAAE,QAAQ,GAAS;EAAQ,GAAG,EAAuB,GAAS,WAAW;EAAE,EACvF,CAAC;AACF,QAAO;EAAE,MAAM,GAAM,sBAAsB,EAAE;EAAE;EAAS;EAAO;EAAS;GAG7D,MAAY,MAA2B;CAClD,IAAM,EAAE,SAAM,YAAS,aAAU,EAA8C,GAAW;EACxF,WAAW,EAAE,IAAI,KAAM,IAAI;EAC3B,MAAM,CAAC;EACR,CAAC;AACF,QAAO;EAAE,MAAM,GAAM,qBAAqB;EAAM;EAAS;EAAO;GAGrD,MAAmB,MAAkD;CAChF,IAAM,EAAE,SAAM,YAAS,UAAO,eAAY,EAAsD,GAAmB,EACjH,WAAW;EAAE,QAAQ,GAAS;EAAQ,GAAG,EAAuB,GAAS,WAAW;EAAE,EACvF,CAAC;AACF,QAAO;EAAE,MAAM,GAAM,4BAA4B,EAAE;EAAE;EAAS;EAAO;EAAS;GAGnE,MAA0B,MAAyD;CAC9F,IAAM,EAAE,SAAM,YAAS,UAAO,eAAY,EACxC,IACA,EAAE,WAAW;EAAE,QAAQ,GAAS;EAAQ,GAAG,EAAuB,GAAS,WAAW;EAAE,EAAE,CAC3F;AACD,QAAO;EAAE,MAAM,GAAM,mCAAmC,EAAE;EAAE;EAAS;EAAO;EAAS;GAG1E,MAAyB,MAA2B;CAC/D,IAAM,EAAE,SAAM,YAAS,aAAU,EAC/B,IACA;EAAE,WAAW,EAAE,IAAI,KAAM,IAAI;EAAE,MAAM,CAAC;EAAI,CAC3C;AACD,QAAO;EAAE,MAAM,GAAM,kCAAkC;EAAM;EAAS;EAAO;GAGlE,MAAoB,MAAuD;CACtF,IAAM,EAAE,SAAM,YAAS,UAAO,eAAY,EACxC,GACA,EAAE,WAAW;EAAE,QAAQ,GAAS;EAAQ,GAAG,EAAuB,GAAS,WAAW;EAAE,EAAE,CAC3F;AACD,QAAO;EAAE,MAAM,GAAM,iCAAiC,EAAE;EAAE;EAAS;EAAO;EAAS;GAaxE,MAAuB,MAA2B;CAC7D,IAAM,EAAE,SAAM,YAAS,UAAO,eAAY,EACxC,GACA;EAAE,WAAW,EAAE,IAAI,KAAM,IAAI;EAAE,MAAM,CAAC;EAAI,CAC3C;AACD,QAAO;EAAE,MAAM,GAAM,gCAAgC;EAAM;EAAS;EAAO;EAAS;GAGzE,MAAoB,MAAmD;CAClF,IAAM,EAAE,SAAM,YAAS,UAAO,eAAY,EACxC,GACA,EAAE,WAAW;EAAE,QAAQ,GAAS;EAAQ,GAAG,EAAuB,GAAS,WAAW;EAAE,EAAE,CAC3F;AACD,QAAO;EAAE,MAAM,GAAM,6BAA6B,EAAE;EAAE;EAAS;EAAO;EAAS;GAGpE,MAAmB,MAA2B;CACzD,IAAM,EAAE,SAAM,YAAS,aAAU,EAA4D,GAAmB;EAC9G,WAAW,EAAE,IAAI,KAAM,IAAI;EAC3B,MAAM,CAAC;EACR,CAAC;AACF,QAAO;EAAE,MAAM,GAAM,4BAA4B;EAAM;EAAS;EAAO;GAG5D,MAAgB,MAAiC;CAC5D,IAAM,EAAE,SAAM,YAAS,aAAU,EAAqD,GAAgB,EACpG,WAAW,EAAuB,EAAW,EAC9C,CAAC;AACF,QAAO;EAAE,MAAM,GAAM,8BAA8B,EAAE;EAAE;EAAS;EAAO;GAG5D,MAAoB,MAA2B;CAC1D,IAAM,EAAE,SAAM,YAAS,aAAU,EAAyD,GAAe;EACvG,WAAW,EAAE,IAAI,KAAM,IAAI;EAC3B,MAAM,CAAC;EACR,CAAC;AACF,QAAO;EAAE,MAAM,GAAM,6BAA6B;EAAM;EAAS;EAAO;GAG7D,MAAmB,MAAiC;CAC/D,IAAM,EAAE,SAAM,YAAS,aAAU,EAAsD,GAAmB,EACxG,WAAW,EAAuB,EAAW,EAC9C,CAAC;AACF,QAAO;EAAE,MAAM,GAAM,4BAA4B,EAAE;EAAE;EAAS;EAAO;GAG1D,MAAmB,MAAiC;CAC/D,IAAM,EAAE,SAAM,YAAS,aAAU,EAAsD,GAAmB,EACxG,WAAW,EAAuB,EAAW,EAC9C,CAAC;AACF,QAAO;EAAE,MAAM,GAAM,4BAA4B,EAAE;EAAE;EAAS;EAAO;GAG1D,MAAiB,MAAiC;CAC7D,IAAM,EAAE,SAAM,YAAS,UAAO,eAAY,EAAqD,GAAgB,EAC7G,WAAW,EAAuB,EAAW,EAC9C,CAAC;AAQF,QAAO;EAAE,OAPW,GAAM,0BAA0B,EAAE,EAAE,KAAK,OAAS;GACpE,IAAI,EAAI;GACR,YAAY,EAAI;GAChB,OAAO,EAAI,SAAS,KAAA;GACpB,WAAW,EAAI;GACf,UAAU,EAAY,EAAI,SAAS;GACpC,EAAE;EACwB;EAAS;EAAO;EAAS;GAGzC,MAAoB,IAA0B,YAAY;CACrE,IAAM,EAAE,SAAM,YAAS,aAAU,EAAwD,GAAe,EACtG,WAAW,EAAE,WAAQ,EACtB,CAAC;AACF,QAAO;EAAE,MAAM,GAAM,yBAAyB;EAAM;EAAS;EAAO;GA2BzD,MAAa,MAA4C;CACpE,IAAM,EAAE,SAAM,YAAS,UAAO,eAAY,EAA6C,GAAY,EACjG,WAAW;EAAE,QAAQ,GAAS;EAAQ,GAAG,EAAuB,GAAS,WAAW;EAAE,EACvF,CAAC;AACF,QAAO;EAAE,MAAM,GAAM,sBAAsB,EAAE;EAAE;EAAS;EAAO;EAAS;GA8B7D,MAAe,MAA8C;CACxE,IAAM,EAAE,SAAM,YAAS,UAAO,eAAY,EAAiD,GAAc,EACvG,WAAW;EAAE,QAAQ,GAAS;EAAQ,GAAG,EAAuB,GAAS,WAAW;EAAE,EACvF,CAAC;AACF,QAAO;EAAE,MAAM,GAAM,wBAAwB,EAAE;EAAE;EAAS;EAAO;EAAS;GAgC/D,MAAyB,MAAwD;CAC5F,IAAM,EAAE,SAAM,YAAS,UAAO,eAAY,EACxC,GACA,EAAE,WAAW;EAAE,QAAQ,GAAS;EAAQ,GAAG,EAAuB,GAAS,WAAW;EAAE,EAAE,CAC3F;AACD,QAAO;EAAE,MAAM,GAAM,kCAAkC,EAAE;EAAE;EAAS;EAAO;EAAS;GAkBzE,MAA0B,MAAyD;CAC9F,IAAM,EAAE,SAAM,YAAS,UAAO,eAAY,EACxC,GACA,EAAE,WAAW;EAAE,QAAQ,GAAS;EAAQ,GAAG,EAAuB,GAAS,WAAW;EAAE,EAAE,CAC3F;AACD,QAAO;EAAE,MAAM,GAAM,mCAAmC,EAAE;EAAE;EAAS;EAAO;EAAS;GAgD1E,WAA0B;CACrC,IAAM,CAAC,GAAQ,EAAE,gBAAa,EAG5B,GAAiB;EAAE,gBAAgB,CAAC,gBAAgB;EAAE,qBAAqB;EAAM,CAAC;AAMpF,QAAO;EAAE,gBALc,OAAO,MAAkD;GAC9E,IAAM,IAAM,MAAM,EAAO,EAAE,WAAW,EAAE,UAAO,EAAE,CAAC;AAClD,OAAI,CAAC,EAAI,KAAM,OAAU,MAAM,2BAA2B;AAC1D,UAAO,EAAY,EAAI,KAAK,2BAA2B;;EAEhC;EAAS;GAGvB,WAA0B;CACrC,IAAM,CAAC,GAAQ,EAAE,gBAAa,EAG5B,EAAgB;AAMlB,QAAO;EAAE,gBALc,OAAO,GAAY,MAAkD;GAC1F,IAAM,IAAM,MAAM,EAAO,EAAE,WAAW;IAAE;IAAI;IAAO,EAAE,CAAC;AACtD,OAAI,CAAC,EAAI,KAAM,OAAU,MAAM,2BAA2B;AAC1D,UAAO,EAAY,EAAI,KAAK,2BAA2B;;EAEhC;EAAS;GAGvB,WAA0B;CACrC,IAAM,CAAC,GAAQ,EAAE,gBAAa,EAAqE,GAAiB;EAClH,gBAAgB,CAAC,gBAAgB;EACjC,qBAAqB;EACtB,CAAC;AAKF,QAAO;EAAE,gBAJc,OAAO,OAChB,MAAM,EAAO,EAAE,WAAW,EAAE,OAAI,EAAE,CAAC,EACpC,MAAM,8BAA8B;EAExB;EAAS;GAGvB,WAAyB;CACpC,IAAM,CAAC,GAAQ,EAAE,gBAAa,EAG5B,GAAgB;EAAE,gBAAgB,CAAC,gBAAgB;EAAE,qBAAqB;EAAM,CAAC;AAInF,QAAO;EAAE,eAHa,OAAO,GAAoB,MAAmB;AAClE,SAAM,EAAO,EAAE,WAAW,EAAE,OAAO;IAAE;IAAY;IAAO,EAAE,EAAE,CAAC;;EAEvC;EAAS;GAGtB,WAA2B;CACtC,IAAM,CAAC,GAAQ,EAAE,gBAAa,EAC5B,GACA;EAAE,gBAAgB,CAAC,gBAAgB;EAAE,qBAAqB;EAAM,CACjE;AAID,QAAO;EAAE,iBAHe,OAAO,MAAuB;AACpD,SAAM,EAAO,EAAE,WAAW,EAAE,eAAY,EAAE,CAAC;;EAEnB;EAAS;GAYxB,WAAuB;CAClC,IAAM,CAAC,GAAQ,EAAE,gBAAa,EAC5B,EACD;AAID,QAAO;EAAE,aAHW,OAAO,MAA4B;AACrD,SAAM,EAAO,EAAE,WAAW,EAAE,UAAO,EAAE,CAAC;;EAElB;EAAS;GAGpB,WAAyB;CACpC,IAAM,CAAC,GAAQ,EAAE,gBAAa,EAC5B,EACD;AAID,QAAO;EAAE,eAHa,OAAO,MAAe;AAC1C,SAAM,EAAO,EAAE,WAAW,EAAE,OAAI,EAAE,CAAC;;EAEb;EAAS;GAUtB,WAAuB;CAClC,IAAM,CAAC,GAAQ,EAAE,gBAAa,EAC5B,EACD;AAID,QAAO;EAAE,aAHW,OAAO,MAA4B;AACrD,SAAM,EAAO,EAAE,WAAW,EAAE,UAAO,EAAE,CAAC;;EAElB;EAAS;GAGpB,WAAwB;CACnC,IAAM,CAAC,GAAQ,EAAE,gBAAa,EAG5B,EAAc;AAOhB,QAAO;EAAE,cANY,OACnB,GACA,MACG;AACH,SAAM,EAAO,EAAE,WAAW;IAAE;IAAI;IAAO,EAAE,CAAC;;EAErB;EAAS;GAYrB,WAA6B;CACxC,IAAM,CAAC,GAAQ,EAAE,gBAAa,EAG5B,IAAoB;EAAE,gBAAgB,CAAC,kBAAkB;EAAE,qBAAqB;EAAM,CAAC;AAIzF,QAAO;EAAE,mBAHiB,OAAO,MAAkC;AACjE,SAAM,EAAO,EAAE,WAAW,EAAE,UAAO,EAAE,CAAC;;EAEZ;EAAS;GAc1B,WAA4B;CACvC,IAAM,CAAC,GAAQ,EAAE,gBAAa,EAG5B,IAAmB;EAAE,gBAAgB,CAAC,iBAAiB;EAAE,qBAAqB;EAAM,CAAC;AAIvF,QAAO;EAAE,kBAHgB,OAAO,MAAiC;AAC/D,SAAM,EAAO,EAAE,WAAW,EAAE,UAAO,EAAE,CAAC;;EAEb;EAAS;GAkBzB,WAA4B;CACvC,IAAM,CAAC,GAAQ,EAAE,gBAAa,EAG5B,IAAoB;EAAE,gBAAgB,CAAC,iBAAiB;EAAE,qBAAqB;EAAM,CAAC;AAIxF,QAAO;EAAE,kBAHgB,OAAO,MAAiC;AAC/D,SAAM,EAAO,EAAE,WAAW,EAAE,UAAO,EAAE,CAAC;;EAEb;EAAS;GAYzB,WAAmC;CAC9C,IAAM,CAAC,GAAQ,EAAE,gBAAa,EAG5B,GAA0B;AAI5B,QAAO;EAAE,yBAHuB,OAAO,MAAwC;AAC7E,SAAM,EAAO,EAAE,WAAW,EAAE,UAAO,EAAE,CAAC;;EAEN;EAAS;GAgBhC,WAA6B;CACxC,IAAM,CAAC,GAAQ,EAAE,gBAAa,EAG5B,IAAqB;EAAE,gBAAgB,CAAC,kBAAkB;EAAE,qBAAqB;EAAM,CAAC;AAI1F,QAAO;EAAE,mBAHiB,OAAO,MAAkC;AACjE,SAAM,EAAO,EAAE,WAAW,EAAE,UAAO,EAAE,CAAC;;EAEZ;EAAS;GAY1B,WAAoC;CAC/C,IAAM,CAAC,GAAQ,EAAE,gBAAa,EAG5B,GAA2B;AAI7B,QAAO;EAAE,0BAHwB,OAAO,MAAyC;AAC/E,SAAM,EAAO,EAAE,WAAW,EAAE,UAAO,EAAE,CAAC;;EAEL;EAAS;GAGjC,WAA8B;CACzC,IAAM,CAAC,GAAQ,EAAE,gBAAa,EAG5B,IAA0B;EAAE,gBAAgB,CAAC,mBAAmB;EAAE,qBAAqB;EAAM,CAAC;AAIhG,QAAO;EAAE,oBAHkB,OAAO,MAAuC;AACvE,SAAM,EAAO,EAAE,WAAW,EAAE,UAAO,EAAE,CAAC;;EAEX;EAAS;GAG3B,WAA+B;CAC1C,IAAM,CAAC,GAAQ,EAAE,gBAAa,EAG5B,IAAsB;EAAE,gBAAgB,CAAC,mBAAmB;EAAE,qBAAqB;EAAM,CAAC;AAI5F,QAAO;EAAE,qBAHmB,OAAO,GAAY,MAAmB;AAChE,SAAM,EAAO,EAAE,WAAW;IAAE;IAAI;IAAO,EAAE,CAAC;;EAEd;EAAS;GAG5B,WAA8B;CACzC,IAAM,CAAC,GAAQ,EAAE,gBAAa,EAG5B,IAAqB;EAAE,gBAAgB,CAAC,mBAAmB;EAAE,qBAAqB;EAAM,CAAC;AAI3F,QAAO;EAAE,oBAHkB,OAAO,GAAY,MAAmB;AAC/D,SAAM,EAAO,EAAE,WAAW;IAAE;IAAI;IAAO,EAAE,CAAC;;EAEf;EAAS;GAK3B,WAAoC;CAC/C,IAAM,CAAC,GAAQ,EAAE,gBAAa,EAG5B,IAA6B;EAAE,gBAAgB,CAAC,iBAAiB,cAAc;EAAE,qBAAqB;EAAM,CAAC;AAI/G,QAAO;EAAE,0BAHwB,OAAO,GAAY,GAAgC,MAAmB;AACrG,SAAM,EAAO,EAAE,WAAW;IAAE;IAAI;IAAQ;IAAO,EAAE,CAAC;;EAEjB;EAAS;GAOjC,WAAyB;CACpC,IAAM,CAAC,GAAQ,EAAE,gBAAa,EAC5B,IACA;EAAE,gBAAgB,CAAC,aAAa,WAAW;EAAE,qBAAqB;EAAM,CACzE;AAID,QAAO;EAAE,eAHa,OAAO,MAAe;AAC1C,SAAM,EAAO,EAAE,WAAW,EAAE,OAAI,EAAE,CAAC;;EAEb;EAAS;GAYtB,WAAyB;CACpC,IAAM,CAAC,GAAQ,EAAE,gBAAa,EAG5B,IAAgB;EAAE,gBAAgB,CAAC,eAAe,aAAa;EAAE,qBAAqB;EAAM,CAAC;AAI/F,QAAO;EAAE,eAHa,OAAO,GAAY,MAA8B;AACrE,SAAM,EAAO,EAAE,WAAW;IAAE;IAAI;IAAO,EAAE,CAAC;;EAEpB;EAAS;GAiBtB,WAA4B;CACvC,IAAM,CAAC,GAAQ,EAAE,gBAAa,EAG5B,IAAmB;EAAE,gBAAgB,CAAC,kBAAkB,gBAAgB;EAAE,qBAAqB;EAAM,CAAC;AAIxG,QAAO;EAAE,kBAHgB,OAAO,GAAY,MAAiC;AAC3E,SAAM,EAAO,EAAE,WAAW;IAAE;IAAI;IAAO,EAAE,CAAC;;EAEjB;EAAS;GAGzB,WAA4B;CACvC,IAAM,CAAC,GAAQ,EAAE,gBAAa,EAC5B,IACA;EAAE,gBAAgB,CAAC,iBAAiB;EAAE,qBAAqB;EAAM,CAClE;AAKD,QAAO;EAAE,kBAJgB,OAAO,OAClB,MAAM,EAAO,EAAE,WAAW,EAAE,OAAI,EAAE,CAAC,EACpC,MAAM,gCAAgC;EAExB;EAAS;GAsBzB,WAAuB;CAClC,IAAM,CAAC,GAAQ,EAAE,gBAAa,EAC5B,IACA;EAAE,gBAAgB,CAAC,YAAY;EAAE,qBAAqB;EAAM,CAC7D;AAID,QAAO;EAAE,aAHW,OAAO,MAA4B;AACrD,SAAM,EAAO,EAAE,WAAW,EAAE,UAAO,EAAE,CAAC;;EAElB;EAAS;GAsEpB,WAA6B;CACxC,IAAM,CAAC,GAAQ,EAAE,gBAAa,EAG5B,IAAoB;EAAE,gBAAgB,CAAC,mBAAmB,iBAAiB;EAAE,qBAAqB;EAAM,CAAC;AAI3G,QAAO;EAAE,mBAHiB,OAAO,GAAY,MAAkC;AAC7E,SAAM,EAAO,EAAE,WAAW;IAAE;IAAI;IAAO,EAAE,CAAC;;EAEhB;EAAS;GAmB1B,WAAqC;CAChD,IAAM,CAAC,GAAQ,EAAE,gBAAa,EAG5B,IAAqB;EAAE,gBAAgB,CAAC,yBAAyB;EAAE,qBAAqB;EAAM,CAAC;AAIjG,QAAO;EAAE,2BAHyB,OAAO,GAAY,MAA6B;AAChF,SAAM,EAAO,EAAE,WAAW;IAAE;IAAI;IAAiB,EAAE,CAAC;;EAElB;EAAS;GAQlC,WAAmC;CAC9C,IAAM,CAAC,GAAQ,EAAE,gBAAa,EAG5B,GAA2B;EAAE,gBAAgB,CAAC,wBAAwB;EAAE,qBAAqB;EAAM,CAAC;AAItG,QAAO;EAAE,yBAHuB,OAAO,GAAY,MAAwC;AACzF,SAAM,EAAO,EAAE,WAAW;IAAE;IAAI;IAAO,EAAE,CAAC;;EAEV;EAAS"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddPropertyPage.d.ts","sourceRoot":"","sources":["../../../../src/housingvista/pages/properties/AddPropertyPage.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"AddPropertyPage.d.ts","sourceRoot":"","sources":["../../../../src/housingvista/pages/properties/AddPropertyPage.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiEH,eAAO,MAAM,eAAe,mCA4rB3B,CAAC"}
|