UNPKG

@aptly-as/types

Version:
121 lines (120 loc) 3.42 kB
import { AptlyBaseSchema } from './extends.js'; import { AptlyWebhookType } from '../enums/index.js'; import { AptlyAppSandbox, AptlyField, AptlyScopes } from '../core/index.js'; import { AptlyMediaSrcSchema } from './media.js'; export type AptlyApp = AptlyAppSchema<string, string>; export interface AptlyAppSchema<ID, DATE> extends Omit<AptlyBaseSchema<ID, DATE>, 'archived'> { 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; 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 = "", Project = "project", Options = "options", Service = "service", Products = "products", Content = "content", Admin = "admin" } export declare enum AptlyProjectInjection { Base = "", Options = "options", Service = "service", Products = "products", Content = "content", Project = "project", Support = "support", Admin = "admin" } 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; 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" }