import { AutoIncrement, BelongsTo, Column, createIndexDecorator, DataType, ForeignKey, Model, PrimaryKey, Table } from 'sequelize-typescript' import { Note, User } from './index' const NoteUserIndex = createIndexDecorator({ unique: true }) @Table export class Author extends Model { @PrimaryKey @AutoIncrement @Column(DataType.INTEGER) id: number @Column(DataType.STRING) color: string @ForeignKey(() => Note) @NoteUserIndex @Column(DataType.UUID) noteId: string @BelongsTo(() => Note, { foreignKey: 'noteId', onDelete: 'CASCADE', constraints: false, hooks: true }) note: Note @ForeignKey(() => User) @NoteUserIndex @Column(DataType.UUID) userId: string @BelongsTo(() => User, { foreignKey: 'userId', onDelete: 'CASCADE', constraints: false, hooks: true }) user: User }