From eaf697eb1931a997d3ccfe7f98523be8b518d68f Mon Sep 17 00:00:00 2001 From: Rory& Date: Sat, 7 Mar 2026 00:30:19 +0100 Subject: [PATCH] [rel/1518] Member flags --- src/schemas/api/users/Member.ts | 4 +++- src/util/entities/Member.ts | 4 ++++ .../migration/postgres/1772404321400-MemberFlags.ts | 13 +++++++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 src/util/migration/postgres/1772404321400-MemberFlags.ts diff --git a/src/schemas/api/users/Member.ts b/src/schemas/api/users/Member.ts index cc2c33421..89e096502 100644 --- a/src/schemas/api/users/Member.ts +++ b/src/schemas/api/users/Member.ts @@ -69,7 +69,8 @@ export type PublicMemberKeys = | "bio" | "theme_colors" | "pronouns" - | "communication_disabled_until"; + | "communication_disabled_until" + | "flags"; export const PublicMemberProjection: PublicMemberKeys[] = [ "id", @@ -87,6 +88,7 @@ export const PublicMemberProjection: PublicMemberKeys[] = [ "theme_colors", "pronouns", "communication_disabled_until", + "flags", ]; export type PublicMember = Omit, "roles"> & { diff --git a/src/util/entities/Member.ts b/src/util/entities/Member.ts index 163c25f75..1b60b72db 100644 --- a/src/util/entities/Member.ts +++ b/src/util/entities/Member.ts @@ -51,6 +51,7 @@ export const MemberPrivateProjection: (keyof Member)[] = [ "theme_colors", "pronouns", "communication_disabled_until", + "flags", ]; @Entity({ @@ -156,6 +157,9 @@ export class Member extends BaseClassWithoutId { @Column({ type: "simple-json", nullable: true }) collectibles?: Collectibles; + @Column({ type: "int", default: 0 }) + flags: number = 0; + @BeforeUpdate() @BeforeInsert() validate() { diff --git a/src/util/migration/postgres/1772404321400-MemberFlags.ts b/src/util/migration/postgres/1772404321400-MemberFlags.ts new file mode 100644 index 000000000..bc1bd68b2 --- /dev/null +++ b/src/util/migration/postgres/1772404321400-MemberFlags.ts @@ -0,0 +1,13 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class MemberFlags1772404321400 implements MigrationInterface { + name = "MemberFlags1772404321400"; + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "members" ADD "flags" integer NOT NULL DEFAULT '0'`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "members" DROP COLUMN "flags"`); + } +} \ No newline at end of file