48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
| import 'package:freezed_annotation/freezed_annotation.dart';
 | |
| import 'package:island/models/file.dart';
 | |
| import 'package:island/models/account.dart';
 | |
| 
 | |
| part 'publisher.freezed.dart';
 | |
| part 'publisher.g.dart';
 | |
| 
 | |
| @freezed
 | |
| sealed class SnPublisher with _$SnPublisher {
 | |
|   const factory SnPublisher({
 | |
|     @Default('') String id,
 | |
|     @Default(0) int type,
 | |
|     @Default('') String name,
 | |
|     @Default('') String nick,
 | |
|     @Default('') String bio,
 | |
|     SnCloudFile? picture,
 | |
|     SnCloudFile? background,
 | |
|     SnAccount? account,
 | |
|     String? accountId,
 | |
|     @Default(null) DateTime? createdAt,
 | |
|     @Default(null) DateTime? updatedAt,
 | |
|     DateTime? deletedAt,
 | |
|     String? realmId,
 | |
|     SnVerificationMark? verification,
 | |
|   }) = _SnPublisher;
 | |
| 
 | |
|   factory SnPublisher.fromJson(Map<String, dynamic> json) =>
 | |
|       _$SnPublisherFromJson(json);
 | |
| }
 | |
| 
 | |
| @freezed
 | |
| sealed class SnPublisherMember with _$SnPublisherMember {
 | |
|   const factory SnPublisherMember({
 | |
|     required String publisherId,
 | |
|     required SnPublisher? publisher,
 | |
|     required String accountId,
 | |
|     required SnAccount? account,
 | |
|     required int role,
 | |
|     required DateTime? joinedAt,
 | |
|     required DateTime createdAt,
 | |
|     required DateTime updatedAt,
 | |
|     required DateTime? deletedAt,
 | |
|   }) = _SnPublisherMember;
 | |
| 
 | |
|   factory SnPublisherMember.fromJson(Map<String, dynamic> json) =>
 | |
|       _$SnPublisherMemberFromJson(json);
 | |
| }
 |