feat: deploy infrastructure + disk/drive, calendar, presentation, workspaces, onboarding, demo user
This commit is contained in:
@@ -0,0 +1,134 @@
|
||||
class Vote {
|
||||
final String id;
|
||||
final String ideaId;
|
||||
final String userId;
|
||||
final bool isUpvote;
|
||||
final DateTime createdAt;
|
||||
|
||||
Vote({
|
||||
required this.id,
|
||||
required this.ideaId,
|
||||
required this.userId,
|
||||
required this.isUpvote,
|
||||
required this.createdAt,
|
||||
});
|
||||
|
||||
factory Vote.fromJson(Map<String, dynamic> json) => Vote(
|
||||
id: json['id'] as String,
|
||||
ideaId: json['idea_id'] as String,
|
||||
userId: json['user_id'] as String,
|
||||
isUpvote: json['is_upvote'] as bool,
|
||||
createdAt: DateTime.parse(json['created_at'] as String),
|
||||
);
|
||||
}
|
||||
|
||||
class Comment {
|
||||
final String id;
|
||||
final String ideaId;
|
||||
final String userId;
|
||||
final String userName;
|
||||
final String body;
|
||||
final String? parentId;
|
||||
final List<Comment> replies;
|
||||
final DateTime createdAt;
|
||||
final DateTime updatedAt;
|
||||
|
||||
Comment({
|
||||
required this.id,
|
||||
required this.ideaId,
|
||||
required this.userId,
|
||||
this.userName = '',
|
||||
required this.body,
|
||||
this.parentId,
|
||||
this.replies = const [],
|
||||
required this.createdAt,
|
||||
required this.updatedAt,
|
||||
});
|
||||
|
||||
factory Comment.fromJson(Map<String, dynamic> json) => Comment(
|
||||
id: json['id'] as String,
|
||||
ideaId: json['idea_id'] as String,
|
||||
userId: json['user_id'] as String,
|
||||
userName: json['user_name'] as String? ?? '',
|
||||
body: json['body'] as String,
|
||||
parentId: json['parent_id'] as String?,
|
||||
replies: (json['replies'] as List<dynamic>? ?? [])
|
||||
.map((e) => Comment.fromJson(e as Map<String, dynamic>))
|
||||
.toList(),
|
||||
createdAt: DateTime.parse(json['created_at'] as String),
|
||||
updatedAt: DateTime.parse(json['updated_at'] as String),
|
||||
);
|
||||
}
|
||||
|
||||
class CreateCommentRequest {
|
||||
final String body;
|
||||
final String? parentId;
|
||||
|
||||
CreateCommentRequest({required this.body, this.parentId});
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
'body': body,
|
||||
if (parentId != null) 'parent_id': parentId,
|
||||
};
|
||||
}
|
||||
|
||||
class Activity {
|
||||
final String id;
|
||||
final String ideaId;
|
||||
final String userId;
|
||||
final String userName;
|
||||
final String action;
|
||||
final String? description;
|
||||
final DateTime createdAt;
|
||||
|
||||
Activity({
|
||||
required this.id,
|
||||
required this.ideaId,
|
||||
required this.userId,
|
||||
this.userName = '',
|
||||
required this.action,
|
||||
this.description,
|
||||
required this.createdAt,
|
||||
});
|
||||
|
||||
factory Activity.fromJson(Map<String, dynamic> json) => Activity(
|
||||
id: json['id'] as String,
|
||||
ideaId: json['idea_id'] as String,
|
||||
userId: json['user_id'] as String,
|
||||
userName: json['user_name'] as String? ?? '',
|
||||
action: json['action'] as String,
|
||||
description: json['description'] as String?,
|
||||
createdAt: DateTime.parse(json['created_at'] as String),
|
||||
);
|
||||
}
|
||||
|
||||
class AppNotification {
|
||||
final String id;
|
||||
final String userId;
|
||||
final String title;
|
||||
final String body;
|
||||
final bool isRead;
|
||||
final String? ideaId;
|
||||
final DateTime createdAt;
|
||||
|
||||
AppNotification({
|
||||
required this.id,
|
||||
required this.userId,
|
||||
required this.title,
|
||||
required this.body,
|
||||
this.isRead = false,
|
||||
this.ideaId,
|
||||
required this.createdAt,
|
||||
});
|
||||
|
||||
factory AppNotification.fromJson(Map<String, dynamic> json) =>
|
||||
AppNotification(
|
||||
id: json['id'] as String,
|
||||
userId: json['user_id'] as String,
|
||||
title: json['title'] as String,
|
||||
body: json['body'] as String? ?? '',
|
||||
isRead: json['is_read'] as bool? ?? false,
|
||||
ideaId: json['idea_id'] as String?,
|
||||
createdAt: DateTime.parse(json['created_at'] as String),
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user