108 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			108 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
| import 'package:freezed_annotation/freezed_annotation.dart';
 | |
| 
 | |
| part 'auth.freezed.dart';
 | |
| part 'auth.g.dart';
 | |
| 
 | |
| @freezed
 | |
| sealed class AppToken with _$AppToken {
 | |
|   const factory AppToken({required String token}) = _AppToken;
 | |
| 
 | |
|   factory AppToken.fromJson(Map<String, dynamic> json) =>
 | |
|       _$AppTokenFromJson(json);
 | |
| }
 | |
| 
 | |
| @freezed
 | |
| sealed class GeoIpLocation with _$GeoIpLocation {
 | |
|   const factory GeoIpLocation({
 | |
|     required double? latitude,
 | |
|     required double? longitude,
 | |
|     required String? countryCode,
 | |
|     required String? country,
 | |
|     required String? city,
 | |
|   }) = _GeoIpLocation;
 | |
| 
 | |
|   factory GeoIpLocation.fromJson(Map<String, dynamic> json) =>
 | |
|       _$GeoIpLocationFromJson(json);
 | |
| }
 | |
| 
 | |
| @freezed
 | |
| sealed class SnAuthChallenge with _$SnAuthChallenge {
 | |
|   const factory SnAuthChallenge({
 | |
|     required String id,
 | |
|     required DateTime? expiredAt,
 | |
|     required int stepRemain,
 | |
|     required int stepTotal,
 | |
|     required int failedAttempts,
 | |
|     required int type,
 | |
|     required List<String> blacklistFactors,
 | |
|     required List<dynamic> audiences,
 | |
|     required List<dynamic> scopes,
 | |
|     required String ipAddress,
 | |
|     required String userAgent,
 | |
|     required String? nonce,
 | |
|     required GeoIpLocation? location,
 | |
|     required String accountId,
 | |
|     required DateTime createdAt,
 | |
|     required DateTime updatedAt,
 | |
|     required DateTime? deletedAt,
 | |
|   }) = _SnAuthChallenge;
 | |
| 
 | |
|   factory SnAuthChallenge.fromJson(Map<String, dynamic> json) =>
 | |
|       _$SnAuthChallengeFromJson(json);
 | |
| }
 | |
| 
 | |
| @freezed
 | |
| sealed class SnAuthSession with _$SnAuthSession {
 | |
|   const factory SnAuthSession({
 | |
|     required String id,
 | |
|     required String? label,
 | |
|     required DateTime lastGrantedAt,
 | |
|     required DateTime? expiredAt,
 | |
|     required String accountId,
 | |
|     required String challengeId,
 | |
|     required SnAuthChallenge challenge,
 | |
|     required DateTime createdAt,
 | |
|     required DateTime updatedAt,
 | |
|     required DateTime? deletedAt,
 | |
|   }) = _SnAuthSession;
 | |
| 
 | |
|   factory SnAuthSession.fromJson(Map<String, dynamic> json) =>
 | |
|       _$SnAuthSessionFromJson(json);
 | |
| }
 | |
| 
 | |
| @freezed
 | |
| sealed class SnAuthFactor with _$SnAuthFactor {
 | |
|   const factory SnAuthFactor({
 | |
|     required String id,
 | |
|     required int type,
 | |
|     required DateTime createdAt,
 | |
|     required DateTime updatedAt,
 | |
|     required DateTime? deletedAt,
 | |
|     required DateTime? expiredAt,
 | |
|     required DateTime? enabledAt,
 | |
|     required int trustworthy,
 | |
|     required Map<String, dynamic>? createdResponse,
 | |
|   }) = _SnAuthFactor;
 | |
| 
 | |
|   factory SnAuthFactor.fromJson(Map<String, dynamic> json) =>
 | |
|       _$SnAuthFactorFromJson(json);
 | |
| }
 | |
| 
 | |
| @freezed
 | |
| sealed class SnAccountConnection with _$SnAccountConnection {
 | |
|   const factory SnAccountConnection({
 | |
|     required String id,
 | |
|     required String accountId,
 | |
|     required String provider,
 | |
|     required String providedIdentifier,
 | |
|     @Default({}) Map<String, dynamic> meta,
 | |
|     required DateTime lastUsedAt,
 | |
|     required DateTime createdAt,
 | |
|     required DateTime updatedAt,
 | |
|     required DateTime? deletedAt,
 | |
|   }) = _SnAccountConnection;
 | |
| 
 | |
|   factory SnAccountConnection.fromJson(Map<String, dynamic> json) =>
 | |
|       _$SnAccountConnectionFromJson(json);
 | |
| }
 |