@arkasuryawan/gp-interfaces
Version:
Geonet Properties Data Interfaces
1,147 lines (1,122 loc) • 33.6 kB
TypeScript
interface GooglePlacesInterface extends AuditInterface {
business_status?: string;
geometry: {
location: {
lat: number;
lng: number;
};
viewport: {
northeast: {
lat: number;
lng: number;
};
southwest: {
lat: number;
lng: number;
};
};
};
icon: string;
icon_background_color: string;
icon_mask_base_uri: string;
name: string;
opening_hours?: any;
photos: [
{
height: 1252;
html_attributions: string[];
photo_reference: string;
width: 1600;
}
];
place_id: string;
plus_code: any;
reference: string;
rating?: number;
scope: string;
types: string[];
vicinity: string;
user_ratings_total?: string[];
}
interface ProjectGooglePlacesInterface extends AuditInterface {
projectId: string;
project: ProjectInterface;
googlePlacesId: string;
googlePlaces: GooglePlacesInterface;
}
declare type TenantAggregatorRequestType = "Requesting" | "Approved" | "Rejected";
interface TenantInterface extends AuditInterface {
legalName?: string;
name?: string;
status?: "Active" | "Archived";
/**
* @deprecated The method should not be used move to `tenantTypes`
*/
tenantType?: TenantType;
/**
* @abstract New field moving from `tenantType`
*/
bannerURL?: string;
thumbnailURL?: string;
externalId?: string;
slug?: string;
shortDescription?: string;
description?: string;
address?: AddressInterface[];
website?: string;
email?: string;
phone?: string;
phone2?: string;
legalName_lower?: string;
name_lower?: string;
website_lower?: string;
email_lower?: string;
accessToken?: string;
referenceCode?: string;
aggregatorIds?: string[];
aggregators?: TenantInterface[];
}
interface TenantAggregatorRequestInterface extends AuditInterface {
agencyId: string;
agency?: TenantInterface;
aggregatorId: string;
aggregator?: TenantInterface;
status: TenantAggregatorRequestType;
}
interface TenantExcludeProjectInterface extends AuditInterface {
tenantId: string;
projectId: string;
}
interface TenantProjectInterface extends AuditInterface {
tenantId: string;
tenant: TenantInterface;
projectId: string;
project: ProjectInterface;
projectLotIds: string[];
projectLots: ProjectLotInterface[];
}
interface OfficesInterface extends AuditInterface {
legalName?: string;
name?: string;
status?: "Active" | "Archived";
externalId?: string;
address?: AddressInterface[];
website?: string;
email?: string;
phone?: string;
phone2?: string;
}
interface AgentInterface extends AuditInterface {
uid?: string;
fullName: string;
firstName: string;
lastName?: string;
mobile?: string;
phone?: string;
image: string;
email: string;
dateOfBirth?: string;
licenceNumber?: string;
licenceExpiryDate?: string;
address?: AddressInterface;
OfficeId?: string;
office?: OfficesInterface;
jobTitle?: string;
specialistAreas?: string[];
awards?: string[];
employeeType?: EmployeeType;
/**
* @deprecated The method should not be used move to `tenantTypes`
*/
tenantType?: TenantType;
/**
* @abstract New field moving from `tenantType`
*/
tenantId?: string;
tenant?: TenantInterface;
aggregatorIds?: string[];
aggregators?: TenantInterface[];
profile?: string;
profileVideo?: string;
startDate?: string;
contractValedDate?: string;
showOnWeb: boolean;
status: "Active" | "Archived";
customToken?: string;
facebookUrl?: string;
instagramUrl?: string;
linkedInUrl?: string;
twitterUrl?: string;
keyword?: string;
callCalenderUrl?: string;
agentLanguages?: string[];
deviceToken?: string[];
groupId?: string;
group?: GroupInterface;
/**
* @abstract just for JWT
*/
groupAccess?: GroupAccessInterface[];
}
interface GroupInterface extends AuditInterface {
name: string;
description: string;
tenantType: TenantType;
}
interface GroupAccessInterface extends AuditInterface {
groupId: string;
group: GroupInterface;
menu: string;
view: boolean;
craete: boolean;
update: boolean;
delete: boolean;
exceptField: string[];
}
interface BlogInterface extends AuditInterface {
title?: string;
slug?: string;
shortDescription?: string;
description?: string;
categoryIds?: string[];
categories?: CategoryInterface[];
status?: StatusType;
blogDisplay?: BlogDisplay;
bannerURL?: string;
thumbnailURL?: string;
videoUrl?: string;
author?: string;
}
interface AdditionalInformationContact {
name: string;
value: string;
}
interface ContactInterface extends AuditInterface {
firstName: string;
lastName: string;
phoneNumber: string;
mobileNumber?: string;
email: string;
source?: SourceList;
address: AddressInterface;
canSeeContactAgentIds?: string[];
canSeeContactAgents?: AgentInterface[];
belongsToAgentId?: string;
belongsToAgent?: AgentInterface;
image: string;
subscribed: string[];
status: "Active" | "Archived";
}
interface AppraisalInterface extends ProspectInterface {
displayName: string;
displayName_lower: string;
description?: string;
description_lower?: string;
agentIds?: string[];
agents?: AgentInterface[];
bedrooms?: number;
bathrooms?: number;
ensuites?: number;
toilets?: number;
frontage?: number;
rearDepth?: number;
landSize?: number;
livingAreas?: number;
buildingSize?: number;
garageSpaces?: number;
carportSpaces?: number;
openCarSpaces?: number;
outDoorFeatures?: string[];
inDoorFeatures?: string[];
allowances?: string[];
expectedPrice?: number;
rentalEstimate?: number;
minPrice: number;
maxPrice: number;
note: string;
note_lower: string;
occupancyTitle: "Whole Building" | "Parcial Building";
prospectId?: string;
prospect?: ProspectInterface;
appraisalDate?: string;
appraisalDocuments?: string[];
appraisalDocumentsWithMetaData?: MetaDataFileInterface[];
videoUrls?: string[];
onlineTourUrl?: string;
documents?: string[];
documentsWithMetaData?: MetaDataFileInterface[];
images?: string[];
thumbnails?: {
small: string;
medium: string;
large: string;
}[];
imagesMetaDataFile?: MetaDataFileInterface[];
floorPlans?: string[];
floorPlansMetaDataFile?: MetaDataFileInterface[];
}
declare type ListingType = "Sale" | "Lease" | "Sale & Lease";
declare type ListingStatus = "Appraisal" | "Presentation" | "Pending" | "Available" | "Conditional" | "Unconditional" | "Settled" | "Leased" | "Withdrawn" | "Archived";
declare type MarketingStatusType = "Not Listed" | "Available" | "Under Contract" | "Sold" | "Leased" | "Available Under Contract";
declare type PropertyType = "Residential" | "Rural" | "Commercial" | "Holiday" | "Business";
declare type PropertyCategory = "Apartment" | "Development" | "Factory" | "House" | "Land" | "Office" | "Semi/Duplex" | "Retail" | "Studio" | "Block Of Units" | "Terrace" | "Townhouse" | "Unit" | "Villa" | "Warehouse" | "Showroom" | "Cropping" | "Dairy" | "Farmlet" | "Horticulture" | "Lifestyle" | "Livestock" | "Viticulture" | "Mixed Farming" | "Acreage" | "Hotel/Leisure" | "Medical/Consulting" | "Other" | "BackpackerHostel" | "BedAndBreakfast" | "Campground" | "CaravanHolidayPark" | "ExecutiveRental" | "FarmStay" | "Flat" | "HouseBoat" | "Lodge" | "Motel" | "Resort" | "Retreat" | "SelfContainedCottage" | "ServicedApartment" | "Car Space" | "Accommodation/Tourism" | "Automotive" | "Beauty/Health" | "Food/Hospitality" | "Import/Export/Whole" | "Services" | "Education/Training" | "Franchise" | "Home/Garden" | "Industrial/Manufacturing" | "Leisure/Entertainment" | "Professional" | "Rural" | "Transport/Distribution";
declare type OrederBy = "soldPrice" | "searchPrice" | "address" | "lastModified" | "firstCreated" | "listedDate" | "nextInspectionDate" | "onMarketDate" | "auctionDate" | "soldDate" | "appraisalDate" | "presentationDate" | "status" | "marketingStatus" | "leasedDate";
declare type AuthorityType = "Exclusive" | "Multi List" | "Conjunctional" | "Open" | "Sale by Negotiation";
interface ListingParam {
id?: string;
page: number;
limit: number;
orderBy?: string;
include?: string;
order?: "ASC" | "DESC";
filter?: ListingInterface;
select?: string;
}
interface ListingInterface extends AppraisalInterface {
fullAddressDisplay: boolean;
addressDisplay?: string;
marketingStatus: MarketingStatusType;
authority: AuthorityType;
listingDate?: string;
listingExpiryDate?: string;
priceDisplay?: string;
price: number;
}
interface PropectSearchParams {
id?: string;
page: number;
limit: number;
orderBy?: string;
include?: string;
order?: "ASC" | "DESC";
filter: ProspectInterface;
select?: string;
}
interface ProspectInterface extends AuditInterface, AddressInterface {
propertyType: PropertyType;
propertyCategory: PropertyCategory;
listingType: ListingType;
interestLevel: "HOT" | "WARM" | "COLD";
status: "Active" | "Archived";
canSeeContactAgentIds?: string[];
canSeeContactAgents?: AgentInterface[];
belongsToAgentId?: string;
belongsToAgent?: AgentInterface;
officeId?: string;
office?: OfficesInterface;
ownerIds?: string[];
owners?: ContactInterface[];
tenantIds?: string[];
tenants?: ContactInterface[];
listingId?: string;
listing?: ListingInterface;
appraisalId?: string;
appraisal?: AppraisalInterface;
}
interface PipelineInterface extends AuditInterface {
_id?: string;
name: string;
note?: string;
name_lower?: string;
note_lower?: string;
status?: "Active" | "Archived";
pipelineFlowIds?: string[];
pipelineFlows?: PipelineFlowInterface[];
officeId?: string;
office?: OfficesInterface;
}
interface PipelineFlowInterface extends AuditInterface {
_id?: string;
pipeLineId: string;
pipeline?: PipelineInterface;
name: string;
name_lower?: string;
status?: "Active" | "Archived";
leadsIds?: string[];
leads?: LeadsInterface[];
order?: number;
}
interface LeadsInterface extends AuditInterface {
_id?: string;
contactId?: string;
contact?: ContactInterface;
pipelineId?: string;
pipelineFlowId?: string;
pipelineFlow?: PipelineFlowInterface;
pipeLineSource?: string;
agentIds?: string[];
agents?: AgentInterface[];
note?: string;
note_lower?: string;
prospectIds?: string[];
prospects?: ProspectInterface[];
listingsIds?: string[];
listings?: ListingInterface[];
appraisalIds?: string[];
appraisals?: AppraisalInterface[];
status?: "Active" | "Archived";
}
interface TAAddress {
street1: string;
street2: string;
city: string;
state: string;
country: string;
postalcode: string;
address_string: string;
phone: string;
latitude: number;
longitude: number;
}
interface TARankingData {
geo_location_id: number;
ranking_string: string;
geo_location_name: string;
ranking_out_of: number;
}
interface TAAncestor {
abbrv: string;
level: string;
name: string;
location_id: number;
latitude: number;
longitude: number;
timezone: string;
email: string;
phone: string;
website: string;
write_review: string;
ranking_data: TARankingData;
ranking: number;
}
interface TAAward {
award_type: string;
year: number;
images: {
tiny: string;
small: string;
large: string;
};
categories: string[];
display_name: string;
}
interface TALocalize {
name: string;
localized_name: string;
rating_image_url?: string;
value?: string;
}
interface TALocation extends AuditInterface {
location_id: number;
name: string;
description?: string;
web_url?: string;
address_obj: TAAddress;
ancestors?: TAAncestor[];
rating_image_url?: string;
num_reviews?: string;
review_rating_count?: {
[code: string]: string;
};
subratings?: {
[code: string]: TALocalize;
};
photo_count?: number;
see_all_photos?: string;
price_level?: string;
hours?: {
periods: {
open: {
day: number;
time: string;
};
close: {
day: number;
time: string;
};
}[];
weekday_text: string[];
subcategory: TALocalize;
};
amenities?: string[];
features?: string[];
cuisine?: TALocalize[];
parent_brand?: string;
brand?: string;
category?: TALocalize;
subcategory?: TALocalize[];
groups?: TALocalize[];
styles?: string[];
neighborhood_info?: TALocation[];
trip_types?: TALocalize[];
awards?: TAAward[];
distance?: string;
rating?: string;
bearing?: string;
}
declare type ProjectStatus = "DRAFT" | "AVAILABLE" | "NOTAVAILABLE" | "DELETED" | "LEASED" | "BOOKED" | "SOLD" | "HOLD" | "CONTRACT" | "PARTIAL";
declare const ProjectStatusOptions: string[];
declare type ProjectType = "Apartment" | "House & Land" | "Land" | "Office" | "Semi/Duplex" | "Block Of Units" | "Townhouse" | "Unit" | "Villa" | "Warehouse" | "Hotel/Leisure" | "Other" | "Motel" | "Resort" | "Retreat" | "Rural";
declare type CurrencyId = "EUR" | "SGD" | "GBP" | "AUD" | "USD" | "IDR" | "THB";
declare const CurrencyIdOptions: string[];
declare type ProjectStatusType = "Off The Plan" | "Completed" | "Under Construction";
declare const ProjectStatusTypeOptions: string[];
interface AdditionalInformation {
icon: string;
headline: string;
content: string;
}
interface AdditionalOption {
icon: string;
headline: string;
content: string;
priceType: string;
price: number;
}
interface RentalRevenueEstimateInterface {
headline: string;
price: number;
occupancy: number;
rate: number;
percentageCost: number;
investmentTime: number;
}
interface ProjectSummaryInterface {
unitAvailable: number;
sold: number;
minPrice: number;
bed: {
min: number;
max: number;
};
bath: {
min: number;
max: number;
};
garage: {
min: number;
max: number;
};
area: {
min: number;
max: number;
};
}
interface ProjectMainInformation extends AuditInterface {
/**
*
*/
status: ProjectStatus | string[];
headLine: string;
shortDescription: string;
content: string;
featured: boolean;
hideOnWebsite: boolean;
address: string;
addressCordinat: Cordinat | Cordinat[];
suburbId: string;
suburb: SuburbInterface | string;
suburbName: string;
stateId: string;
state: StateInterface | string;
stateName: string;
countryId: string;
country: CountryInterface | string;
countryName: string;
region: RegionInterface | string;
regionId: string;
regionName: string;
postcode: string;
additionalInformation?: AdditionalInformation[];
taxIncluded?: boolean;
tax?: number;
tenantIds?: string[];
tenants?: TenantInterface[];
aggregatorIds?: string[];
aggregators?: TenantInterface[];
developerId?: string;
developerDetail?: TenantInterface;
developer?: TenantInterface;
/**
* @deprecated The method should not be used move to `projectTypeIds`
*/
projectTypeId: string;
/**
* @deprecated The method should not be used move to `projectTypes`
*/
projectType: ProjectTypeInterface;
/**
* @abstract New field moving from `projectTypeId`
*/
projectTypeIds?: string[];
/**
* @abstract New field moving from `projectTypes`
*/
projectTypes?: ProjectTypeInterface[];
autdoorFeature: string[];
indoorFeatures: string[];
}
interface ProjectImageFileAndOtherInfo extends ProjectMainInformation {
videoUrl: string[];
onlineTourUrl: string[];
images: string[];
interior: string[];
exterior: string[];
floorPlans: string[] | MetaDataFileInterface[];
brochure: string[] | MetaDataFileInterface[];
collateral: string[] | MetaDataFileInterface[];
specifications: string[] | MetaDataFileInterface[];
areaGuide: string;
presentation: string;
news: string[];
podcast: string[];
webinar: string;
threesixty: string;
}
interface ProjectLotMainInformation extends ProjectImageFileAndOtherInfo {
projectId: string;
project: ProjectInterface;
scheme: string;
aspect: string;
guarantee: string;
level?: string;
lot?: string;
bed?: number;
bath?: number;
garage: number;
internal: number;
external: number;
total: number;
living: number;
/**
* @deprecated The method should not be used
*/
type: string;
price: number;
/**
* @abstract new field moving from developer
*/
builder: string;
}
interface ProjectInterface extends ProjectImageFileAndOtherInfo {
/**
* @deprecated The method should not be used
*/
type: ProjectType;
/**
* @abstract Image URl
*/
sellingPoint: string;
url: string;
landingUrl: string;
currency: CurrencyId;
preSaleType: "Percentage" | "Fix Price";
preSalePercentage?: number;
preSalePrice?: number;
percentageDeposit: number;
/**
* @deprecated The method should not be used
*/
aboutProject: string;
/**
* @deprecated The method should not be used
*/
step1?: string;
/**
* @deprecated The method should not be used
*/
step2?: string;
/**
* @deprecated The method should not be used
*/
step3?: string;
/**
* @deprecated The method should not be used
*/
step4?: string;
/**
* @deprecated The method should not be used
*/
blogIds?: string[];
/**
* @deprecated The method should not be used
*/
blogs?: BlogInterface[];
projectStatus?: ProjectStatusType;
totalUnit?: number;
startDate?: string;
completionDate?: string;
/**
* @deprecated The method should not be used move to `projectlot`
*/
variationTitle: string;
/**
* @deprecated The method should not be used will be move to `projectvariance`
*/
variationPricing: "ADD" | "REPLACE" | "MULTIPLE" | "DEVIDE";
rentalRevenueEstimate?: RentalRevenueEstimateInterface[];
/**
* @abstract when `true` if sold ? no information on front end
*/
hidePriceOnSold?: boolean;
summary?: ProjectSummaryInterface;
/**
* @abstract New field for summary by `proejctid`
*/
summaryByProjectTypeIds?: {
[projectTypeId: string]: ProjectSummaryInterface;
};
/**
* @abstract Interfce only not for data to model
* */
searchPrice?: number;
searchPriceMin?: number;
searchPriceMax?: number;
/**
* @abstract New field for summary by proejctid
*/
projectImageFileAndOtherInfoByTenants: {
[tenantId: string]: ProjectImageFileAndOtherInfo;
};
}
interface LotVariancesInterface {
projectLotVarianceId: string;
projectLotVariance: ProjectLotVarianceInterface;
status: ProjectStatus;
price: number;
landPrice: number;
housePrice: number;
salesPackNumber: string;
availabilityStock: number;
additionalInformation?: AdditionalInformation[];
additionalConst?: number;
projectTypeId: string;
projectType?: ProjectTypeInterface;
variationPricing?: "ADD" | "REPLACE" | "MULTIPLE" | "DEVIDE";
}
interface ProjectLotInterface extends ProjectLotMainInformation {
/**
*@abstract moving from `Projects`
*/
variationTitle: string;
/**
* @deprecated The method should not be used move to `variances`
*/
projectLotVarianceIds?: string[];
/**
* @deprecated The method should not be used move to `variances`
*/
projectLotVariances?: ProjectLotVarianceInterface[];
variances?: LotVariancesInterface[];
city: string;
estate: string;
landPrice: number;
housePrice: number;
salesPackNumber: string;
landRegistration: string;
stockType: "NORMAL" | "PARTIAL" | "FRACTIONAL";
/**
* Default availability stock is 1
* when sold on variance availability stock 0-1 (100%)
*/
availabilityStock: number;
projectImageFileAndOtherInfoByTenants: {
[tenantId: string]: ProjectImageFileAndOtherInfo;
};
}
interface ProjectLotVarianceInterface extends ProjectLotMainInformation {
variationPricing: "ADD" | "REPLACE" | "MULTIPLE" | "DEVIDE";
projectImageFileAndOtherInfoByTenants: {
[tenantId: string]: ProjectImageFileAndOtherInfo;
};
additionalOptions: AdditionalOption[];
projectTypeId: string;
projectType: ProjectTypeInterface;
}
interface ProjectRequestInterface extends AuditInterface {
projectId: string;
project?: ProjectInterface;
agencyId: string;
agency?: TenantInterface;
developerId: string;
developer?: TenantInterface;
aggregatorId: string;
aggregator?: TenantInterface;
}
/**
* @deprecated The method should not be used
*/
interface ProjectTripadvisorInterface extends AuditInterface {
projectId: string;
project: ProjectInterface;
tripadvisorId: string;
tripadvisor: TALocation;
distance?: string;
bearing?: string;
}
interface UserInterface extends AuditInterface {
uid: string;
name?: string;
fullname?: string;
displayName?: string;
firstName?: string;
lastName?: string;
email?: string;
email_verified?: boolean;
emailVerified?: boolean;
phoneNumber?: string;
isAnonymous?: boolean;
photoURL?: string;
address?: AddressInterface;
status: StatusType;
validThrough?: string;
slug?: string;
birthDay?: string;
nationality?: string;
socialMedia?: {
[code: string]: string;
};
wishlist?: string[];
}
interface UserWishlistInterface extends AuditInterface {
uid: string;
userId: string;
user: UserInterface;
projectId: string;
Project: ProjectInterface;
}
interface TestimonialInterface extends AuditInterface {
imageUrl: string;
headline: string;
description: string;
user: UserInterface;
}
interface TokenData {
token: string;
expiresIn: number;
}
interface DataStoredInToken {
_id: string;
}
declare type NotificationType = "NEW" | "READED";
interface NotificationInterface extends AuditInterface {
headline?: string;
description?: string;
link?: string;
userIdReaded?: string[];
status?: string;
type?: string;
to?: {
type: "USER" | "TENANT";
id: string;
}[];
}
interface MenuType {
name: any;
url: string;
subItems?: MenuType[];
class?: string;
col?: number;
}
interface WhiteLabelInterface extends AuditInterface {
logo: string;
cssRoot: string;
menu: MenuType[];
footer: string;
type: "MULTI PROJECTS" | "SINGLE PROJECT";
accessToken: string;
domainName: string;
proejctUrl?: string;
favicon?: string;
metaTitle?: string;
metaDescription?: string;
keyword?: string;
bannerUrl?: string;
metaImage?: string;
}
declare enum TransactionType {
"EOI" = 0,
"HOLD" = 1,
"CONTRACT" = 2,
"DEPOSIT" = 3,
"DEPOSIT RETURNED" = 4,
"SOLD" = 5
}
interface TransactionInterface extends AuditInterface {
id: string;
projectId: string;
project: ProjectInterface;
lotId: string;
lot: ProjectLotInterface;
lotVarianceId?: string;
lotVariance?: ProjectLotVarianceInterface;
lastStatus: TransactionType;
whiteLabelId?: string;
whiteLabel?: WhiteLabelInterface;
description?: string;
clientId: string;
client: ContactInterface;
price: number;
deposit: number;
currency: CurrencyId;
}
interface TransactionDetailInterface extends AuditInterface {
id: string;
transactionID: string;
transaction: TransactionInterface;
type: TransactionType;
description?: string;
exporeDate?: string;
}
declare type PermissionTypeEnum = "EVERYONE" | "SELECT" | "EXCLUSIVE";
declare type SourceList = "Website" | "Facebook" | "Instagram" | "Phone-in" | "Newspaper" | "Wolk-in" | "Door Knoking" | "Other";
declare type EmployeeType = "Administrator" | "Director" | "Personal Sisten" | "Office Admin" | "Agent Repesentative" | "Property Management" | "Sales Repesentative" | "Inactive";
declare const EmployeeTypeData: string[];
declare type TenantType = "Developer" | "Agency" | "Geonet" | "Aggregator" | "M2";
declare type BlogDisplay = "APPS" | "WEBSITE" | "BOTH";
declare type StatusType = "Active" | "Archived";
declare type EditorState = "ADD" | "DELETE" | "UPDATE" | "VIEW";
interface Cordinat {
lat: number;
lng: number;
}
interface CategoryInterface extends AuditInterface {
name?: string;
shortDescription?: string;
description?: string;
slug?: string;
parentCategoryId?: string;
parentCategory?: CategoryInterface;
bannerURL?: string;
thumbnailURL?: string;
status?: StatusType;
}
declare const PipeLineFlowData: string[];
declare const SourceListData: string[];
interface GroupRole {
code: EmployeeType;
role: string;
allow: boolean;
}
declare type agentLanguage = "English" | "Bahasa" | "French" | "Mandarin";
declare const agentLanguageOption: string[];
declare const PropertyTypeData: string[];
declare const ProductCategoryData: string[];
declare const SubscribedOptions: string[];
interface MetaDataFileInterface {
name: string;
url: string;
fileType: string;
}
interface AuditInterface {
_id?: string;
_ids?: string;
featured?: boolean;
hideOnWebsite?: boolean;
extraFilter?: any;
keyword?: string;
order?: number;
createdAt: string;
createdBy: string;
updateddAt?: string;
updatedBy?: string;
ArchivedAt?: string;
ArchivedBy?: string;
}
interface SearchParamInterface<DATA> {
id?: string;
page?: number;
limit?: number;
orderBy?: string;
include?: string;
order?: "ASC" | "DESC";
sort?: any;
filter?: DATA;
select?: string;
total?: number;
}
interface singgleResponse<DATA> {
data?: DATA;
haveError: boolean;
errorCode?: string;
errorMessage?: string;
code?: string;
message?: string;
}
interface ListResponse<DATA> {
total: number;
page: number;
limit: number;
data: DATA[];
haveError: boolean;
}
interface AddressInterface {
_id?: string;
streetAddress: string;
suburb: string;
state: string;
postcode: string;
country: string;
location: locationType;
}
interface locationType {
_id?: string;
lat: number;
long: number;
}
interface ImageThumbnail {
height: number;
size: string;
url: string;
width: number;
}
interface ImageInterface {
id: number;
lastModified: string;
order: number;
thumbnails: ImageThumbnail[];
title: string;
url: string;
}
interface ProjectTypeInterface extends AuditInterface {
name: string;
bannerURL?: string;
iconURL?: string;
thumbnailURL?: string;
slug?: string;
shortDescription?: string;
description?: string;
promotionBanner: {
general: string;
country: {
[slug: string]: string;
};
state: {
[slug: string]: string;
};
suburb: {
[slug: string]: string;
};
};
}
interface AddressDetail extends AuditInterface {
name: string;
displayName: string;
bannerURL?: string;
thumbnailURL?: string;
iconUrl?: string;
slug?: string;
shortDescription?: string;
description?: string;
tenantIds?: string[];
tenants?: TenantInterface[];
}
interface CountryInterface extends AddressDetail {
}
interface StateInterface extends CountryInterface {
countryId: string;
country: CountryInterface;
}
interface RegionInterface extends StateInterface {
stateId: string;
state: StateInterface;
}
interface SuburbInterface extends RegionInterface {
regionId: string;
region: RegionInterface;
}
interface SuburbDataReport extends AuditInterface {
headline: string;
type: string;
label: string;
value: string;
valueType: "percent" | "money";
suburbId: string;
suburb: SuburbInterface;
}
interface SuburbDemographic extends AuditInterface {
label: string;
icon: string;
value: string;
suburbId: string;
suburb: SuburbInterface;
}
interface SuburbStatistic extends AuditInterface {
category: string;
label: string;
value: number;
suburbId: string;
suburb: SuburbInterface;
}
interface CurrencyDataInterface {
_id?: string;
code: string;
value: number;
}
interface AuthInterface {
uid: string;
token: string;
sessionTime: string;
}
declare const MakeId: (length: number) => string;
interface FormatMoneyInterface {
num: number;
currencyCode?: string;
format?: "en-US";
minimumFractionDigits?: number;
}
declare const formatMoney: (data: FormatMoneyInterface) => string;
declare const CerateSlug: (str: string) => string;
/**
* Generates a random UUID
* @param a - The parameter a is a number that is used to generate the UUID. If you don't pass a
* parameter, the function will generate a random number.
*/
/**
* Return a new array with the elements of the original array in a random order.
* @param arr - The array to shuffle.
*/
declare const shuffleArray: (arr: any[]) => any[];
/**
* It takes an array, converts it to a Set, and then converts it back to an array
* @param arr - The array to be filtered.
*/
declare const getUniqueArray: (arr: any[]) => any[];
/**
* If the current element is an array, flatten it, otherwise, add it to the accumulator.
*/
/**
* Generate a random hex colour code.
*/
declare const generateRandomHexColor: () => string;
/**
* It takes three numbers, one for red, one for green, and one for blue, and returns a hexadecimal
* string representing the color
* @param r - red value
* @param g - The green value of the color.
* @param b - blue
*/
declare const rgbToHex: (r: number, g: number, b: number) => string;
/**
* It converts a hexadecimal color code to an RGB color code.
* @param hex - The hexadecimal color code.
*/
declare const hexToRgb: (hex: any) => any;
/**
* Given an array of numbers, return the average of those numbers.
*/
declare const average: (arr: any[]) => number;
/**
* It converts a string to camel case.
*/
declare const toCamelCase: (str: string) => string;
/**
* Replace all words in a string with the first letter capitalized and the rest of the letters
* lowercase.
*/
declare const toTitleCase: (str: string) => string;
/**
* Replace all whitespace characters with underscores and convert the string to lowercase.
*/
declare const toSnakeCase: (str: string) => string;
export { AdditionalInformation, AdditionalInformationContact, AdditionalOption, AddressDetail, AddressInterface, AgentInterface, AppraisalInterface, AuditInterface, AuthInterface, AuthorityType, BlogDisplay, BlogInterface, CategoryInterface, CerateSlug, ContactInterface, Cordinat, CountryInterface, CurrencyDataInterface, CurrencyId, CurrencyIdOptions, DataStoredInToken, EditorState, EmployeeType, EmployeeTypeData, GooglePlacesInterface, GroupAccessInterface, GroupInterface, GroupRole, ImageInterface, ImageThumbnail, LeadsInterface, ListResponse, ListingInterface, ListingParam, ListingStatus, ListingType, LotVariancesInterface, MakeId, MarketingStatusType, MenuType, MetaDataFileInterface, NotificationInterface, NotificationType, OfficesInterface, OrederBy, PermissionTypeEnum, PipeLineFlowData, PipelineFlowInterface, PipelineInterface, ProductCategoryData, ProjectGooglePlacesInterface, ProjectImageFileAndOtherInfo, ProjectInterface, ProjectLotInterface, ProjectLotMainInformation, ProjectLotVarianceInterface, ProjectMainInformation, ProjectRequestInterface, ProjectStatus, ProjectStatusOptions, ProjectStatusType, ProjectStatusTypeOptions, ProjectSummaryInterface, ProjectTripadvisorInterface, ProjectType, ProjectTypeInterface, PropectSearchParams, PropertyCategory, PropertyType, PropertyTypeData, ProspectInterface, RegionInterface, RentalRevenueEstimateInterface, SearchParamInterface, SourceList, SourceListData, StateInterface, StatusType, SubscribedOptions, SuburbDataReport, SuburbDemographic, SuburbInterface, SuburbStatistic, TAAddress, TAAncestor, TAAward, TALocalize, TALocation, TARankingData, TenantAggregatorRequestInterface, TenantAggregatorRequestType, TenantExcludeProjectInterface, TenantInterface, TenantProjectInterface, TenantType, TestimonialInterface, TokenData, TransactionDetailInterface, TransactionInterface, TransactionType, UserInterface, UserWishlistInterface, WhiteLabelInterface, agentLanguage, agentLanguageOption, average, formatMoney, generateRandomHexColor, getUniqueArray, hexToRgb, locationType, rgbToHex, shuffleArray, singgleResponse, toCamelCase, toSnakeCase, toTitleCase };