1 import { v4 as uuid } from 'uuid';
2 import { Repository } from './base';
6 ATTACKERS = 'ATTACKERS',
7 DEFENDERS = 'DEFENDERS',
8 SPECIAL_ATTACKERS = 'SPECIAL_ATTACKERS',
9 SPECIAL_DEFENDERS = 'SPECIAL_DEFENDERS'
12 export type UnitTrainingQueue = {
21 export type UnitTrainingQueueWithName = {
23 } & UnitTrainingQueue;
25 export const FriendlyUnitNames = new Map<Unit, string>();
26 FriendlyUnitNames.set(Unit.SOLDIERS, 'Soldiers');
27 FriendlyUnitNames.set(Unit.ATTACKERS, 'Attackers');
28 FriendlyUnitNames.set(Unit.DEFENDERS, 'Defenders');
29 FriendlyUnitNames.set(Unit.SPECIAL_ATTACKERS, 'Special Attackers');
30 FriendlyUnitNames.set(Unit.SPECIAL_DEFENDERS, 'Special Defenders');
32 export class UnitTrainingQueueRepository extends Repository<UnitTrainingQueue> {
34 super('unit_training_queue');
37 async create(owner: string, due: number, type: string, amount: number): Promise<UnitTrainingQueue> {
38 const data: UnitTrainingQueue = {
47 await this.Insert(data);
51 list(owner: string): Promise<UnitTrainingQueueWithName[]> {
52 return this.db.raw(`select q.*, u.display from unit_training_queue q join units u on u.slug = q.unit_type where owner = ? order by due`, owner);