@arkasuryawan/m2-interfaces
Version:
Squaremetre Data Interfaces
165 lines (164 loc) • 4.7 kB
TypeScript
import mongoose from "mongoose";
import { AuditInterface, ProjectInterface, TenantInterface } from ".";
export declare const PaymentGatewayOption: string[];
export declare type PaymentGatewayType = "SQUAREUP" | "DOKU" | "BRAINTREE" | "TAZAPAY" | "NAB" | "PAYPALL";
export declare const SocialMediaName: string[];
export declare type SocialMediaNameType = "FACEBOOK" | "INSTAGRAM" | "YOUTUBE" | "LINKEDIN" | "TIKTOK" | "GOOGLE+" | "TWITER" | "PINTEREST";
export declare const TemplateTypeData: string[];
export declare type TemplateType = "NAVBAR" | "FOOTER" | "SECTION";
export interface MenuType {
name: any;
url: string;
subItems?: MenuType[];
class?: string;
col?: number;
active?: boolean;
}
export interface CustomRelationshipManagement {
name?: string;
credential?: unknown;
active?: boolean;
}
export 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;
menus?: {
[code: string]: MenuType[];
};
/**
* @abstract New Field for Whitelabel
*/
tenantId: string;
tenant: TenantInterface;
headerTracker?: string;
footerTracker?: string;
/**
* @abstract New available on version 1.1.17
*/
socialMedia?: SocialMediaInterface[];
darkLogo?: string;
lightLogo?: string;
pipedriveToken?: string;
customerRelationshipManagement?: CustomRelationshipManagement[];
officeTime?: {
iconUrl?: string;
title?: string;
description?: string;
};
}
export interface WhiteLabelInterfaceServer 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;
menus?: {
[code: string]: MenuType[];
};
/**
* @abstract New Field for Whitelabel
*/
tenantId: string;
tenant: mongoose.Types.ObjectId;
headerTracker?: string;
footerTracker?: string;
/**
* @abstract New available on version 1.1.17
*/
socialMedia?: mongoose.Types.ObjectId[];
darkLogo?: string;
lightLogo?: string;
officeTime?: {
iconUrl?: string;
title?: string;
description?: string;
};
}
/**
* @abstract New available on version 1.1.17
*/
export interface TemplateDesignInterface extends AuditInterface {
name: string;
imageUrl: string;
type: TemplateType;
exampleURL?: string;
dataType?: "ARRAY" | "OBJECT";
templateDataType: string;
}
export interface SocialMediaInterface {
name: SocialMediaNameType;
url: string;
tile: string;
}
export interface NavbarDataInterface {
}
export interface FooterSectionInterface {
title?: string;
image?: string;
shortDescription?: string;
menus?: MenuType[];
listStyle?: "list-none" | "list-disc" | "list-decimal";
listStylePosition?: "list-inside" | "list-outside";
listPosition?: "row" | "Col";
listStyleImage?: string;
lineHeight?: number;
}
export interface FooterDataInterface {
[code: number]: FooterSectionInterface[];
}
export interface WhitelabelTemplateInterface {
navbarDesignId: string;
navbarDesign: TemplateDesignInterface;
navbarData: NavbarDataInterface;
footerDesignId: string;
footerDesign: TemplateDesignInterface;
footerData: FooterDataInterface;
}
export interface WhitelabelTemplateInterfaceServer {
navbarDesignId: string;
navbarDesign: mongoose.Types.ObjectId;
navbarData: NavbarDataInterface;
footerDesignId: string;
footerDesign: mongoose.Types.ObjectId;
footerData: FooterDataInterface;
}
/**
* @abstract ===== END update version
*/
export interface WhiteLabelPaymentGatewayInterface extends AuditInterface {
whitelableId: string;
whiteLabel: WhiteLabelInterface;
projectId: string;
project: ProjectInterface;
paymentGateway: PaymentGatewayType;
token: any;
}
export interface WhiteLabelPaymentGatewayInterfaceServer extends AuditInterface {
whitelableId: string;
whiteLabel: mongoose.Types.ObjectId;
projectId: string;
project: mongoose.Types.ObjectId;
paymentGateway: PaymentGatewayType;
token: any;
}