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