64 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
import 'package:freezed_annotation/freezed_annotation.dart';
 | 
						|
import 'package:island/models/account.dart';
 | 
						|
import 'package:island/models/developer.dart';
 | 
						|
 | 
						|
part 'bot.freezed.dart';
 | 
						|
part 'bot.g.dart';
 | 
						|
 | 
						|
@freezed
 | 
						|
sealed class Bot with _$Bot {
 | 
						|
  const factory Bot({
 | 
						|
    required String id,
 | 
						|
    required String slug,
 | 
						|
    required bool isActive,
 | 
						|
    required String projectId,
 | 
						|
    required DateTime createdAt,
 | 
						|
    required DateTime updatedAt,
 | 
						|
    required SnAccount account,
 | 
						|
    SnDeveloper? developer,
 | 
						|
  }) = _Bot;
 | 
						|
 | 
						|
  factory Bot.fromJson(Map<String, dynamic> json) => _$BotFromJson(json);
 | 
						|
}
 | 
						|
 | 
						|
@freezed
 | 
						|
sealed class BotConfig with _$BotConfig {
 | 
						|
  const factory BotConfig({
 | 
						|
    @Default(false) bool isPublic,
 | 
						|
    @Default(false) bool isInteractive,
 | 
						|
    @Default([]) List<String> allowedRealms,
 | 
						|
    @Default([]) List<String> allowedChatTypes,
 | 
						|
    @Default({}) Map<String, dynamic> metadata,
 | 
						|
  }) = _BotConfig;
 | 
						|
 | 
						|
  factory BotConfig.fromJson(Map<String, dynamic> json) =>
 | 
						|
      _$BotConfigFromJson(json);
 | 
						|
}
 | 
						|
 | 
						|
@freezed
 | 
						|
sealed class BotLinks with _$BotLinks {
 | 
						|
  const factory BotLinks({
 | 
						|
    String? website,
 | 
						|
    String? documentation,
 | 
						|
    String? privacyPolicy,
 | 
						|
    String? termsOfService,
 | 
						|
  }) = _BotLinks;
 | 
						|
 | 
						|
  factory BotLinks.fromJson(Map<String, dynamic> json) =>
 | 
						|
      _$BotLinksFromJson(json);
 | 
						|
}
 | 
						|
 | 
						|
@freezed
 | 
						|
sealed class BotSecret with _$BotSecret {
 | 
						|
  const factory BotSecret({
 | 
						|
    @Default('') String id,
 | 
						|
    @Default('') String secret,
 | 
						|
    String? description,
 | 
						|
    DateTime? expiredAt,
 | 
						|
    @Default('') String botId,
 | 
						|
  }) = _BotSecret;
 | 
						|
 | 
						|
  factory BotSecret.fromJson(Map<String, dynamic> json) =>
 | 
						|
      _$BotSecretFromJson(json);
 | 
						|
}
 |