TheDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/Ozcaar/real-estate-template/llms.txt
Use this file to discover all available pages before exploring further.
Development interface models a residential or mixed-use project — such as a condominium tower, housing estate, or pre-sale community — as a distinct entity separate from individual property listings. A development can surface in homepage showcase sections, a dedicated developments gallery, and as the parent context for properties that carry a matching developmentId. The interface lives at app/features/developments/types/development.types.ts and follows the same backend-friendly design as Property: static MVP data can be replaced by an API response without modifying any component.
Unlike the
Property model, Development currently has no Zod schema. The TypeScript compiler enforces the shape at build time. A future task may add a development schema mirroring the pattern in app/features/properties/schemas/property.schema.ts.DevelopmentStatus union
| Value | Meaning |
|---|---|
'pre-sale' | Units are being offered before construction begins |
'under-construction' | Construction is actively in progress |
'ready-to-deliver' | Project is complete and units are ready for handover |
'sold-out' | All units have been sold or reserved |
Development interface
Unique development identifier. Used to cross-reference properties via
Property.developmentId. Must be a non-empty string.Display name of the development (e.g.
'Torre Esmeralda', 'Riverside Residences'). Agency content — not an i18n key.URL-safe identifier reserved for a future detail route at
/developments/[slug]. Currently the slug is stored on the record for forward-compatibility but no routing logic consumes it yet. Keep it unique across the catalog to avoid conflicts when the detail page is implemented.Current build and sales status. See
DevelopmentStatus above for allowed values.Human-readable neighborhood, city, and state string (e.g.
'Polanco, Mexico City'). Agency content displayed on cards and showcase sections.Short marketing description of the project. Rendered on development cards and, when the detail page ships, the hero section. Agency content — not an i18n key.
Cover image path served from
public/ (e.g. '/images/developments/torre-esmeralda.jpg'). Used as the primary visual on cards and showcase modules.Starting price of units in the development, expressed in
currency. Optional — omit when pricing is not yet public (e.g. a pre-sale without announced prices).Upper end of the price range, expressed in
currency. Optional. When only priceFrom is set, components typically render it as "From $X".ISO 4217 currency code for
priceFrom and priceTo (e.g. 'USD', 'MXN'). Optional — components fall back to the agency currency at render time when this field is absent.Total number of units in the development (e.g.
48 apartments in a tower). Optional.Typical bedroom count for units in the development (e.g.
2 or 3). Optional. When units have varying bedroom counts, this field conventionally holds the most common or minimum value.Unit of measurement for
areaFrom and areaTo. When omitted, components fall back to the agency measurementUnit. The area numbers are rendered as-is in the declared unit — the template performs no automatic m² ↔ ft² conversion. Set this per record when an agency’s catalog mixes measurement systems.Smallest unit floor area in the development, expressed in
sizeUnit. Optional.Largest unit floor area in the development, expressed in
sizeUnit. Optional. When only areaFrom is set, components typically render it as "From X m²".Expected delivery date as an ISO 8601 string. Accepts both
'YYYY-MM' (month precision) and 'YYYY-MM-DD' (day precision). Optional — omit when no delivery date has been announced. Example: '2026-03'.When
true, the development is highlighted in homepage showcase sections. Optional — defaults to non-featured behavior when absent.Size unit behavior
ThesizeUnit field follows the same per-record precedence rule as Property.sizeUnit:
- Per-record value wins — if
sizeUnitis set on theDevelopmentrecord, that unit is used forareaFromandareaTo. - Agency default fallback — if
sizeUnitis absent, components fall back toAgencyConfig.measurementUnit. - No auto-conversion — the template never converts area values between metric and imperial. If a record stores
areaFrom: 85withsizeUnit: 'metric', it renders as85 m². If the agency default is'imperial'but the record omitssizeUnit, it renders as85 ft²— the number is unchanged.
sizeUnit consistently per record.
Linking developments to properties
Individual property listings can be associated with a development viaProperty.developmentId:
propertiesService.getRelated() awards a +2 score bonus to properties that share the same developmentId as the current listing, making sibling units appear as the highest-priority related listings on the detail page.
Future detail page
Theslug field is reserved for the route /developments/[slug]. When this page is implemented, slug will be used in the same pattern as Property.slug — a service method (getBySlug) will look up the development and return a 404 for missing or unlisted records. Until then, the field should be set on every record to avoid a future migration.