72 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
| import 'package:freezed_annotation/freezed_annotation.dart';
 | |
| import 'package:island/models/file.dart';
 | |
| import 'package:island/models/account.dart';
 | |
| 
 | |
| part 'custom_app.freezed.dart';
 | |
| part 'custom_app.g.dart';
 | |
| 
 | |
| @freezed
 | |
| sealed class CustomApp with _$CustomApp {
 | |
|   const factory CustomApp({
 | |
|     @Default('') String id,
 | |
|     @Default('') String slug,
 | |
|     @Default('') String name,
 | |
|     String? description,
 | |
|     @Default(0) int status,
 | |
|     SnCloudFile? picture,
 | |
|     SnCloudFile? background,
 | |
|     SnVerificationMark? verification,
 | |
|     CustomAppOauthConfig? oauthConfig,
 | |
|     CustomAppLinks? links,
 | |
|     @Default([]) List<CustomAppSecret> secrets,
 | |
|     @Default('') String publisherId,
 | |
|   }) = _CustomApp;
 | |
| 
 | |
|   factory CustomApp.fromJson(Map<String, dynamic> json) =>
 | |
|       _$CustomAppFromJson(json);
 | |
| }
 | |
| 
 | |
| @freezed
 | |
| sealed class CustomAppLinks with _$CustomAppLinks {
 | |
|   const factory CustomAppLinks({
 | |
|     String? homePage,
 | |
|     String? privacyPolicy,
 | |
|     String? termsOfService,
 | |
|   }) = _CustomAppLinks;
 | |
| 
 | |
|   factory CustomAppLinks.fromJson(Map<String, dynamic> json) =>
 | |
|       _$CustomAppLinksFromJson(json);
 | |
| }
 | |
| 
 | |
| @freezed
 | |
| sealed class CustomAppOauthConfig with _$CustomAppOauthConfig {
 | |
|   const factory CustomAppOauthConfig({
 | |
|     String? clientUri,
 | |
|     @Default([]) List<String> redirectUris,
 | |
|     List<String>? postLogoutRedirectUris,
 | |
|     @Default(['openid', 'profile', 'email']) List<String> allowedScopes,
 | |
|     @Default(['authorization_code', 'refresh_token'])
 | |
|     List<String> allowedGrantTypes,
 | |
|     @Default(true) bool requirePkce,
 | |
|     @Default(false) bool allowOfflineAccess,
 | |
|   }) = _CustomAppOauthConfig;
 | |
| 
 | |
|   factory CustomAppOauthConfig.fromJson(Map<String, dynamic> json) =>
 | |
|       _$CustomAppOauthConfigFromJson(json);
 | |
| }
 | |
| 
 | |
| @freezed
 | |
| sealed class CustomAppSecret with _$CustomAppSecret {
 | |
|   const factory CustomAppSecret({
 | |
|     @Default('') String id,
 | |
|     @Default('') String secret,
 | |
|     String? description,
 | |
|     DateTime? expiredAt,
 | |
|     @Default(false) bool isOidc,
 | |
|     @Default('') String appId,
 | |
|   }) = _CustomAppSecret;
 | |
| 
 | |
|   factory CustomAppSecret.fromJson(Map<String, dynamic> json) =>
 | |
|       _$CustomAppSecretFromJson(json);
 | |
| }
 |