class Milestone { final int id; final int projectId; final String title; final String? description; final String status; // active | completed | archived final int orderIndex; final int total; final int completed; final double pct; final DateTime createdAt; final DateTime updatedAt; const Milestone({ required this.id, required this.projectId, required this.title, this.description, required this.status, required this.orderIndex, required this.total, required this.completed, required this.pct, required this.createdAt, required this.updatedAt, }); factory Milestone.fromJson(Map json) => Milestone( id: json['id'] as int, projectId: json['project_id'] as int, title: json['title'] as String? ?? '', description: json['description'] as String?, status: json['status'] as String? ?? 'active', orderIndex: json['order_index'] as int? ?? 0, total: json['total'] as int? ?? 0, completed: json['completed'] as int? ?? 0, pct: (json['pct'] as num?)?.toDouble() ?? 0.0, createdAt: DateTime.parse(json['created_at'] as String), updatedAt: DateTime.parse(json['updated_at'] as String), ); }