piclets / src /lib /db /monsters.ts
Fraser's picture
more stats
b66ef35
raw
history blame
1.11 kB
import { db } from './index';
import type { Monster } from './schema';
import { monsterToPicletInstance, savePicletInstance } from './piclets';
export async function saveMonster(monsterData: Omit<Monster, 'id' | 'createdAt'>, createPiclet: boolean = true): Promise<number> {
const monster: Omit<Monster, 'id'> = {
...monsterData,
createdAt: new Date()
};
const monsterId = await db.monsters.add(monster);
// Also create a PicletInstance if requested and stats are available
if (createPiclet && monster.stats) {
try {
const picletData = await monsterToPicletInstance({ ...monster, id: monsterId }, 5);
await savePicletInstance(picletData);
} catch (err) {
console.error('Failed to create PicletInstance:', err);
}
}
return monsterId;
}
export async function getAllMonsters(): Promise<Monster[]> {
return await db.monsters.toArray();
}
export async function getMonster(id: number): Promise<Monster | undefined> {
return await db.monsters.get(id);
}
export async function deleteMonster(id: number): Promise<void> {
await db.monsters.delete(id);
}