dawn-interfaces
Version:
Dawn application interfaces
103 lines (102 loc) • 2.85 kB
TypeScript
import { ISRListing } from "../srets";
export declare enum EAreaType {
city = "city",
neighborhood = "neighborhood"
}
export interface IMapLocation {
id: string;
updatedAt?: Date;
locationName: string;
centerLocationLat: number;
centerLocationLng: number;
coordinateBoundaries: number[][];
smallerCoordinates: number[][];
usState: string;
}
export interface IMetricSplitsNumeric {
entityCount: number;
average: number;
median: number;
p10: number;
p25: number;
p75: number;
p90: number;
min: number;
max: number;
}
export interface IMetricSplitsString {
median: string;
p10: string;
p25: string;
p75: string;
p90: string;
min: string;
max: string;
}
export interface IMetricSplits {
values: IMetricSplitsNumeric;
mlsListingIdPointers: IMetricSplitsString;
}
export interface IMetric {
id: string;
locationId: string;
dateId: number;
updatedAt: Date;
totalClosedHomes: number;
totalActiveHomes: number;
totalNewlyActiveHomes: number;
totalSalesVolume: number;
totalPotentialSalesVolume: number;
homesDaysOnMarket?: IMetricSplits | null;
listingPrice?: IMetricSplits | null;
closingPrice?: IMetricSplits | null;
totalHomesSoldOverListingPrice: number;
closePriceAsPercentOfListPrice?: IMetricSplits | null;
squareFt?: IMetricSplits | null;
pricePerSquareFt?: IMetricSplits | null;
medianYearBuilt?: number | null;
newlyActiveListingDrilldown: string[];
activeListingDrilldown: string[];
closedListingDrilldown: string[];
}
export interface IGeneratedMetrics {
[locationId: string]: IMetric[];
}
export interface ILocationListingsObject {
[locationId: string]: ISRListing[];
}
export declare enum EHomeStatus {
closed = "Closed",
pending = "Pending",
activeUnderContract = "ActiveUnderContract",
active = "Active"
}
export declare enum EHomeType {
residential = "RES",
rental = "RNT",
land = "LND",
multifamily = "MLF",
commercial = "CRE"
}
export interface IMapListing {
mlsListingId: string;
closePrice?: number | null;
closeDate?: Date | null;
listPrice?: number | null;
longitude?: number | null;
latitude?: number | null;
retsJson: ISRListing;
updatedAt: Date;
locationId: string;
homeType?: EHomeType | null;
homeStatus?: EHomeStatus | null;
agentId?: string | null;
agencyId?: string | null;
}
export declare const mlsListingIdBreakPointCharacter = "|";
export declare const getMlsListingId: (mlsId: string, listingId: string) => string;
export declare const getMlsListingIdFromListing: (listing: ISRListing) => string;
export declare const stripMlsListingId: (mlsListingId: string) => {
mlsId: string | undefined;
listingId: string | undefined;
};