import { observable } from "mobx"; import Collection from "./Collection"; import Document from "./Document"; import User from "./User"; import Model from "./base/Model"; import Field from "./decorators/Field"; import Relation from "./decorators/Relation"; class Share extends Model { static modelName = "Share"; @Field @observable published: boolean; @Field @observable includeChildDocuments: boolean; /** The document ID that is shared. */ @Field @observable documentId: string; /** The document that is shared. */ @Relation(() => Document, { onDelete: "cascade" }) document: Document; /** The collection ID that is shared. */ @Field @observable collectionId: string; /** The collection that is shared. */ @Relation(() => Collection, { onDelete: "cascade" }) collection: Collection; @Field @observable urlId: string; @Field @observable domain: string; @observable documentTitle: string; @observable documentUrl: string; @observable lastAccessedAt: string | null | undefined; @observable url: string; /** The user that shared the document. */ @Relation(() => User, { onDelete: "null" }) createdBy: User; } export default Share;