21 lines
903 B
TypeScript
21 lines
903 B
TypeScript
|
|
import type { Sequelize } from "sequelize";
|
||
|
|
|
||
|
|
/** Retira el vínculo compartido de instantáneas y proyecciones, sin borrar activos ni revisiones. */
|
||
|
|
export async function removeSharedWorkstationAssets(database: Sequelize) {
|
||
|
|
await database.transaction(async (transaction) => {
|
||
|
|
await database.query("DELETE FROM workstation_members WHERE kind='shared'", { transaction });
|
||
|
|
await database.query("DELETE FROM workstation_revision_members WHERE kind='shared'", {
|
||
|
|
transaction,
|
||
|
|
});
|
||
|
|
await database.query(
|
||
|
|
`DELETE reference FROM workstation_assets AS reference
|
||
|
|
WHERE NOT EXISTS (
|
||
|
|
SELECT 1 FROM workstation_revision_members AS member
|
||
|
|
INNER JOIN workstation_revisions AS revision ON revision.id=member.revisionId
|
||
|
|
WHERE revision.workstationId=reference.workstationId AND member.assetId=reference.assetId
|
||
|
|
)`,
|
||
|
|
{ transaction }
|
||
|
|
);
|
||
|
|
});
|
||
|
|
}
|