Update emoji/application entities to support application emojis

This commit is contained in:
Rory&
2026-06-30 19:16:48 +02:00
parent 53f23a666d
commit bd90159a31
2 changed files with 25 additions and 5 deletions
+10 -1
View File
@@ -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[];
}
+15 -4
View File
@@ -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;
guild: Guild | null;
@Column({ nullable: true })
application_id: string | null;
@JoinColumn({ name: "application_id" })
@ManyToOne(() => Application, (application) => application.emojis, {
onDelete: "CASCADE",
nullable: true,
})
application: Application | null;
@Column({ nullable: true })
@RelationId((emoji: Emoji) => emoji.user)