2023-06-27 03:16:59 +00:00
|
|
|
import { setRepo } from './db'
|
2022-10-31 04:22:08 +00:00
|
|
|
import GymSet from './gym-set'
|
2022-10-16 00:39:59 +00:00
|
|
|
|
2022-10-31 00:20:36 +00:00
|
|
|
export const getBestSet = async (name: string): Promise<GymSet> => {
|
|
|
|
return setRepo
|
|
|
|
.createQueryBuilder()
|
|
|
|
.select()
|
|
|
|
.addSelect('MAX(weight)', 'weight')
|
2023-06-27 03:16:59 +00:00
|
|
|
.where('name = :name', { name })
|
2022-10-31 00:20:36 +00:00
|
|
|
.groupBy('name')
|
|
|
|
.addGroupBy('reps')
|
|
|
|
.orderBy('weight', 'DESC')
|
|
|
|
.addOrderBy('reps', 'DESC')
|
2022-10-31 04:22:08 +00:00
|
|
|
.getOne()
|
|
|
|
}
|
2023-03-02 06:05:27 +00:00
|
|
|
|
|
|
|
export const getLast = async (name: string): Promise<GymSet> => {
|
|
|
|
return setRepo
|
|
|
|
.createQueryBuilder()
|
2023-06-27 03:16:59 +00:00
|
|
|
.where('name = :name', { name })
|
2023-03-02 06:05:27 +00:00
|
|
|
.andWhere('reps >= 5')
|
2023-06-27 03:16:59 +00:00
|
|
|
.andWhere('strftime(\'%Y-%m-%d\', \'now\', \'localtime\') > created')
|
|
|
|
.groupBy('STRFTIME(\'%Y-%m-%d\', created)')
|
2023-03-02 06:05:27 +00:00
|
|
|
.orderBy('created', 'DESC')
|
|
|
|
.select('reps')
|
|
|
|
.addSelect('MAX(weight) as weight')
|
|
|
|
.addSelect('unit')
|
|
|
|
.getRawOne()
|
|
|
|
}
|