mirror of
https://github.com/DocNR/POWR.git
synced 2025-05-21 09:22:05 +00:00
50 lines
1.6 KiB
TypeScript
50 lines
1.6 KiB
TypeScript
![]() |
// lib/db/services/TemplateService.ts
|
||
|
import { Workout } from '@/types/workout';
|
||
|
import { WorkoutTemplate } from '@/types/templates';
|
||
|
import { generateId } from '@/utils/ids';
|
||
|
|
||
|
/**
|
||
|
* Service for managing workout templates
|
||
|
*/
|
||
|
export class TemplateService {
|
||
|
/**
|
||
|
* Updates an existing template based on workout changes
|
||
|
*/
|
||
|
static async updateExistingTemplate(workout: Workout): Promise<boolean> {
|
||
|
try {
|
||
|
// This would require actual implementation with DB access
|
||
|
// For now, this is a placeholder
|
||
|
console.log('Updating template from workout:', workout.id);
|
||
|
// Future: Implement with your DB service
|
||
|
return true;
|
||
|
} catch (error) {
|
||
|
console.error('Error updating template:', error);
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Saves a workout as a new template
|
||
|
*/
|
||
|
static async saveAsNewTemplate(workout: Workout, name: string): Promise<string | null> {
|
||
|
try {
|
||
|
// This would require actual implementation with DB access
|
||
|
// For now, this is a placeholder
|
||
|
console.log('Creating new template from workout:', workout.id, 'with name:', name);
|
||
|
// Future: Implement with your DB service
|
||
|
return generateId();
|
||
|
} catch (error) {
|
||
|
console.error('Error creating template:', error);
|
||
|
return null;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Detects if a workout has changes compared to its original template
|
||
|
*/
|
||
|
static hasTemplateChanges(workout: Workout): boolean {
|
||
|
// This would require comparing with the original template
|
||
|
// For now, assume changes if there's a templateId
|
||
|
return !!workout.templateId;
|
||
|
}
|
||
|
}
|