diff --git a/src/entity/MarketingCta.ts b/src/entity/MarketingCta.ts index f50f8afe53..56eaf117ba 100644 --- a/src/entity/MarketingCta.ts +++ b/src/entity/MarketingCta.ts @@ -12,6 +12,14 @@ export type MarketingCtaFlags = { ctaText: string; }; +export const defaultMarketingCtaTargets = { + webapp: true, + extension: true, + ios: true, +}; + +export type MarketingCtaTargets = typeof defaultMarketingCtaTargets; + export enum MarketingCtaStatus { Active = 'active', Inactive = 'inactive', @@ -34,4 +42,7 @@ export class MarketingCta { @Column({ type: 'jsonb', default: {} }) flags: MarketingCtaFlags; + + @Column({ type: 'jsonb', default: defaultMarketingCtaTargets }) + targets: MarketingCtaTargets = defaultMarketingCtaTargets; } diff --git a/src/migration/1761756586183-MarketingCtaTargets.ts b/src/migration/1761756586183-MarketingCtaTargets.ts new file mode 100644 index 0000000000..dfa9923691 --- /dev/null +++ b/src/migration/1761756586183-MarketingCtaTargets.ts @@ -0,0 +1,18 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class MarketingCtaTargets1761756586183 implements MigrationInterface { + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(/* sql */` + ALTER TABLE "marketing_cta" + ADD "targets" jsonb NOT NULL DEFAULT '{"webapp":true,"extension":true,"ios":true}' + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(/* sql */` + ALTER TABLE "marketing_cta" + DROP COLUMN "targets" + `); + } +}