diff --git a/src/schemas/api/users/Member.ts b/src/schemas/api/users/Member.ts
index cc2c3342..89e09650 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<Pick<Member, PublicMemberKeys>, "roles"> & {
diff --git a/src/util/entities/Member.ts b/src/util/entities/Member.ts
index 163c25f7..1b60b72d 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 00000000..bc1bd68b
--- /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<void> {
+ await queryRunner.query(`ALTER TABLE "members" ADD "flags" integer NOT NULL DEFAULT '0'`);
+ }
+
+ public async down(queryRunner: QueryRunner): Promise<void> {
+ await queryRunner.query(`ALTER TABLE "members" DROP COLUMN "flags"`);
+ }
+}
\ No newline at end of file
|