- Asociar entornos locales con activos y conservar su trazabilidad. - Registrar la cuenta de acceso del mapeo con historial de cambios. - Calcular cobertura documental específica sin alterar la cobertura general. - Añadir migraciones, validaciones, endpoints protegidos, pruebas y documentación.
30 lines
1.8 KiB
TypeScript
30 lines
1.8 KiB
TypeScript
import type { Sequelize } from "sequelize";
|
|
|
|
export async function migrateNetworkSharePublications(database: Sequelize) {
|
|
await database.query(`CREATE TABLE IF NOT EXISTS asset_network_share_publications (
|
|
id CHAR(36) BINARY NOT NULL PRIMARY KEY,
|
|
companyId CHAR(36) BINARY NOT NULL,
|
|
assetId CHAR(36) BINARY NOT NULL,
|
|
resourceId CHAR(36) BINARY NOT NULL,
|
|
predecessorId CHAR(36) BINARY NULL,
|
|
startedAt VARCHAR(30) NOT NULL,
|
|
startedBy CHAR(36) BINARY NOT NULL,
|
|
endedAt VARCHAR(30) NULL,
|
|
endedBy CHAR(36) BINARY NULL,
|
|
activeResourceId CHAR(36) BINARY NULL,
|
|
UNIQUE KEY publication_active_resource (activeResourceId),
|
|
UNIQUE KEY publication_successor (predecessorId),
|
|
UNIQUE KEY publication_scope (id,companyId,resourceId),
|
|
KEY publication_asset (companyId,assetId,id),
|
|
KEY publication_resource (companyId,resourceId,id),
|
|
CONSTRAINT publication_active CHECK ((endedAt IS NULL AND endedBy IS NULL AND activeResourceId IS NOT NULL AND activeResourceId=resourceId) OR (endedAt IS NOT NULL AND endedBy IS NOT NULL AND activeResourceId IS NULL)),
|
|
CONSTRAINT publication_previous_identity CHECK (predecessorId IS NULL OR predecessorId<>id),
|
|
CONSTRAINT publication_period CHECK (endedAt IS NULL OR endedAt>=startedAt),
|
|
CONSTRAINT publication_asset_fk FOREIGN KEY (companyId,assetId) REFERENCES assets(companyId,id),
|
|
CONSTRAINT publication_share_fk FOREIGN KEY (resourceId,companyId) REFERENCES resource_network_shares(resourceId,companyId),
|
|
CONSTRAINT publication_previous_fk FOREIGN KEY (predecessorId,companyId,resourceId) REFERENCES asset_network_share_publications(id,companyId,resourceId),
|
|
CONSTRAINT publication_start_actor FOREIGN KEY (startedBy) REFERENCES users(id),
|
|
CONSTRAINT publication_end_actor FOREIGN KEY (endedBy) REFERENCES users(id)
|
|
) ENGINE=InnoDB`);
|
|
}
|