rename albums_shared_users_users to album_permissions and add readonly column

This commit is contained in:
mgabor
2024-04-11 17:12:46 +02:00
parent 22c3d26604
commit de58cd2ebd
3 changed files with 52 additions and 1 deletions

View File

@@ -0,0 +1,17 @@
import { AlbumEntity } from 'src/entities/album.entity';
import { UserEntity } from 'src/entities/user.entity';
import { Column, Entity, ManyToOne, PrimaryColumn } from 'typeorm';
@Entity('albums_shared_users_users')
export class AlbumPermissionsEntity {
@PrimaryColumn({ type: 'uuid', name: 'albumsId', foreignKeyConstraintName: 'FK_f48513bf9bccefd6ff3ad30bd06' })
@ManyToOne(() => AlbumEntity, { onDelete: 'CASCADE', onUpdate: 'CASCADE', nullable: false })
albums!: AlbumEntity;
@PrimaryColumn({ type: 'uuid', name: 'usersId', foreignKeyConstraintName: 'FK_427c350ad49bd3935a50baab737' })
@ManyToOne(() => UserEntity, { onDelete: 'CASCADE', onUpdate: 'CASCADE', nullable: false })
users!: UserEntity;
@Column({ default: true })
readonly!: boolean;
}

View File

@@ -53,7 +53,19 @@ export class AlbumEntity {
albumThumbnailAssetId!: string | null;
@ManyToMany(() => UserEntity)
@JoinTable()
@JoinTable({
name: 'albums_shared_users_users',
inverseJoinColumn: {
name: 'usersId',
referencedColumnName: 'id',
foreignKeyConstraintName: 'FK_f48513bf9bccefd6ff3ad30bd06',
},
joinColumn: {
name: 'albumsId',
referencedColumnName: 'id',
foreignKeyConstraintName: 'FK_427c350ad49bd3935a50baab737',
},
})
sharedUsers!: UserEntity[];
@ManyToMany(() => AssetEntity, (asset) => asset.albums)

View File

@@ -0,0 +1,22 @@
import { MigrationInterface, QueryRunner } from "typeorm";
export class AddAlbumPermissions1712848324419 implements MigrationInterface {
name = 'AddAlbumPermissions1712848324419'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`DROP INDEX "public"."IDX_427c350ad49bd3935a50baab73"`);
await queryRunner.query(`DROP INDEX "public"."IDX_f48513bf9bccefd6ff3ad30bd0"`);
await queryRunner.query(`ALTER TABLE "albums_shared_users_users" ADD "readonly" boolean NOT NULL DEFAULT true`);
await queryRunner.query(`CREATE INDEX "IDX_427c350ad49bd3935a50baab73" ON "albums_shared_users_users" ("albumsId") `);
await queryRunner.query(`CREATE INDEX "IDX_f48513bf9bccefd6ff3ad30bd0" ON "albums_shared_users_users" ("usersId") `);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`DROP INDEX "public"."IDX_f48513bf9bccefd6ff3ad30bd0"`);
await queryRunner.query(`DROP INDEX "public"."IDX_427c350ad49bd3935a50baab73"`);
await queryRunner.query(`ALTER TABLE "albums_shared_users_users" DROP COLUMN "readonly"`);
await queryRunner.query(`CREATE INDEX "IDX_f48513bf9bccefd6ff3ad30bd0" ON "albums_shared_users_users" ("usersId") `);
await queryRunner.query(`CREATE INDEX "IDX_427c350ad49bd3935a50baab73" ON "albums_shared_users_users" ("albumsId") `);
}
}