Skip to content

Listing schema

Anders Schneider edited this page Sep 28, 2021 · 1 revision

The schema for the listing is defined by the Listing entity definition.

Below is an example JSON representation of the fields in the schema that we populate (or expect to populate). A few caveats:

  • The listing schema changes somewhat frequently (and the set of fields that we populate is likely to change), so this is likely to fall out of date.
  • Some fields are omitted because they aren't "interesting" (e.g. IDs)
Listing {
  name: "Example Listing",
  
  // HRD ID is assigned by HRD
  hrdId: "HRD10001",
  
  // Details about property management / owner
  managementCompany: "KMG Prestige",
  managementWebsite: "http://www.managementcompany.com",
  leasingAgentEmail: "[email protected]",
  leasingAgentPhone: "555-555-5555",
  ownerCompany: "Some Property Owner",
  
  // Details about the property itself
  phoneNumber: "123-456-7890",
  property: {
    buildingAddresss: {
      street: "123 Main St",
      city: "Detroit",
      state: "MI",
      zipCode: "12345",
      latitude: 123.45,
      longitude: 67.89,
    },
    amenities: "Parking lot, coin-op washer/dryer in basement",
  },

  // Details about categories of units
  unitsSummary: [
    {
       unitType: {
         name: "studio",
         numBedrooms: 0
       },
       totalCount: 15,
       totalAvailable: 3,
       amiPercentage: 50,
       monthlyRentMin: 400,
       monthlyRentMax: 400,
    },
    {
       unitType: {
         name: "studio",
         numBedrooms: 0
       },
       totalCount: 4,
       totalAvailable: 0,
       amiPercentage: 30,
       monthlyRentMin: 300,
       monthlyRentMax: 350,
    },
    {
       unitType: {
         name: "oneBdrm",
         numBedrooms: 1
       },
       totalCount: 20,
       totalAvailable: 6,
       amiPercentage: 60,
       monthlyRentMin: 700,
       monthlyRentMax: 900,
    },
    {
       unitType: {
         name: "twoBdrm",
         numBedrooms: 2
       },
       totalCount: 5,
       totalAvailable: 0,
       amiPercentage: 60,
       monthlyRentMin: 900,
       monthlyRentMax: 1100,
    }
  ],

  // AMI data for the listing as a whole
  // (This is only used if amiPercentages aren't populated for unitsSummary)
  amiPercentageMin: 30,
  amiPercentageMax: 60,

  // Details about restrictions on who can apply for a unit in this listing
  reservedCommunityType: {
    name: "senior62",
  },

  // Application details (some of these fields don't yet exist)
  isWaitlistOpen: true,
  applicationLink: "http://www.link-to-housing-application.com",
  applicationFee: "$50",
  applicationPickUpAddress: {
    street: "456 Central St",
    city: "Detroit",
    state: "MI",
    zipCode: "12345",
    latitude: 123.45,
    longitude: 67.89,
  },

  // Details about cost
  depositMin: "one month's rent",
  depositMax: "one month's rent",
  costsNotIncluded: "Gas, Electric",

  // Structured accessibility data
  // Doesn't yet exist (https://github.com/CityOfDetroit/bloom/issues/609)
}