mirror of
https://github.com/DocNR/POWR.git
synced 2025-04-23 01:01:27 +00:00
48 lines
1.1 KiB
TypeScript
48 lines
1.1 KiB
TypeScript
![]() |
// types/powr-pack.ts
|
||
|
import { WorkoutTemplate } from './templates';
|
||
|
import { BaseExercise } from './exercise';
|
||
|
import { NDKEvent } from '@nostr-dev-kit/ndk-mobile';
|
||
|
|
||
|
// Basic POWR Pack structure
|
||
|
export interface POWRPack {
|
||
|
id: string;
|
||
|
title: string;
|
||
|
description?: string;
|
||
|
authorPubkey: string;
|
||
|
nostrEventId?: string;
|
||
|
importDate: number;
|
||
|
updatedAt: number;
|
||
|
}
|
||
|
|
||
|
// Pack item reference
|
||
|
export interface POWRPackItem {
|
||
|
packId: string;
|
||
|
itemId: string;
|
||
|
itemType: 'exercise' | 'template';
|
||
|
itemOrder?: number;
|
||
|
isImported: boolean;
|
||
|
nostrEventId?: string;
|
||
|
}
|
||
|
|
||
|
// Combined pack with content for display
|
||
|
export interface POWRPackWithContent {
|
||
|
pack: POWRPack;
|
||
|
exercises: BaseExercise[];
|
||
|
templates: WorkoutTemplate[];
|
||
|
}
|
||
|
|
||
|
// Structure for importing packs
|
||
|
export interface POWRPackImport {
|
||
|
packEvent: NDKEvent;
|
||
|
exercises: NDKEvent[];
|
||
|
templates: NDKEvent[];
|
||
|
}
|
||
|
|
||
|
// Selected items during import process
|
||
|
export interface POWRPackSelection {
|
||
|
packId: string;
|
||
|
selectedExercises: string[]; // Exercise IDs
|
||
|
selectedTemplates: string[]; // Template IDs
|
||
|
// Mapping of template ID to required exercise IDs
|
||
|
templateDependencies: Record<string, string[]>;
|
||
|
}
|