@arkasuryawan/m2-interfaces
Version:
Squaremetre Data Interfaces
365 lines (364 loc) • 10.1 kB
TypeScript
import mongoose from "mongoose";
import { AgentInterface } from "./agent.interface";
import { GooglePlacesInterface, ProjectGooglePlacesInterface } from "./google-places";
import { TenantInterface } from "./tenant.interface";
import { TemplateDesignInterface } from "./whitelabel.interface";
export * from "./agent.interface";
export * from "./blog.interface";
export * from "./contact.interface";
export * from "./leads.interface";
export * from "./office.interface";
export * from "./project.interface";
export * from "./properties/appraisal.interface";
export * from "./properties/listing.interface";
export * from "./properties/prospect";
export * from "./tenant.interface";
export * from "./testimonial.interface";
export * from "./TokenData.interface";
export * from "./user.interface";
export * from "./notification.interface";
export * from "./whitelabel.interface";
export * from "./industry-report.interface";
export * from "./transaction";
export declare type PermissionTypeEnum = "EVERYONE" | "SELECT" | "EXCLUSIVE";
export declare type SourceList = "Website" | "Facebook" | "Instagram" | "Phone-in" | "Newspaper" | "Wolk-in" | "Door Knoking" | "Other";
export declare type EmployeeType = "Administrator" | "Director" | "Personal Sisten" | "Office Admin" | "Agent Repesentative" | "Property Management" | "Sales Repesentative" | "Inactive";
export declare const EmployeeTypeData: string[];
export declare type TenantType = "Developer" | "Agency" | "Geonet" | "Aggregator" | "M2" | "Builder";
export declare type BlogDisplay = "APPS" | "WEBSITE" | "BOTH";
export declare type StatusType = "Active" | "Archived";
export declare type EditorState = "ADD" | "DELETE" | "UPDATE" | "VIEW";
export * from "./tripadvisor";
export interface Cordinat {
lat: number;
lng: number;
}
export interface CategoryInterface extends AuditInterface {
name?: string;
shortDescription?: string;
description?: string;
slug?: string;
parentCategoryId?: string;
parentCategory?: CategoryInterface;
bannerURL?: string;
thumbnailURL?: string;
status?: StatusType;
}
export interface CategoryInterfaceServer extends AuditInterface {
name?: string;
shortDescription?: string;
description?: string;
slug?: string;
parentCategoryId?: string;
parentCategory?: mongoose.Types.ObjectId;
bannerURL?: string;
thumbnailURL?: string;
status?: StatusType;
}
export declare const PipeLineFlowData: string[];
export declare const SourceListData: string[];
export interface GroupRole {
code: EmployeeType;
role: string;
allow: boolean;
}
export declare type agentLanguage = "English" | "Bahasa" | "French" | "Mandarin";
export declare const agentLanguageOption: string[];
export declare const PropertyTypeData: string[];
export declare const ProductCategoryData: string[];
export declare const SubscribedOptions: string[];
export interface MetaDataFileInterface {
name: string;
url: string;
fileType: string;
}
export interface AuditInterface {
_id?: string;
_ids?: string;
featured?: boolean;
hideOnWebsite?: boolean;
extraFilter?: any;
keyword?: string;
order?: number;
createdAt: string;
createdBy: string;
createdByDetail?: AgentInterface;
updateddAt?: string;
updatedAt?: string;
updatedBy?: string;
updatedByDetail?: AgentInterface;
archivedAt?: string;
archivedBy?: string;
archivedByDetail?: AgentInterface;
ArchivedAt?: string;
ArchivedBy?: string;
ArchivedByDetail?: AgentInterface;
}
export interface AuditInterfaceServer {
_id?: string;
_ids?: string;
featured?: boolean;
hideOnWebsite?: boolean;
extraFilter?: any;
keyword?: string;
order?: number;
createdAt: string;
createdBy: string;
createdByDetail?: mongoose.Types.ObjectId;
updateddAt?: string;
updatedAt?: string;
updatedBy?: string;
updatedByDetail?: mongoose.Types.ObjectId;
archivedAt?: string;
archivedBy?: string;
archivedByDetail?: AgentInterface;
ArchivedAt?: string;
ArchivedBy?: string;
ArchivedByDetail?: mongoose.Types.ObjectId;
}
export interface AuditLogInterface extends AuditInterface {
type: string;
data: {
field: string;
value: string;
}[];
description?: string;
}
export interface SearchParamInterface<DATA> {
id?: string;
page?: number;
limit?: number;
orderBy?: string;
include?: string;
order?: "ASC" | "DESC";
sort?: any;
filter?: DATA | string;
select?: string;
total?: number;
}
export interface singgleResponse<DATA> {
data?: DATA;
haveError: boolean;
errorCode?: string;
errorMessage?: string;
code?: string;
message?: string;
}
export interface SingleResponse<D> {
data?: D;
haveError: boolean;
errorCode?: string;
errorMessage?: string;
code?: string;
message?: string;
}
export interface ListResponse<DATA> {
total: number;
page: number;
limit: number;
data: DATA[];
haveError: boolean;
}
export interface AddressInterface {
_id?: string;
streetAddress: string;
suburb: string;
state: string;
postcode: string;
country: string;
location: locationType;
}
export interface locationType {
_id?: string;
lat: number;
long: number;
}
export interface LocationType {
_id?: string;
lat: number;
long: number;
}
export interface ImageThumbnail {
height: number;
size: string;
url: string;
width: number;
}
export interface ImageInterface {
id: number;
lastModified: string;
order: number;
thumbnails: ImageThumbnail[];
title: string;
url: string;
}
export 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;
};
};
byTenants: {
[tenantId: string]: {
bannerURL?: string;
thumbnailURL?: string;
iconUrl?: string;
promotionBanner?: {
general: string;
country: {
[slug: string]: string;
};
state: {
[slug: string]: string;
};
suburb: {
[slug: string]: string;
};
};
};
};
}
export interface AddressDetail extends AuditInterface {
name: string;
displayName: string;
bannerURL?: string;
thumbnailURL?: string;
iconUrl?: string;
slug?: string;
shortDescription?: string;
description?: string;
tenantIds?: string[];
tenants?: TenantInterface[];
}
export interface AddressDetailServer extends AuditInterface {
name: string;
displayName: string;
bannerURL?: string;
thumbnailURL?: string;
iconUrl?: string;
slug?: string;
shortDescription?: string;
description?: string;
tenantIds?: string[];
tenants?: mongoose.Types.ObjectId[];
}
export interface CountryInterface extends AddressDetail {
byTenants: {
[tenantId: string]: {
bannerURL?: string;
thumbnailURL?: string;
iconUrl?: string;
};
};
}
export interface StateInterface extends CountryInterface {
countryId: string;
country: CountryInterface;
}
export interface StateInterfaceServer extends CountryInterface {
countryId: string;
country: mongoose.Types.ObjectId;
}
export interface RegionInterface extends StateInterface {
stateId: string;
state: StateInterface;
}
export interface RegionInterfaceServer extends StateInterface {
stateId: string;
state: mongoose.Types.ObjectId;
}
export interface SuburbInterface extends RegionInterface {
regionId: string;
region: RegionInterface;
}
export interface SuburbInterfaceServer extends RegionInterface {
regionId: string;
region: mongoose.Types.ObjectId;
}
export interface SuburbDataReport extends AuditInterface {
headline: string;
type: string;
label: string;
value: string;
valueType: "percent" | "money";
suburbId: string;
suburb: SuburbInterface;
}
export interface SuburbDataReportServer extends AuditInterface {
headline: string;
type: string;
label: string;
value: string;
valueType: "percent" | "money";
suburbId: string;
suburb: mongoose.Types.ObjectId;
}
export interface SuburbDemographic extends AuditInterface {
label: string;
icon: string;
value: string;
suburbId: string;
suburb: SuburbInterface;
}
export interface SuburbDemographicServer extends AuditInterface {
label: string;
icon: string;
value: string;
suburbId: string;
suburb: mongoose.Types.ObjectId;
}
export interface SuburbStatistic extends AuditInterface {
category: string;
label: string;
value: number;
suburbId: string;
suburb: SuburbInterface;
}
export interface SuburbStatisticServer extends AuditInterface {
category: string;
label: string;
value: number;
suburbId: string;
suburb: mongoose.Types.ObjectId;
}
export interface CurrencyDataInterface {
_id?: string;
code: string;
value: number;
}
export interface AuthInterface {
uid: string;
token: string;
sessionTime: string;
}
export { TenantInterface, GooglePlacesInterface, ProjectGooglePlacesInterface };
export interface PageInterface extends AuditInterface {
tenantId: string;
tenant: TenantInterface;
slug: string;
title: string;
description: string;
imageUrl: string;
}
export interface PageDetailInterface extends AuditInterface {
pageId: string;
page: PageInterface;
templateId: string;
template: TemplateDesignInterface;
order: number;
templateData: string[];
}