@arkasuryawan/m2-interfaces
Version:
Squaremetre Data Interfaces
120 lines (119 loc) • 3.5 kB
TypeScript
import mongoose from "mongoose";
import { AddressInterface, AuditInterface, ProjectInterface, ProjectLotInterface, TenantType } from "../interfaces";
export declare type TenantAggregatorRequestType = "Requesting" | "Approved" | "Rejected";
export interface TenantInterface extends AuditInterface {
legalName?: string;
name?: string;
status?: "Active" | "Archived";
/**
* @deprecated The method should not be used move to `tenantTypes`
*/
tenantType?: TenantType;
coa?: string;
/**
* @abstract New field moving from `tenantType`
*/
tenantTypes?: string[];
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[];
integrationTokens: {
provider: string;
token: any;
}[];
packageId?: string;
package?: TenantPackageInterface;
}
export interface TenantInterfaceServer extends AuditInterface {
legalName?: string;
name?: string;
status?: "Active" | "Archived";
/**
* @deprecated The method should not be used move to `tenantTypes`
*/
tenantType?: TenantType;
coa?: string;
/**
* @abstract New field moving from `tenantType`
*/
tenantTypes?: string[];
bannerURL?: string;
thumbnailURL?: string;
externalId?: string;
slug?: string;
shortDescription?: string;
description?: string;
address?: mongoose.Types.ObjectId[];
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?: mongoose.Types.ObjectId[];
integrationTokens: {
provider: string;
token: any;
}[];
packageId?: string;
package?: mongoose.Types.ObjectId;
}
export interface TenantPackageInterface extends AuditInterface {
name: string;
description: string;
}
export interface TenantAggregatorRequestInterface extends AuditInterface {
agencyId: string;
agency?: TenantInterface;
aggregatorId: string;
aggregator?: TenantInterface;
status: TenantAggregatorRequestType;
}
export interface TenantAggregatorRequestInterfaceServer extends AuditInterface {
agencyId: string;
agency?: mongoose.Types.ObjectId;
aggregatorId: string;
aggregator?: mongoose.Types.ObjectId;
status: TenantAggregatorRequestType;
}
export interface TenantExcludeProjectInterface extends AuditInterface {
tenantId: string;
projectId: string;
}
export interface TenantProjectInterface extends AuditInterface {
tenantId: string;
tenant: TenantInterface;
projectId: string;
project: ProjectInterface;
projectLotIds: string[];
projectLots: ProjectLotInterface[];
}
export interface TenantProjectInterfaceServer extends AuditInterface {
tenantId: string;
tenant: mongoose.Types.ObjectId;
projectId: string;
project: mongoose.Types.ObjectId;
projectLotIds: string[];
projectLots: mongoose.Types.ObjectId[];
}