@wepublish/api-db-mongodb
Version:
We.publish Database adapter for mongoDB
296 lines • 7.33 kB
TypeScript
import { ArticleBlock, CommentItemType, CommentAuthorType, CommentRejectionReason, CommentState, AvailablePaymentMethod, FocalPoint, InvoiceItem, MetadataProperty, NavigationLink, PageBlock, PaymentProviderCustomer, RichTextNode, CommentRevision, MailLogState, PaymentState, UserAddress, UserOAuth2Account, PaymentPeriodicity, SubscriptionPeriod, SubscriptionDeactivation, MemberPlan, Invoice, SettingRestriction, SettingName } from '@wepublish/api';
export declare enum CollectionName {
Migrations = "migrations",
PeerProfiles = "peerProfiles",
Peers = "peers",
Users = "users",
UserRoles = "users.roles",
Subscriptions = "subscriptions",
Sessions = "sessions",
Tokens = "tokens",
Navigations = "navigations",
Authors = "authors",
Images = "images",
Comments = "comments",
Articles = "articles",
ArticlesHistory = "articles.history",
Pages = "pages",
PagesHistory = "pages.history",
MemberPlans = "member.plans",
PaymentMethods = "payment.methods",
Invoices = "invoices",
Payments = "payments",
MailLog = "mail.log",
Settings = "settings"
}
export interface DBMigration {
_id: any;
version: number;
createdAt: Date;
}
export interface DBPeerProfile {
_id: any;
name: string;
logoID?: string;
themeColor: string;
themeFontColor: string;
callToActionURL: string;
callToActionText: RichTextNode[];
callToActionImageURL?: string;
callToActionImageID?: string;
}
export interface DBPeer {
_id: any;
createdAt: Date;
modifiedAt: Date;
name: string;
slug: string;
isDisabled?: boolean;
hostURL: string;
token: string;
}
export interface DBToken {
_id: any;
createdAt: Date;
modifiedAt: Date;
name: string;
token: string;
roleIDs: string[];
}
export interface DBUser {
_id: any;
createdAt: Date;
modifiedAt: Date;
email: string;
emailVerifiedAt: Date | null;
name: string;
firstName?: string;
preferredName?: string;
address?: UserAddress;
password: string;
oauth2Accounts: UserOAuth2Account[];
active: boolean;
lastLogin: Date | null;
properties: MetadataProperty[];
roleIDs: string[];
paymentProviderCustomers: PaymentProviderCustomer[];
}
export interface DBUserRole {
_id: any;
createdAt: Date;
modifiedAt: Date;
name: string;
description?: string;
systemRole: boolean;
permissionIDs: string[];
}
export interface DBSubscription {
_id: any;
createdAt: Date;
modifiedAt: Date;
userID: string;
memberPlanID: string;
paymentPeriodicity: PaymentPeriodicity;
monthlyAmount: number;
autoRenew: boolean;
startsAt: Date;
paidUntil: Date | null;
periods: SubscriptionPeriod[];
paymentMethodID: string;
properties: MetadataProperty[];
deactivation: SubscriptionDeactivation | null;
memberPlan?: MemberPlan;
invoices?: Invoice[];
}
export interface DBSession {
_id: any;
createdAt: Date;
expiresAt: Date;
userID: string;
token: string;
}
export interface DBNavigation {
_id: any;
createdAt: Date;
modifiedAt: Date;
key: string;
name: string;
links: NavigationLink[];
}
export interface DBAuthor {
_id: any;
createdAt: Date;
modifiedAt: Date;
slug: string;
name: string;
jobTitle?: string;
imageID?: string;
links: Array<{
title: string;
url: string;
}>;
bio: RichTextNode[];
}
export interface DBImage {
_id: any;
createdAt: Date;
modifiedAt: Date;
fileSize: number;
extension: string;
mimeType: string;
format: string;
width: number;
height: number;
filename?: string;
title?: string;
description?: string;
tags: string[];
source?: string;
link?: string;
license?: string;
focalPoint?: FocalPoint;
}
export interface DBComment {
_id: any;
createdAt: Date;
modifiedAt: Date;
itemID: string;
itemType: CommentItemType;
userID: string;
revisions: CommentRevision[];
parentID?: string;
state: CommentState;
rejectionReason?: CommentRejectionReason;
authorType: CommentAuthorType;
}
export interface DBArticle {
_id: any;
shared: boolean;
createdAt: Date;
modifiedAt: Date;
draft: DBArticleRevision | null;
published: DBArticleRevision | null;
pending: DBArticleRevision | null;
}
export interface DBArticleRevision {
revision: number;
createdAt: Date;
updatedAt?: Date;
publishedAt?: Date;
publishAt?: Date;
slug: string;
preTitle?: string;
title: string;
lead?: string;
seoTitle?: string;
tags: string[];
properties: MetadataProperty[];
imageID?: string;
authorIDs: string[];
breaking: boolean;
blocks: ArticleBlock[];
hideAuthor: boolean;
socialMediaTitle?: string;
socialMediaDescription?: string;
socialMediaAuthorIDs: string[];
socialMediaImageID?: string;
}
export interface DBArticleHistoryRevision extends DBArticleRevision {
_id: any;
articleID: string;
}
export interface DBPage {
_id: any;
createdAt: Date;
modifiedAt: Date;
draft: DBPageRevision | null;
published: DBPageRevision | null;
pending: DBPageRevision | null;
}
export interface DBPageRevision {
revision: number;
createdAt: Date;
updatedAt?: Date;
publishedAt?: Date;
publishAt?: Date;
slug: string;
title: string;
description?: string;
tags: string[];
properties: MetadataProperty[];
imageID?: string;
socialMediaTitle?: string;
socialMediaDescription?: string;
socialMediaImageID?: string;
blocks: PageBlock[];
}
export interface DBPageHistoryRevision extends DBPageRevision {
_id: any;
articleID: string;
}
export interface DBMemberPlan {
_id: any;
createdAt: Date;
modifiedAt: Date;
name: string;
slug: string;
tags: string[];
imageID?: string;
description: RichTextNode[];
active: boolean;
amountPerMonthMin: number;
availablePaymentMethods: AvailablePaymentMethod[];
}
export interface DBPaymentMethod {
_id: any;
createdAt: Date;
modifiedAt: Date;
name: string;
slug: string;
description: string;
paymentProviderID: string;
active: boolean;
}
export interface DBInvoice {
_id: any;
createdAt: Date;
modifiedAt: Date;
mail: string;
dueAt: Date;
subscriptionID: string;
description?: string;
paidAt: Date | null;
canceledAt: Date | null;
sentReminderAt?: Date;
items: InvoiceItem[];
manuallySetAsPaidByUserId?: string;
}
export interface DBPayment {
_id: any;
createdAt: Date;
modifiedAt: Date;
invoiceID: string;
state: PaymentState;
paymentMethodID: string;
intentID?: string;
intentSecret?: string;
intentData?: string;
paymentData?: string;
}
export interface DBMailLog {
_id: any;
createdAt: Date;
modifiedAt: Date;
recipient: string;
subject: string;
state: MailLogState;
mailProviderID: string;
mailData?: string;
}
export interface DBSetting<T> {
_id: any;
name: SettingName;
value: T | null;
settingRestriction?: SettingRestriction;
}
//# sourceMappingURL=schema.d.ts.map