import pool from "../db"; import { Member, MemberLight, memberSettings, MemberState } from '@app/shared/types/member' export async function getUserData(userID: number) { const sql = `SELECT * FROM members WHERE id = ?`; const res = await pool.query(sql, [userID]); return res[0] ?? null; } export async function setUserState(userID: number, state: MemberState) { const sql = `UPDATE members SET state = ? WHERE id = ?;`; return await pool.query(sql, [state, userID]); } export async function getUserState(user: number): Promise { let out = await pool.query(`SELECT state FROM members WHERE id = ?`, [user]); return (out[0].state as MemberState); } export async function getMemberSettings(id: number): Promise { const sql = `SELECT * FROM view_member_settings WHERE id = ?`; let out: memberSettings[] = await pool.query(sql, [id]); if (out.length != 1) throw new Error("Could not get user settings"); return out[0]; } export async function setUserSettings(id: number, settings: memberSettings) { const sql = `UPDATE view_member_settings SET displayName = ? WHERE id = ?;`; let result = await pool.query(sql, [settings.displayName, id]) console.log(result); } export async function getMembersLite(ids: number[]): Promise { const sql = `SELECT m.member_id AS id, m.member_name AS username, m.displayName, u.color FROM view_member_rank_unit_status_latest m LEFT JOIN units u ON u.name = m.unit WHERE member_id IN (?);`; const res: MemberLight[] = await pool.query(sql, [ids]); return res; } export async function getMembersFull(ids: number[]): Promise { const sql = `SELECT * FROM view_member_rank_unit_status_latest WHERE member_id IN (?);`; const res: Member[] = await pool.query(sql, [ids]); return res; } export async function mapDiscordtoID(id: number): Promise { const sql = `SELECT id FROM members WHERE discord_id = ?;` let res = await pool.query(sql, [id]); return res.length > 0 ? res[0].id : null; }