TravBot-v3/src/defs/member.ts

40 lines
1.1 KiB
TypeScript

import {db} from "../modules/database";
export class Member {
public readonly userID: string;
public readonly guildID: string;
private _streamCategory: string | null;
constructor(userID: string, guildID: string) {
this.userID = userID;
this.guildID = guildID;
const data = db.prepare("SELECT * FROM Members WHERE UserID = ? AND GuildID = ?").get(userID, guildID);
if (data) {
const {StreamCategory} = data;
this._streamCategory = StreamCategory;
} else {
this._streamCategory = null;
}
}
static all(): Member[] {
const IDs = db.prepare("SELECT UserID, GuildID FROM Members").all();
const members = [];
for (const {UserID, GuildID} of IDs) {
members.push(new Member(UserID, GuildID));
}
return members;
}
get streamCategory() {
return this._streamCategory;
}
set streamCategory(streamCategory) {
this._streamCategory = streamCategory;
db.prepare("INSERT INTO Members VALUES (?, ?, ?)").run(this.userID, this.guildID, streamCategory);
}
}