mirror of
https://github.com/DocNR/POWR.git
synced 2025-04-22 16:51:33 +00:00
55 lines
1.3 KiB
TypeScript
55 lines
1.3 KiB
TypeScript
![]() |
// types/library.ts
|
||
|
interface TemplateExercise {
|
||
|
title: string;
|
||
|
targetSets: number;
|
||
|
targetReps: number;
|
||
|
}
|
||
|
|
||
|
export type TemplateType = 'strength' | 'circuit' | 'emom' | 'amrap';
|
||
|
|
||
|
export type TemplateCategory =
|
||
|
| 'Full Body'
|
||
|
| 'Custom'
|
||
|
| 'Push/Pull/Legs'
|
||
|
| 'Upper/Lower'
|
||
|
| 'Cardio'
|
||
|
| 'CrossFit'
|
||
|
| 'Strength'
|
||
|
| 'Conditioning';
|
||
|
export type ContentSource = 'local' | 'powr' | 'nostr';
|
||
|
|
||
|
export interface Template {
|
||
|
id: string;
|
||
|
title: string;
|
||
|
type: TemplateType; // 'strength' | 'circuit' | 'emom' | 'amrap'
|
||
|
category: TemplateCategory;
|
||
|
exercises: TemplateExercise[];
|
||
|
description?: string;
|
||
|
tags: string[];
|
||
|
source: ContentSource;
|
||
|
isFavorite?: boolean;
|
||
|
lastUsed?: Date;
|
||
|
}
|
||
|
|
||
|
export interface FilterOptions {
|
||
|
equipment: string[];
|
||
|
tags: string[];
|
||
|
source: ContentSource[];
|
||
|
}
|
||
|
|
||
|
export type ExerciseType = 'strength' | 'cardio' | 'bodyweight';
|
||
|
export type ExerciseCategory = 'Push' | 'Pull' | 'Legs' | 'Core';
|
||
|
export type ExerciseEquipment = 'bodyweight' | 'barbell' | 'dumbbell' | 'kettlebell' | 'machine' | 'cable' | 'other';
|
||
|
|
||
|
export interface Exercise {
|
||
|
id: string;
|
||
|
title: string;
|
||
|
category: ExerciseCategory;
|
||
|
type?: ExerciseType;
|
||
|
equipment?: ExerciseEquipment;
|
||
|
description?: string;
|
||
|
tags: string[];
|
||
|
source: ContentSource;
|
||
|
usageCount?: number;
|
||
|
lastUsed?: Date;
|
||
|
}
|