import 'package:json_annotation/json_annotation.dart'; part 'gitlab.g.dart'; @JsonSerializable(fieldRename: FieldRename.snake) class GitlabUser { int id; String username; String name; String avatarUrl; String bio; DateTime createdAt; int accessLevel; GitlabUser(); factory GitlabUser.fromJson(Map json) => _$GitlabUserFromJson(json); } @JsonSerializable(fieldRename: FieldRename.snake) class GitlabGroup { int id; String path; String name; String avatarUrl; String description; List projects; GitlabGroup(); factory GitlabGroup.fromJson(Map json) => _$GitlabGroupFromJson(json); } @JsonSerializable(fieldRename: FieldRename.snake) class GitlabTodoProject { String pathWithNamespace; GitlabTodoProject(); factory GitlabTodoProject.fromJson(Map json) => _$GitlabTodoProjectFromJson(json); } @JsonSerializable(fieldRename: FieldRename.snake) class GitlabTodo { GitlabUser author; GitlabTodoProject project; String actionName; String targetType; GitlabTodoTarget target; GitlabTodo(); factory GitlabTodo.fromJson(Map json) => _$GitlabTodoFromJson(json); } @JsonSerializable(fieldRename: FieldRename.snake) class GitlabTodoTarget { int iid; int projectId; String title; GitlabUser author; String description; DateTime createdAt; GitlabTodoTarget(); factory GitlabTodoTarget.fromJson(Map json) => _$GitlabTodoTargetFromJson(json); } @JsonSerializable(fieldRename: FieldRename.snake) class GitlabIssueNote { GitlabUser author; String body; bool system; DateTime createdAt; GitlabIssueNote(); factory GitlabIssueNote.fromJson(Map json) => _$GitlabIssueNoteFromJson(json); } @JsonSerializable(fieldRename: FieldRename.snake) class GitlabProject { int id; String name; String avatarUrl; String description; int starCount; int forksCount; String visibility; String readmeUrl; String webUrl; GitlabProjectNamespace namespace; GitlabUser owner; bool issuesEnabled; int openIssuesCount; bool mergeRequestsEnabled; GitlabProjectStatistics statistics; DateTime lastActivityAt; DateTime createdAt; String defaultBranch; GitlabProject(); factory GitlabProject.fromJson(Map json) => _$GitlabProjectFromJson(json); } @JsonSerializable(fieldRename: FieldRename.snake) class GitlabProjectBadge { String renderedImageUrl; GitlabProjectBadge(); factory GitlabProjectBadge.fromJson(Map json) => _$GitlabProjectBadgeFromJson(json); } @JsonSerializable(fieldRename: FieldRename.snake) class GitlabProjectStatistics { int commitCount; int repositorySize; GitlabProjectStatistics(); factory GitlabProjectStatistics.fromJson(Map json) => _$GitlabProjectStatisticsFromJson(json); } @JsonSerializable(fieldRename: FieldRename.snake) class GitlabProjectNamespace { int id; String name; String path; String kind; GitlabProjectNamespace(); factory GitlabProjectNamespace.fromJson(Map json) => _$GitlabProjectNamespaceFromJson(json); } @JsonSerializable(fieldRename: FieldRename.snake) class GitlabTreeItem { String type; String path; String name; GitlabTreeItem(); factory GitlabTreeItem.fromJson(Map json) => _$GitlabTreeItemFromJson(json); } @JsonSerializable(fieldRename: FieldRename.snake) class GitlabBlob { String content; GitlabBlob(); factory GitlabBlob.fromJson(Map json) => _$GitlabBlobFromJson(json); } @JsonSerializable(fieldRename: FieldRename.snake) class GitlabEvent { GitlabUser author; String actionName; String targetType; GitlabEventNote note; GitlabEvent(); factory GitlabEvent.fromJson(Map json) => _$GitlabEventFromJson(json); } @JsonSerializable(fieldRename: FieldRename.snake) class GitlabEventNote { String body; String noteableType; int noteableIid; GitlabEventNote(); factory GitlabEventNote.fromJson(Map json) => _$GitlabEventNoteFromJson(json); } @JsonSerializable(fieldRename: FieldRename.snake) class GitlabCommit { String id; String shortId; String title; DateTime createdAt; String authorName; String message; GitlabCommit(); factory GitlabCommit.fromJson(Map json) => _$GitlabCommitFromJson(json); } @JsonSerializable(fieldRename: FieldRename.snake) class GitlabDiff { String diff; String newPath; String oldPath; GitlabDiff(); factory GitlabDiff.fromJson(Map json) => _$GitlabDiffFromJson(json); } @JsonSerializable(fieldRename: FieldRename.snake) class GitlabIssue { String title; int iid; int projectId; GitlabUser author; int userNotesCount; DateTime updatedAt; List labels; GitlabIssue(); factory GitlabIssue.fromJson(Map json) => _$GitlabIssueFromJson(json); }