diff --git a/src/database/entities/Application.ts b/src/database/entities/Application.ts
index c4f40343..0085c895 100644
--- a/src/database/entities/Application.ts
+++ b/src/database/entities/Application.ts
@@ -16,11 +16,12 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Column, Entity, JoinColumn, ManyToOne, OneToOne, RelationId } from "typeorm";
+import { Column, Entity, JoinColumn, ManyToOne, OneToMany, OneToOne, RelationId } from "typeorm";
import { BaseClass } from "./BaseClass";
import { Team } from "./Team";
import { User } from "./User";
import { Guild } from "./Guild";
+import { Emoji } from "@spacebar/database";
@Entity({
name: "applications",
@@ -135,4 +136,12 @@ export class Application extends BaseClass {
nullable: true,
})
team?: Team;
+
+ @JoinColumn({ name: "emoji_ids" })
+ @OneToMany(() => Emoji, (emoji: Emoji) => emoji.application, {
+ cascade: true,
+ orphanedRowAction: "delete",
+ onDelete: "CASCADE",
+ })
+ emojis: Emoji[];
}
diff --git a/src/database/entities/Emoji.ts b/src/database/entities/Emoji.ts
index f75cb03f..0bf24614 100644
--- a/src/database/entities/Emoji.ts
+++ b/src/database/entities/Emoji.ts
@@ -17,7 +17,7 @@
*/
import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm";
-import { User } from "./index";
+import { Application, User } from "./index";
import { BaseClass } from "./BaseClass";
import { Guild } from "./Guild";
@@ -31,14 +31,25 @@ export class Emoji extends BaseClass {
@Column()
available: boolean; // whether this emoji can be used, may be false due to various reasons
- @Column()
- guild_id: string;
+ @Column({ nullable: true })
+ guild_id: string | null;
@JoinColumn({ name: "guild_id" })
@ManyToOne(() => Guild, (guild) => guild.emojis, {
onDelete: "CASCADE",
+ nullable: true,
+ })
+ guild: Guild | null;
+
+ @Column({ nullable: true })
+ application_id: string | null;
+
+ @JoinColumn({ name: "application_id" })
+ @ManyToOne(() => Application, (application) => application.emojis, {
+ onDelete: "CASCADE",
+ nullable: true,
})
- guild: Guild;
+ application: Application | null;
@Column({ nullable: true })
@RelationId((emoji: Emoji) => emoji.user)
|