dawn-interfaces
Version:
Dawn application interfaces
165 lines (147 loc) • 4.2 kB
text/typescript
export const lookupGenerator = (arr:string[]) =>{
return arr.reduce((obj,str)=>{
obj[str] = str;
return obj;
},{} as any);
}
export const filtersPreferenceBuyingUrgencyExchange = {
"Distant Plans":0,
"Within the Next Year":1,
"Within the Next Few Months":2,
"Urgent":3
}
export const filtersPreferenceBuyingUrgencyValues = Object.keys(filtersPreferenceBuyingUrgencyExchange);
export const filtersPreferenceBuyingUrgencyLookup = lookupGenerator(filtersPreferenceBuyingUrgencyValues);
export const filtersPriceRangeExchange = {
"No Min":0,
"$10k":10000,
"$20k":20000,
"$30k":30000,
"$50k":50000,
"$100k":100000,
"$130k":130000,
"$150k":150000,
"$200k":200000,
"$250k":250000,
"$300k":300000,
"$350k":350000,
"$400k":400000,
"$450k":450000,
"$500k":500000,
"$550k":550000,
"$600k":600000,
"$650k":650000,
"$700k":700000,
"$750k":750000,
"$800k":800000,
"$850k":850000,
"$900k":900000,
"$950k":950000,
"$1m":1000000,
"$1.1m":1100000,
"$1.2m":1200000,
"$1.25m":1250000,
"$1.3m":1300000,
"$1.4m":1400000,
"$1.5m":1500000,
"$1.6m":1600000,
"$1.7m":1700000,
"$1.75m":1750000,
"$1.8m":1800000,
"$1.9m":1900000,
"$2m":2000000,
"$2.25m":2250000,
"$2.5m":2500000,
"$2.75m":2750000,
"$3m":3000000,
"$3.5m":3500000,
"$4m":4000000,
"$5m":5000000,
"$10m":10000000,
"$20m":20000000,
"No Max": 99999999999
};
export const filtersPriceRangeValues = Object.keys(filtersPriceRangeExchange);
export const filtersPriceRangeLookup = lookupGenerator(filtersPriceRangeValues);
export const filtersBedRangeExchange = {
"No Min":0,
"1+":1,
"2+":2,
"3+":3,
"4+":4,
"5+":999
}
export const filtersBedRangeValues = Object.keys(filtersBedRangeExchange);
export const filtersBedRangeLookup = lookupGenerator(filtersBedRangeValues);
export const filtersBathRangeExchange = {
"No Min":0,
"1+":1,
"2+":2,
"3+":3,
"4+":4,
"5+":999
}
export const filtersBathRangeValues = Object.keys(filtersBathRangeExchange);
export const filtersBathRangeLookup = lookupGenerator(filtersBathRangeValues);
export const filtersPropertyTypeExchange = {
"All":null,
"Residential": "residential",
"Condominium": "condominium",
"Multifamily": "multifamily",
"Commercial": "commercial",
"Land": "land",
"Farm": "farm",
"Mobilehome": "mobilehome",
"Rental":"rental"
}
export const filtersPropertyTypeValues = Object.keys(filtersPropertyTypeExchange);
export const filtersPropertyTypeLookup = lookupGenerator(filtersPropertyTypeValues);
export const filtersHomeStatusExchange = {
"All":null,
"Active": "Active",
"Pending": "Pending",
"Closed": "Closed",
"Active Under Contract": "ActiveUnderContract",
"Hold": "Hold",
"Coming Soon": "ComingSoon"
}
export const filtersHomeStatusValues = Object.keys(filtersHomeStatusExchange);
export const filtersHomeStatusLookup = lookupGenerator(filtersHomeStatusValues);
export interface IMlsFilters{
priceRangeStart:string;
priceRangeEnd:string;
bedroomRangeStart:string;
bathroomRangeStart:string;
propertyType:string;
houseSqftStart:number | null;
houseSqftEnd:number | null;
yearBuiltStart:number | null;
yearBuiltEnd:number | null;
homeStatus:string;
houseSort: string;
}
export interface IMlsFiltersSaved extends IMlsFilters{
id:string;
createdAt:string;
filterName:string;
createdBy:string;
}
export interface IMlsMapRegion{
latitude: number;
longitude: number;
latitudeDelta: number;
longitudeDelta: number;
}
export const sortingHousingExchange = {
"None":null,
"Price High-Low":"-listprice",
"Price Low-High":"listprice",
"List Date Newest-Oldest":"listdate",
"List Date Oldest-Newest":"-listdate",
"Beds High-Low":"-beds",
"Beds Low-High":"beds",
"Baths High-Low":"-baths",
"Baths Low-High":"baths"
}
export const sortingHousingValues = Object.keys(sortingHousingExchange);
export const sortingHousingLookup = lookupGenerator(sortingHousingValues);