hunk.code_window:   }
     await app.listen(process.env.PORT as string);
   }
   process.on('SIGTERM', () => {
     otelSDK
       .shutdown()
       .then(
         () => console.log('SDK shut down successfully'),
         (err) => console.log('Error shutting down SDK', err)
       )
       .finally(() => process.exit(0));
   });
hunk.labels: keep keep keep keep replace replace replace replace replace replace replace replace replace replace
hunk.file_path: apps/ws/src/bootstrap.ts
hunk.type: replace
file: import { ApiPropertyOptional } from '@nestjs/swagger';
  import { IPreferenceChannels } from '@novu/shared';
  import { IsBoolean, IsOptional } from 'class-validator';
  
  export class PreferenceChannels implements IPreferenceChannels {
    @ApiPropertyOptional()
    @IsBoolean()
    @IsOptional()
    email?: boolean;
  
    @ApiPropertyOptional()
    @IsBoolean()
    @IsOptional()
    sms?: boolean;
  
    @ApiPropertyOptional()
    @IsBoolean()
    @IsOptional()
    in_app?: boolean;
  
    @ApiPropertyOptional()
    @IsBoolean()
    @IsOptional()
    chat?: boolean;
  
    @ApiPropertyOptional()
    @IsBoolean()
    @IsOptional()
    push?: boolean;
  }
  