feat(programmer): day sheet providers + controller
Co-Authored-By: claude-flow <ruv@ruv.net>
This commit is contained in:
@@ -37,6 +37,9 @@ class DaySheetSnapshot {
|
||||
'rows': rows.map((r) => r.toJson()).toList(),
|
||||
};
|
||||
|
||||
/// Alias for [toJson]; used by the approval RPC payload.
|
||||
Map<String, dynamic> toMap() => toJson();
|
||||
|
||||
factory DaySheetSnapshot.fromJson(Map<String, dynamic> j) {
|
||||
final rowsList = (j['rows'] as List? ?? [])
|
||||
.map((r) => DaySheetRow.fromJson(r as Map<String, dynamic>))
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
/// A single audit-trail event on a programmer day sheet.
|
||||
class ProgrammerDaySheetEvent {
|
||||
final String id;
|
||||
final String sheetId;
|
||||
final String kind;
|
||||
final String? actorId;
|
||||
final String? body;
|
||||
final List<String> flaggedTaskIds;
|
||||
final DateTime createdAt;
|
||||
|
||||
const ProgrammerDaySheetEvent({
|
||||
required this.id,
|
||||
required this.sheetId,
|
||||
required this.kind,
|
||||
this.actorId,
|
||||
this.body,
|
||||
required this.flaggedTaskIds,
|
||||
required this.createdAt,
|
||||
});
|
||||
|
||||
factory ProgrammerDaySheetEvent.fromMap(Map<String, dynamic> m) {
|
||||
return ProgrammerDaySheetEvent(
|
||||
id: m['id'] as String,
|
||||
sheetId: m['sheet_id'] as String,
|
||||
kind: m['kind'] as String,
|
||||
actorId: m['actor_id'] as String?,
|
||||
body: m['body'] as String?,
|
||||
flaggedTaskIds: List<String>.from(m['flagged_task_ids'] as List? ?? []),
|
||||
createdAt: DateTime.parse(m['created_at'] as String),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user