瀏覽代碼

Add session model

vishnukvmd 3 年之前
父節點
當前提交
7fb8b6690a
共有 1 個文件被更改,包括 127 次插入0 次删除
  1. 127 0
      lib/models/sessions.dart

+ 127 - 0
lib/models/sessions.dart

@@ -0,0 +1,127 @@
+import 'dart:convert';
+
+import 'package:flutter/foundation.dart';
+
+class Sessions {
+  final List<Session> sessions;
+
+  Sessions(
+    this.sessions,
+  );
+
+  Sessions copyWith({
+    List<Session> sessions,
+  }) {
+    return Sessions(
+      sessions ?? this.sessions,
+    );
+  }
+
+  Map<String, dynamic> toMap() {
+    return {
+      'sessions': sessions?.map((x) => x.toMap())?.toList(),
+    };
+  }
+
+  factory Sessions.fromMap(Map<String, dynamic> map) {
+    return Sessions(
+      List<Session>.from(map['sessions']?.map((x) => Session.fromMap(x))),
+    );
+  }
+
+  String toJson() => json.encode(toMap());
+
+  factory Sessions.fromJson(String source) =>
+      Sessions.fromMap(json.decode(source));
+
+  @override
+  String toString() => 'Sessions(sessions: $sessions)';
+
+  @override
+  bool operator ==(Object other) {
+    if (identical(this, other)) return true;
+
+    return other is Sessions && listEquals(other.sessions, sessions);
+  }
+
+  @override
+  int get hashCode => sessions.hashCode;
+}
+
+class Session {
+  final String token;
+  final int creationTime;
+  final String ip;
+  final String userAgent;
+  final int lastUsedTime;
+
+  Session(this.token, this.creationTime, this.ip, this.userAgent,
+      this.lastUsedTime);
+
+  Session copyWith({
+    String token,
+    int creationTime,
+    String ip,
+    String userAgent,
+    int lastUsedTime,
+  }) {
+    return Session(
+      token ?? this.token,
+      creationTime ?? this.creationTime,
+      ip ?? this.ip,
+      userAgent ?? this.userAgent,
+      lastUsedTime ?? this.lastUsedTime,
+    );
+  }
+
+  Map<String, dynamic> toMap() {
+    return {
+      'token': token,
+      'creationTime': creationTime,
+      'ip': ip,
+      'userAgent': userAgent,
+      'lastUsedTime': lastUsedTime,
+    };
+  }
+
+  factory Session.fromMap(Map<String, dynamic> map) {
+    return Session(
+      map['token'],
+      map['creationTime'],
+      map['ip'],
+      map['userAgent'],
+      map['lastUsedTime'],
+    );
+  }
+
+  String toJson() => json.encode(toMap());
+
+  factory Session.fromJson(String source) =>
+      Session.fromMap(json.decode(source));
+
+  @override
+  String toString() {
+    return 'Session(token: $token, creationTime: $creationTime, ip: $ip, userAgent: $userAgent, lastUsedTime: $lastUsedTime)';
+  }
+
+  @override
+  bool operator ==(Object other) {
+    if (identical(this, other)) return true;
+
+    return other is Session &&
+        other.token == token &&
+        other.creationTime == creationTime &&
+        other.ip == ip &&
+        other.userAgent == userAgent &&
+        other.lastUsedTime == lastUsedTime;
+  }
+
+  @override
+  int get hashCode {
+    return token.hashCode ^
+        creationTime.hashCode ^
+        ip.hashCode ^
+        userAgent.hashCode ^
+        lastUsedTime.hashCode;
+  }
+}