diff --git a/src/revisions/authorship.entity.ts b/src/revisions/authorship.entity.ts new file mode 100644 index 000000000..960812d06 --- /dev/null +++ b/src/revisions/authorship.entity.ts @@ -0,0 +1,45 @@ +import { + Column, CreateDateColumn, + Entity, + ManyToMany, + ManyToOne, + PrimaryGeneratedColumn, UpdateDateColumn, +} from 'typeorm/index'; +import { User } from '../users/user.entity'; +import { Revision } from './revision.entity'; + +/** + * This class stores which parts of a revision were edited by a particular user. + */ +@Entity() +export class Authorship { + @PrimaryGeneratedColumn('uuid') + id: string; + + /** + * Revisions this authorship appears in + */ + @ManyToMany( + _ => Revision, + revision => revision.authorships, + ) + revisions: Revision[]; + + /** + * User this authorship represents + */ + @ManyToOne(_ => User) + user: User; + + @Column() + startPos: number + + @Column() + endPos: number + + @CreateDateColumn() + createdAt: Date + + @UpdateDateColumn() + updatedAt: Date +} diff --git a/src/revisions/revisions.module.ts b/src/revisions/revisions.module.ts index ec44e5d01..6b1bc365f 100644 --- a/src/revisions/revisions.module.ts +++ b/src/revisions/revisions.module.ts @@ -1,10 +1,11 @@ import { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; +import { Authorship } from './authorship.entity'; import { Revision } from './revision.entity'; import { RevisionsService } from './revisions.service'; @Module({ - imports: [TypeOrmModule.forFeature([Revision])], + imports: [TypeOrmModule.forFeature([Revision, Authorship])], providers: [RevisionsService], exports: [RevisionsService], })