|
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); |
|
|
|
|
|
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); |
|
} |