@aptly-as/types
Version:
Aptly types and enums
126 lines (125 loc) • 3.69 kB
TypeScript
import { AptlyBaseSchema } from './extends.js';
import { AptlySlugLevel, AptlyWebhookType } from '../enums/index.js';
import { AptlyAppSandbox, AptlyAppScope, AptlyField, AptlyScopes } from '../core/index.js';
import { AptlyMediaSrcSchema } from './media.js';
export type AptlyApp = AptlyAppSchema<string, string>;
export interface AptlyAppSchema<ID, DATE> extends AptlyBaseSchema<ID, DATE> {
slug: string;
description: string;
installUrl: string;
redirectUris: string[];
clientSecret: string;
user: ID;
logo?: AptlyMediaSrcSchema<ID, DATE> | null;
banner?: AptlyMediaSrcSchema<ID, DATE> | null;
settings: AptlyAppSettingSchema<ID>[];
webhooks: AptlyAppWebhookSchema<ID>[];
menus: AptlyAppMenuSchema<ID, DATE>[];
actions: AptlyAppActionSchema<ID>[];
cost?: number;
scopes: AptlyAppScope[];
implements: AptlyAppImplementation[];
sign?: {
orderUrl: string;
};
payment?: {
orderUrl: string;
cancelUrl: string;
captureUrl: string;
voidUrl: string;
};
}
export interface AptlyAppSignMethod {
value: string;
label: string;
}
export declare enum AptlyAppImplementation {
Sign = "sign",
Payment = "payment"
}
export declare enum AptlyAppImplementationSetting {
SignCostPer = "costPerSign",
SignMethod = "signMethod",
PaymentSellerId = "seller_id"
}
export type AptlyAppSetting = AptlyAppSettingSchema<string>;
export interface AptlyAppSettingSchema<ID> extends AptlyField {
_id: ID;
key: string;
defaultValue: any;
scope?: AptlyScopes | null;
}
export type AptlyAppWebhook = AptlyAppWebhookSchema<string>;
export interface AptlyAppWebhookSchema<ID> {
_id: ID;
types: AptlyWebhookType[];
url: string;
}
export declare enum AptlyUserInjection {
Base = "",
Admin = "admin"
}
export declare enum AptlyAdminInjection {
Base = "",
Content = "content",
Modules = "modules",
Admin = "admin"
}
export declare enum AptlyOrganizationInjection {
Base = "",
Options = "options",
Admin = "admin",
AdminContent = "admin-content",
AdminReports = "admin-reports",
AdminSettings = "admin-settings",
AdminIntegrations = "admin-integrations",
AdminBeta = "admin-beta"
}
export declare enum AptlyProjectInjection {
Base = "",
Support = "support",
Admin = "admin",
AdminContent = "admin-content",
AdminOptions = "admin-options",
AdminReports = "admin-reports",
AdminSettings = "admin-settings",
AdminIntegrations = "admin-integrations",
AdminBeta = "admin-beta"
}
export declare enum AptlyUnitInjection {
Base = "",
Options = "options",
Service = "service",
Reports = "reports",
Support = "support",
Admin = "admin"
}
export type AptlyAppInjectionMenu = `organization-${AptlyOrganizationInjection}` | `project-${AptlyProjectInjection}` | `unit-${AptlyUnitInjection}`;
export declare enum AptlyAppInjectionType {
Iframe = "iframe"
}
export type AptlyAppMenu = AptlyAppMenuSchema<string, string>;
export interface AptlyAppMenuSchema<ID, DATE> {
_id: ID;
type: AptlyAppInjectionType;
level: AptlySlugLevel;
scope: AptlyScopes;
menu: AptlyAppInjectionMenu[];
model: AptlyScopes;
label: string;
icon?: AptlyMediaSrcSchema<ID, DATE> | null;
src: string;
sandbox: AptlyAppSandbox[];
}
export type AptlyAppAction = AptlyAppActionSchema<string>;
export interface AptlyAppActionSchema<ID> {
_id: ID;
model: AptlyAppActionModel;
scope: AptlyScopes;
webhook: AptlyWebhookType;
label: string;
stateJSON: string;
}
export declare enum AptlyAppActionModel {
Order = "Order"
}