Models (Task, Streak, StreakEntry, Reward, User, TimeEstimate, CoworkingRoom, ApiResponse), enums (EnergyLevel, TaskStatus, RewardType, RewardStyle), constants (ApiConstants, ErrorCodes, AppLimits), validators, and generated .g.dart files. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
31 lines
833 B
Dart
31 lines
833 B
Dart
import 'package:focusflow_shared/focusflow_shared.dart';
|
|
|
|
void main() {
|
|
// Create a task
|
|
final task = Task(
|
|
id: 'task-001',
|
|
userId: 'user-001',
|
|
title: 'Write project proposal',
|
|
status: TaskStatus.pending.apiValue,
|
|
energyLevel: EnergyLevel.medium.name,
|
|
priority: 75,
|
|
estimatedMinutes: 30,
|
|
tags: ['work', 'writing'],
|
|
createdAt: DateTime.now(),
|
|
);
|
|
|
|
print('Task: ${task.title} (priority: ${task.priority})');
|
|
print('Status: ${TaskStatus.pending.displayName}');
|
|
print('Energy: ${EnergyLevel.medium.displayName}');
|
|
|
|
// Validate
|
|
final titleError = TaskValidator.validateTitle(task.title);
|
|
print('Title valid: ${titleError == null}');
|
|
|
|
// API path
|
|
print('Task endpoint: ${ApiConstants.task(task.id)}');
|
|
|
|
// Limits
|
|
print('Free tier max tasks: ${AppLimits.freeMaxActiveTasks}');
|
|
}
|