/* * SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file) * * SPDX-License-Identifier: AGPL-3.0-only */ import { Column, CreateDateColumn, Entity, ManyToMany, ManyToOne, PrimaryGeneratedColumn, UpdateDateColumn, } from 'typeorm'; import { Author } from '../authors/author.entity'; import { Revision } from './revision.entity'; /** * The Edit represents a change in the content of a note by a particular {@link Author} */ @Entity() export class Edit { @PrimaryGeneratedColumn('uuid') id: string; /** * Revisions this edit appears in */ @ManyToMany((_) => Revision, (revision) => revision.edits) revisions: Revision[]; /** * Author that created the change */ @ManyToOne(() => Author, (author) => author.edits) author: Author; @Column() startPos: number; @Column() endPos: number; @CreateDateColumn() createdAt: Date; @UpdateDateColumn() updatedAt: Date; // eslint-disable-next-line @typescript-eslint/no-empty-function private constructor() {} public static create(author: Author, startPos: number, endPos: number) { const newEdit = new Edit(); newEdit.author = author; newEdit.startPos = startPos; newEdit.endPos = endPos; return newEdit; } }