Listing Query
Last updated
Last updated
To understand what is necessary and how to use GraphQl, in Master Data page we explain what is necessary to do
type Query {
listings(input: ListingFilterListPaging): [Listing]
avgListingActivity(input: AvgActivityFilter): AvgListingActivity
listingCounts(input: ListingCountsFilter): ListingCounts
}
type AvgListingActivity {
activeListings: Int
}
type ListingCounts {
listingsMissingViewings: Int
listingsMissingContracts: Int
activeAndPublished: Int
olderThan30Days: Int
listingsInContracting: Int
listingsContractingCompleted: Int
listingsMoveinCompleted: Int
}
type Listing {
id: String
title: String
type: String
isArchived: Boolean
isActive: Boolean
companyId: String
listingResponsible: User
contractDetails: ListingContractDetails
coverPicture: IFile
pictures: [IFile]
documents: [IFile]
floorplans: [IFile]
company: Company
status: LISTING_STATUS
amenities: ListingAmenities
listingInformation: ListingInformation
availableFrom: Date
propertyId: String
property: Property
unitId: String
unit: Unit
descriptions: ListingDescription
createdAt: DateTime
updatedAt: DateTime
}
type ListingAmenities {
amenitiesIncluded: [AMENITIES_INCLUDED] # See this type under units page
parking: UnitParkingType # See this type under units page
qualityOfAmenities: String
condition: String
lastRenovationYear: Int
heatingType: String
mainEnergySource: String
energyPerformanceCertificateAvailability: ENERGY_PERFORMANCE_CERTIFICATE_AVAILABILITY
energyCertificateCreationDate: ENERGY_CERTIFICATE_CREATION_DATE
buildingEnergyRatingType: BUILDING_ENERGY_RATING_TYPE
thermalCharacteristic: Float
energyConsumptionContainsWarmWater: Boolean
energyEfficiencyClass: ENERGY_EFFICIENCY_CLASS
}
type ListingDescription {
object: String
amenities: String
location: String
other: String
}
type ListingContractDetails {
currency: String
rent: Float
totalMonthlyRent: Float
parkingRent: Float
deposit: Float
heatingCostsIncluded: Boolean
utilityCosts: Float
heatingCosts: Float
petsAllowed: String
displayAmount: Float
hasCommission: Boolean
commission: String
commissionNote: String
commissionType: String
}
enum UNIT_TYPE {
APARTMENT
HOUSE
PARKING
OFFICE
STORE
GASTRONOMY
INDUSTRY
SPECIAL_PURPOSE
LAN
}
enum LISTING_TYPE {
RENT_APARTMENT
SELL_APARTMENT
RENT_SHORT_TERM_APARTMENT
RENT_HOUSE
SELL_HOUSE
RENT_PARKING
SELL_PARKING
RENT_RESIDENTIAL_LAND
SELL_RESIDENTIAL_LAND
RENT_OFFICE
SELL_OFFICE
RENT_STORE
SELL_STORE
RENT_GASTRONOMY
SELL_GASTRONOMY
RENT_INDUSTRY
SELL_INDUSTRY
RENT_SPECIAL_PURPOSE
SELL_SPECIAL_PURPOSE
RENT_COMMERCIAL_LAND
SELL_COMMERCIAL_LAND
}
enum LISTING_STATUS {
OPEN_FOR_CANDIDATES
OPEN_FOR_APPLICANTS
CONTRACTING_STARTED
CONTRACTING_COMPLETED
MOVE_IN_COMPLETED
IS_INACTIVE
IS_ARCHIVED
}
enum CANDIDATE_SOURCE {
APPLIED_EVERREAL
MANUAL_EVERREAL_CANDIDATE
MANUAL_EVERREAL_SCHEDULED
MANUAL_EVERREAL_APPLICANT
IMMOSCOUT24
WG_GESUCHT
IMMOWELT
IMMONET
IVD24
NWZ
OPENIMMO_GENERIC
EBAY
OFFLINE_CONTRACT
}
input ListingFilter {
from: Date
to: Date
candidateSources: [CANDIDATE_SOURCE]
companyId: String
propertyGroupId: String
propertyId: String
ownerId: String
listingId: String
external: Boolean
fullSearch: String
isArchived: Boolean
isActive: Boolean
internalAdvertiseId: String
availableFrom: Date
externalPropertyId: String
scoringTemplateId: String
propertyCity: String
propertyName: String
propertyStreet: String
listingType: LISTING_TYPE
status: LISTING_STATUS
responsibleFullName: String
unitName: String
unitId: String
externalUnitId: String
unitType: UNIT_TYPE
priceMin: Float
priceMax: Float
roomsMin: Int
roomsMax: Int
surfaceMin: Int
surfaceMax: Int
livingSurfaceMin: Int
livingSurfaceMax: Int
heightMax: Int
heightMin: Int
listingResponsibleUserId: String
projectId: String
candidateEmail: String
candidateIsWinner: Boolean
}
input ListingFilterListPaging {
filter: ListingFilter
paging: GraphPaging
sort: GraphSorting
}
input ListingCountsFilter {
userId: String
companyId: String
}
Usage:
query listingsQuery(
$from: Date
$to: Date
$companyId: String
$propertyId: String
$propertyGroupId: String
$ownerId: String
$listingId: String
$isArchived: Boolean
$isActive: Boolean
$fullSearch: String
) {
listings(
input: {
paging: { take: 100, skip: 0 }
filter: {
from: $from
to: $to
companyId: $companyId
propertyGroupId: $propertyGroupId
propertyId: $propertyId
ownerId: $ownerId
listingId: $listingId
isArchived: $isArchived
isActive: $isActive
fullSearch: $fullSearch
}
}
) {
id
title
type
isArchived
isActive
companyId
amenities{
amenitiesIncluded
qualityOfAmenities
}
floorplans {
name
resourceId
resourcePath
}
property {
objectId
name
category
fullAddress
}
unit {
id
objectId
name
}
contractDetails {
currency
rent
totalMonthlyRent
}
}
}
Variables:
You can used any variable in ListingFilter
to
{
"listingId": "fce90f3a-b8e4-4bc6-b6c0-2539acef5cdc",
"propertyId": "e7cde0a1-9708-4fce-b36e-d8b8bcaa695f",
"isActive": true,
"isArchived": false,
"fullSearch": "Hermannstrasse"
}