File size: 1,114 Bytes
ececfe6 b66ef35 ececfe6 b66ef35 ececfe6 b66ef35 ececfe6 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
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);
} |