F4.6 · retirar Campañas del producto activo
This commit is contained in:
+11
-24
@@ -3,29 +3,27 @@ import { ConfigModule, ConfigService } from '@nestjs/config';
|
|||||||
import { APP_GUARD } from '@nestjs/core';
|
import { APP_GUARD } from '@nestjs/core';
|
||||||
import { ThrottlerGuard, ThrottlerModule } from '@nestjs/throttler';
|
import { ThrottlerGuard, ThrottlerModule } from '@nestjs/throttler';
|
||||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||||
import { AuditModule } from './audit/audit.module';
|
import { ActAdministrationModule } from './act-administration/act-administration.module';
|
||||||
import { AdministrationModule } from './administration/administration.module';
|
import { AdministrationModule } from './administration/administration.module';
|
||||||
import { AuthorizationModule } from './authorization/authorization.module';
|
import { AssetImportsModule } from './asset-imports/asset-imports.module';
|
||||||
import { PermissionsGuard } from './authorization/guards/permissions.guard';
|
import { AssetMasterModule } from './asset-master/asset-master.module';
|
||||||
|
import { AuditModule } from './audit/audit.module';
|
||||||
import { AuthModule } from './auth/auth.module';
|
import { AuthModule } from './auth/auth.module';
|
||||||
import { AccessTokenGuard } from './auth/guards/access-token.guard';
|
import { AccessTokenGuard } from './auth/guards/access-token.guard';
|
||||||
|
import { AuthorizationModule } from './authorization/authorization.module';
|
||||||
|
import { PermissionsGuard } from './authorization/guards/permissions.guard';
|
||||||
import { CsrfGuard } from './auth/guards/csrf.guard';
|
import { CsrfGuard } from './auth/guards/csrf.guard';
|
||||||
import { PhaseADataModule } from './core-data/phase-a-data.module';
|
import { PhaseADataModule } from './core-data/phase-a-data.module';
|
||||||
|
import { DashboardModule } from './dashboard/dashboard.module';
|
||||||
import { HealthController } from './health.controller';
|
import { HealthController } from './health.controller';
|
||||||
import { HealthService } from './health.service';
|
import { HealthService } from './health.service';
|
||||||
import { DashboardModule } from './dashboard/dashboard.module';
|
|
||||||
import { AssetMasterModule } from './asset-master/asset-master.module';
|
|
||||||
import { SurveyPlanningModule } from './survey-planning/survey-planning.module';
|
|
||||||
import { SurveyExecutionModule } from './survey-execution/survey-execution.module';
|
|
||||||
import { InspectionVisitsModule } from './inspection-visits/inspection-visits.module';
|
|
||||||
import { InspectionActsModule } from './inspection-acts/inspection-acts.module';
|
import { InspectionActsModule } from './inspection-acts/inspection-acts.module';
|
||||||
import { InspectionFindingsModule } from './inspection-findings/inspection-findings.module';
|
|
||||||
import { InspectionClosingModule } from './inspection-closing/inspection-closing.module';
|
import { InspectionClosingModule } from './inspection-closing/inspection-closing.module';
|
||||||
import { InspectionDeadlinesModule } from './inspection-deadlines/inspection-deadlines.module';
|
import { InspectionDeadlinesModule } from './inspection-deadlines/inspection-deadlines.module';
|
||||||
import { AssetImportsModule } from './asset-imports/asset-imports.module';
|
import { InspectionFindingsModule } from './inspection-findings/inspection-findings.module';
|
||||||
import { InspectionReportsModule } from './inspection-reports/inspection-reports.module';
|
import { InspectionReportsModule } from './inspection-reports/inspection-reports.module';
|
||||||
import { InspectionVerificationsModule } from './inspection-verifications/inspection-verifications.module';
|
import { InspectionVerificationsModule } from './inspection-verifications/inspection-verifications.module';
|
||||||
import { ActAdministrationModule } from './act-administration/act-administration.module';
|
import { InspectionVisitsModule } from './inspection-visits/inspection-visits.module';
|
||||||
|
|
||||||
function required(config: ConfigService, key: string): string {
|
function required(config: ConfigService, key: string): string {
|
||||||
const value = config.get<string>(key);
|
const value = config.get<string>(key);
|
||||||
@@ -35,10 +33,7 @@ function required(config: ConfigService, key: string): string {
|
|||||||
|
|
||||||
@Module({
|
@Module({
|
||||||
imports: [
|
imports: [
|
||||||
ConfigModule.forRoot({
|
ConfigModule.forRoot({ isGlobal: true, ignoreEnvFile: true }),
|
||||||
isGlobal: true,
|
|
||||||
ignoreEnvFile: true,
|
|
||||||
}),
|
|
||||||
TypeOrmModule.forRootAsync({
|
TypeOrmModule.forRootAsync({
|
||||||
inject: [ConfigService],
|
inject: [ConfigService],
|
||||||
useFactory: (config: ConfigService) => ({
|
useFactory: (config: ConfigService) => ({
|
||||||
@@ -56,13 +51,7 @@ function required(config: ConfigService, key: string): string {
|
|||||||
connectTimeoutMS: 5000,
|
connectTimeoutMS: 5000,
|
||||||
}),
|
}),
|
||||||
}),
|
}),
|
||||||
ThrottlerModule.forRoot([
|
ThrottlerModule.forRoot([{ name: 'default', ttl: 60_000, limit: 120 }]),
|
||||||
{
|
|
||||||
name: 'default',
|
|
||||||
ttl: 60_000,
|
|
||||||
limit: 120,
|
|
||||||
},
|
|
||||||
]),
|
|
||||||
PhaseADataModule,
|
PhaseADataModule,
|
||||||
AuditModule,
|
AuditModule,
|
||||||
AuthorizationModule,
|
AuthorizationModule,
|
||||||
@@ -70,8 +59,6 @@ function required(config: ConfigService, key: string): string {
|
|||||||
AdministrationModule,
|
AdministrationModule,
|
||||||
DashboardModule,
|
DashboardModule,
|
||||||
AssetMasterModule,
|
AssetMasterModule,
|
||||||
SurveyPlanningModule,
|
|
||||||
SurveyExecutionModule,
|
|
||||||
InspectionVisitsModule,
|
InspectionVisitsModule,
|
||||||
InspectionActsModule,
|
InspectionActsModule,
|
||||||
InspectionFindingsModule,
|
InspectionFindingsModule,
|
||||||
|
|||||||
@@ -6,14 +6,8 @@ export { Role } from './role.entity';
|
|||||||
export { UserRole } from './user-role.entity';
|
export { UserRole } from './user-role.entity';
|
||||||
export { User, UserStatus } from './user.entity';
|
export { User, UserStatus } from './user.entity';
|
||||||
export { Asset, AssetDataOrigin, AssetInformationStatus, AssetOperationalStatus } from './asset.entity';
|
export { Asset, AssetDataOrigin, AssetInformationStatus, AssetOperationalStatus } from './asset.entity';
|
||||||
export {
|
export { AssetVersion, AssetVersionChangeType } from './asset-version.entity';
|
||||||
AssetVersion,
|
export { AssetAttributeDataType, AssetAttributeDefinition } from './asset-attribute-definition.entity';
|
||||||
AssetVersionChangeType,
|
|
||||||
} from './asset-version.entity';
|
|
||||||
export {
|
|
||||||
AssetAttributeDataType,
|
|
||||||
AssetAttributeDefinition,
|
|
||||||
} from './asset-attribute-definition.entity';
|
|
||||||
export { AssetAttributeValue } from './asset-attribute-value.entity';
|
export { AssetAttributeValue } from './asset-attribute-value.entity';
|
||||||
export { AreaCompanyRelation, AreaOrganizationRole } from './area-company-relation.entity';
|
export { AreaCompanyRelation, AreaOrganizationRole } from './area-company-relation.entity';
|
||||||
export { OrganizationProfile, OrganizationKind } from './organization-profile.entity';
|
export { OrganizationProfile, OrganizationKind } from './organization-profile.entity';
|
||||||
@@ -25,121 +19,35 @@ export { AreaLegalRight, AreaLegalRightType, AreaLegalRightStatus } from './area
|
|||||||
export { AreaLegalRightOrganization, AreaLegalRightOrganizationRole } from './area-legal-right-organization.entity';
|
export { AreaLegalRightOrganization, AreaLegalRightOrganizationRole } from './area-legal-right-organization.entity';
|
||||||
export { AssetTypeParentRule } from './asset-type-parent-rule.entity';
|
export { AssetTypeParentRule } from './asset-type-parent-rule.entity';
|
||||||
export { AssetType, AssetTypeOperationalRole } from './asset-type.entity';
|
export { AssetType, AssetTypeOperationalRole } from './asset-type.entity';
|
||||||
export {
|
export { AssetGeometry, AssetGeometrySource, AssetGeometryType } from './asset-geometry.entity';
|
||||||
AssetGeometry,
|
export { AssetMedia, AssetMediaKind, AssetMediaSource } from './asset-media.entity';
|
||||||
AssetGeometrySource,
|
export { InspectionVisit, InspectionVisitStatus } from './inspection-visit.entity';
|
||||||
AssetGeometryType,
|
|
||||||
} from './asset-geometry.entity';
|
|
||||||
export {
|
|
||||||
AssetMedia,
|
|
||||||
AssetMediaKind,
|
|
||||||
AssetMediaSource,
|
|
||||||
} from './asset-media.entity';
|
|
||||||
export {
|
|
||||||
SurveyCampaign,
|
|
||||||
SurveyCampaignStatus,
|
|
||||||
} from './survey-campaign.entity';
|
|
||||||
export {
|
|
||||||
SurveyCampaignTarget,
|
|
||||||
SurveyTargetStatus,
|
|
||||||
} from './survey-campaign-target.entity';
|
|
||||||
export {
|
|
||||||
SurveyReportOutcome,
|
|
||||||
SurveyReportStatus,
|
|
||||||
SurveyTargetReport,
|
|
||||||
} from './survey-target-report.entity';
|
|
||||||
export { SurveyTargetReportMedia } from './survey-target-report-media.entity';
|
|
||||||
export {
|
|
||||||
SurveyReportVersionEvent,
|
|
||||||
SurveyTargetReportVersion,
|
|
||||||
} from './survey-target-report-version.entity';
|
|
||||||
export {
|
|
||||||
InspectionVisit,
|
|
||||||
InspectionVisitStatus,
|
|
||||||
} from './inspection-visit.entity';
|
|
||||||
export { InspectionVisitAsset, InspectionVisitAssetPlanningSource } from './inspection-visit-asset.entity';
|
export { InspectionVisitAsset, InspectionVisitAssetPlanningSource } from './inspection-visit-asset.entity';
|
||||||
export { InspectionVisitMember } from './inspection-visit-member.entity';
|
export { InspectionVisitMember } from './inspection-visit-member.entity';
|
||||||
export {
|
export { DocumentAnnualSequence, DocumentSequenceType } from './document-annual-sequence.entity';
|
||||||
DocumentAnnualSequence,
|
export { InspectionAct, InspectionActStatus, InspectionActUrgency, InspectionDeadlineBasis, InspectionDeadlineDayType } from './inspection-act.entity';
|
||||||
DocumentSequenceType,
|
|
||||||
} from './document-annual-sequence.entity';
|
|
||||||
export {
|
|
||||||
InspectionAct,
|
|
||||||
InspectionActStatus,
|
|
||||||
InspectionActUrgency,
|
|
||||||
InspectionDeadlineBasis,
|
|
||||||
InspectionDeadlineDayType,
|
|
||||||
} from './inspection-act.entity';
|
|
||||||
export { InspectionActAsset } from './inspection-act-asset.entity';
|
export { InspectionActAsset } from './inspection-act-asset.entity';
|
||||||
export { InspectionDeadlinePolicy } from './inspection-deadline-policy.entity';
|
export { InspectionDeadlinePolicy } from './inspection-deadline-policy.entity';
|
||||||
export { InspectionNonWorkingDay } from './inspection-non-working-day.entity';
|
export { InspectionNonWorkingDay } from './inspection-non-working-day.entity';
|
||||||
export {
|
export { InspectionReport, InspectionReportPdfStatus, InspectionReportReviewStatus, InspectionReportStatus, InspectionReportWordStatus } from './inspection-report.entity';
|
||||||
InspectionReport,
|
export { InspectionReportFollowUp, InspectionReportFollowUpType } from './inspection-report-follow-up.entity';
|
||||||
InspectionReportPdfStatus,
|
|
||||||
InspectionReportReviewStatus,
|
|
||||||
InspectionReportStatus,
|
|
||||||
InspectionReportWordStatus,
|
|
||||||
} from './inspection-report.entity';
|
|
||||||
export {
|
|
||||||
InspectionReportFollowUp,
|
|
||||||
InspectionReportFollowUpType,
|
|
||||||
} from './inspection-report-follow-up.entity';
|
|
||||||
export { InspectionReportFollowUpFile } from './inspection-report-follow-up-file.entity';
|
export { InspectionReportFollowUpFile } from './inspection-report-follow-up-file.entity';
|
||||||
export {
|
export { InspectionActVersion, InspectionActVersionEvent } from './inspection-act-version.entity';
|
||||||
InspectionActVersion,
|
export { InspectionActResponsible, InspectionResponsibleAttendanceStatus, InspectionResponsibleDocumentType } from './inspection-act-responsible.entity';
|
||||||
InspectionActVersionEvent,
|
export { InspectionActClosure, InspectionActUploadMode } from './inspection-act-closure.entity';
|
||||||
} from './inspection-act-version.entity';
|
export { InspectionActSignature, InspectionActSignatureSource, InspectionActSignatureStatus, InspectionActSignerType, InspectionCompanySignatureManifestation } from './inspection-act-signature.entity';
|
||||||
export {
|
|
||||||
InspectionActResponsible,
|
|
||||||
InspectionResponsibleAttendanceStatus,
|
|
||||||
InspectionResponsibleDocumentType,
|
|
||||||
} from './inspection-act-responsible.entity';
|
|
||||||
export {
|
|
||||||
InspectionActClosure,
|
|
||||||
InspectionActUploadMode,
|
|
||||||
} from './inspection-act-closure.entity';
|
|
||||||
export {
|
|
||||||
InspectionActSignature,
|
|
||||||
InspectionActSignatureSource,
|
|
||||||
InspectionActSignatureStatus,
|
|
||||||
InspectionActSignerType,
|
|
||||||
InspectionCompanySignatureManifestation,
|
|
||||||
} from './inspection-act-signature.entity';
|
|
||||||
export { FindingCategory } from './finding-category.entity';
|
export { FindingCategory } from './finding-category.entity';
|
||||||
export { FindingCatalogItem } from './finding-catalog-item.entity';
|
export { FindingCatalogItem } from './finding-catalog-item.entity';
|
||||||
export { FindingCatalogItemAssetType } from './finding-catalog-item-asset-type.entity';
|
export { FindingCatalogItemAssetType } from './finding-catalog-item-asset-type.entity';
|
||||||
export { FindingCatalogAssetTypeProfile } from './finding-catalog-asset-type-profile.entity';
|
export { FindingCatalogAssetTypeProfile } from './finding-catalog-asset-type-profile.entity';
|
||||||
export { FindingCatalogAssetOverride } from './finding-catalog-asset-override.entity';
|
export { FindingCatalogAssetOverride } from './finding-catalog-asset-override.entity';
|
||||||
export { FindingCatalogProposal, FindingCatalogProposalStatus } from './finding-catalog-proposal.entity';
|
export { FindingCatalogProposal, FindingCatalogProposalStatus } from './finding-catalog-proposal.entity';
|
||||||
export {
|
export { InspectionFinding, InspectionFindingResponseDueBasis, InspectionFindingStatus } from './inspection-finding.entity';
|
||||||
InspectionFinding,
|
export { InspectionFindingVersion, InspectionFindingVersionEvent } from './inspection-finding-version.entity';
|
||||||
InspectionFindingResponseDueBasis,
|
export { InspectionCommunicationChannel, InspectionCommunicationDirection, InspectionCommunicationType, InspectionFindingCommunication } from './inspection-finding-communication.entity';
|
||||||
InspectionFindingStatus,
|
export { InspectionEvidenceKind, InspectionEvidencePurpose, InspectionEvidenceSource, InspectionFindingEvidence } from './inspection-finding-evidence.entity';
|
||||||
} from './inspection-finding.entity';
|
export { InspectionFindingVerificationVisit, InspectionVerificationOutcome } from './inspection-finding-verification-visit.entity';
|
||||||
export {
|
export { InspectionFindingVerificationEvent, InspectionFindingVerificationEventType } from './inspection-finding-verification-event.entity';
|
||||||
InspectionFindingVersion,
|
|
||||||
InspectionFindingVersionEvent,
|
|
||||||
} from './inspection-finding-version.entity';
|
|
||||||
export {
|
|
||||||
InspectionCommunicationChannel,
|
|
||||||
InspectionCommunicationDirection,
|
|
||||||
InspectionCommunicationType,
|
|
||||||
InspectionFindingCommunication,
|
|
||||||
} from './inspection-finding-communication.entity';
|
|
||||||
export {
|
|
||||||
InspectionEvidenceKind,
|
|
||||||
InspectionEvidencePurpose,
|
|
||||||
InspectionEvidenceSource,
|
|
||||||
InspectionFindingEvidence,
|
|
||||||
} from './inspection-finding-evidence.entity';
|
|
||||||
export {
|
|
||||||
InspectionFindingVerificationVisit,
|
|
||||||
InspectionVerificationOutcome,
|
|
||||||
} from './inspection-finding-verification-visit.entity';
|
|
||||||
export {
|
|
||||||
InspectionFindingVerificationEvent,
|
|
||||||
InspectionFindingVerificationEventType,
|
|
||||||
} from './inspection-finding-verification-event.entity';
|
|
||||||
|
|
||||||
import { AuditEvent } from './audit-event.entity';
|
import { AuditEvent } from './audit-event.entity';
|
||||||
import { AuthSession } from './auth-session.entity';
|
import { AuthSession } from './auth-session.entity';
|
||||||
@@ -164,11 +72,6 @@ import { AreaLegalRightOrganization } from './area-legal-right-organization.enti
|
|||||||
import { AssetGeometry } from './asset-geometry.entity';
|
import { AssetGeometry } from './asset-geometry.entity';
|
||||||
import { AssetVersion } from './asset-version.entity';
|
import { AssetVersion } from './asset-version.entity';
|
||||||
import { AssetMedia } from './asset-media.entity';
|
import { AssetMedia } from './asset-media.entity';
|
||||||
import { SurveyCampaign } from './survey-campaign.entity';
|
|
||||||
import { SurveyCampaignTarget } from './survey-campaign-target.entity';
|
|
||||||
import { SurveyTargetReport } from './survey-target-report.entity';
|
|
||||||
import { SurveyTargetReportMedia } from './survey-target-report-media.entity';
|
|
||||||
import { SurveyTargetReportVersion } from './survey-target-report-version.entity';
|
|
||||||
import { InspectionVisit } from './inspection-visit.entity';
|
import { InspectionVisit } from './inspection-visit.entity';
|
||||||
import { InspectionVisitAsset } from './inspection-visit-asset.entity';
|
import { InspectionVisitAsset } from './inspection-visit-asset.entity';
|
||||||
import { InspectionVisitMember } from './inspection-visit-member.entity';
|
import { InspectionVisitMember } from './inspection-visit-member.entity';
|
||||||
@@ -198,59 +101,17 @@ import { InspectionFindingVerificationVisit } from './inspection-finding-verific
|
|||||||
import { InspectionFindingVerificationEvent } from './inspection-finding-verification-event.entity';
|
import { InspectionFindingVerificationEvent } from './inspection-finding-verification-event.entity';
|
||||||
|
|
||||||
export const PHASE_A_ENTITIES = [
|
export const PHASE_A_ENTITIES = [
|
||||||
User,
|
User, Role, Permission, UserRole, RolePermission, AuthSession, AuditEvent,
|
||||||
Role,
|
AssetType, AssetTypeParentRule, AssetAttributeDefinition, Asset, AssetAttributeValue,
|
||||||
Permission,
|
AreaCompanyRelation, OrganizationProfile, OrganizationMembership, SourceDocument,
|
||||||
UserRole,
|
AssetSourceDocument, AssetExternalIdentifier, AreaLegalRight, AreaLegalRightOrganization,
|
||||||
RolePermission,
|
AssetGeometry, AssetVersion, AssetMedia, InspectionVisit, InspectionVisitAsset,
|
||||||
AuthSession,
|
InspectionVisitMember, DocumentAnnualSequence, InspectionAct, InspectionActAsset,
|
||||||
AuditEvent,
|
InspectionDeadlinePolicy, InspectionNonWorkingDay, InspectionReport,
|
||||||
AssetType,
|
InspectionReportFollowUp, InspectionReportFollowUpFile, InspectionActVersion,
|
||||||
AssetTypeParentRule,
|
InspectionActResponsible, InspectionActClosure, InspectionActSignature, FindingCategory,
|
||||||
AssetAttributeDefinition,
|
FindingCatalogItem, FindingCatalogItemAssetType, FindingCatalogAssetTypeProfile,
|
||||||
Asset,
|
FindingCatalogAssetOverride, FindingCatalogProposal, InspectionFinding,
|
||||||
AssetAttributeValue,
|
InspectionFindingVersion, InspectionFindingCommunication, InspectionFindingEvidence,
|
||||||
AreaCompanyRelation,
|
InspectionFindingVerificationVisit, InspectionFindingVerificationEvent,
|
||||||
OrganizationProfile,
|
|
||||||
OrganizationMembership,
|
|
||||||
SourceDocument,
|
|
||||||
AssetSourceDocument,
|
|
||||||
AssetExternalIdentifier,
|
|
||||||
AreaLegalRight,
|
|
||||||
AreaLegalRightOrganization,
|
|
||||||
AssetGeometry,
|
|
||||||
AssetVersion,
|
|
||||||
AssetMedia,
|
|
||||||
SurveyCampaign,
|
|
||||||
SurveyCampaignTarget,
|
|
||||||
SurveyTargetReport,
|
|
||||||
SurveyTargetReportMedia,
|
|
||||||
SurveyTargetReportVersion,
|
|
||||||
InspectionVisit,
|
|
||||||
InspectionVisitAsset,
|
|
||||||
InspectionVisitMember,
|
|
||||||
DocumentAnnualSequence,
|
|
||||||
InspectionAct,
|
|
||||||
InspectionActAsset,
|
|
||||||
InspectionDeadlinePolicy,
|
|
||||||
InspectionNonWorkingDay,
|
|
||||||
InspectionReport,
|
|
||||||
InspectionReportFollowUp,
|
|
||||||
InspectionReportFollowUpFile,
|
|
||||||
InspectionActVersion,
|
|
||||||
InspectionActResponsible,
|
|
||||||
InspectionActClosure,
|
|
||||||
InspectionActSignature,
|
|
||||||
FindingCategory,
|
|
||||||
FindingCatalogItem,
|
|
||||||
FindingCatalogItemAssetType,
|
|
||||||
FindingCatalogAssetTypeProfile,
|
|
||||||
FindingCatalogAssetOverride,
|
|
||||||
FindingCatalogProposal,
|
|
||||||
InspectionFinding,
|
|
||||||
InspectionFindingVersion,
|
|
||||||
InspectionFindingCommunication,
|
|
||||||
InspectionFindingEvidence,
|
|
||||||
InspectionFindingVerificationVisit,
|
|
||||||
InspectionFindingVerificationEvent,
|
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
import { MigrationInterface, QueryRunner } from 'typeorm';
|
||||||
|
|
||||||
|
export class PhaseF4RemoveSurveySubsystem1790053200000 implements MigrationInterface {
|
||||||
|
name = 'PhaseF4RemoveSurveySubsystem1790053200000';
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`
|
||||||
|
DELETE FROM role_permissions
|
||||||
|
WHERE permission_id IN (
|
||||||
|
SELECT id FROM permissions WHERE code LIKE 'surveys.%'
|
||||||
|
)
|
||||||
|
`);
|
||||||
|
await queryRunner.query(`
|
||||||
|
DELETE FROM permissions WHERE code LIKE 'surveys.%'
|
||||||
|
`);
|
||||||
|
|
||||||
|
await queryRunner.query(`DROP TABLE IF EXISTS survey_target_report_media`);
|
||||||
|
await queryRunner.query(`DROP TABLE IF EXISTS survey_target_report_versions`);
|
||||||
|
await queryRunner.query(`DROP TABLE IF EXISTS survey_target_reports`);
|
||||||
|
await queryRunner.query(`DROP TABLE IF EXISTS survey_campaign_targets`);
|
||||||
|
await queryRunner.query(`DROP TABLE IF EXISTS survey_campaigns`);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(_queryRunner: QueryRunner): Promise<void> {
|
||||||
|
// Intentionally irreversible: historical migrations still document the old
|
||||||
|
// Survey schema, but restoring dropped campaign/report data would be unsafe.
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
import assert from 'node:assert/strict';
|
||||||
|
import fs from 'node:fs';
|
||||||
|
import path from 'node:path';
|
||||||
|
import test from 'node:test';
|
||||||
|
|
||||||
|
const root = process.cwd();
|
||||||
|
const read = (relative: string) => fs.readFileSync(path.join(root, relative), 'utf8');
|
||||||
|
|
||||||
|
test('F4 removes Survey modules from the active API', () => {
|
||||||
|
const app = read('src/app.module.ts');
|
||||||
|
assert.doesNotMatch(app, /SurveyPlanningModule/);
|
||||||
|
assert.doesNotMatch(app, /SurveyExecutionModule/);
|
||||||
|
const entities = read('src/database/entities/index.ts');
|
||||||
|
assert.doesNotMatch(entities, /SurveyCampaign|SurveyTargetReport|survey-campaign|survey-target-report/);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('F4 removes survey permissions and survey-specific tables through a new cleanup migration', () => {
|
||||||
|
const migration = read('src/database/migrations/1790053200000-phase-f4-remove-survey-subsystem.ts');
|
||||||
|
assert.match(migration, /code LIKE 'surveys\.\%'/);
|
||||||
|
assert.match(migration, /DROP TABLE IF EXISTS survey_target_report_media/);
|
||||||
|
assert.match(migration, /DROP TABLE IF EXISTS survey_target_report_versions/);
|
||||||
|
assert.match(migration, /DROP TABLE IF EXISTS survey_target_reports/);
|
||||||
|
assert.match(migration, /DROP TABLE IF EXISTS survey_campaign_targets/);
|
||||||
|
assert.match(migration, /DROP TABLE IF EXISTS survey_campaigns/);
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user