24 lines
847 B
Dart
24 lines
847 B
Dart
import 'package:freezed_annotation/freezed_annotation.dart';
|
|
|
|
part 'session_model.freezed.dart';
|
|
part 'session_model.g.dart';
|
|
|
|
@freezed
|
|
class Session with _$Session {
|
|
const factory Session({
|
|
required int id,
|
|
@JsonKey(name: 'user_id') int? userId,
|
|
@JsonKey(name: 'session_token') String? sessionToken,
|
|
@JsonKey(name: 'device_name') required String deviceName,
|
|
@JsonKey(name: 'ip_address') required String ipAddress,
|
|
@JsonKey(name: 'app_name') String? appName,
|
|
@JsonKey(name: 'app_version') String? appVersion,
|
|
String? platform,
|
|
@JsonKey(name: 'created_at') required DateTime createdAt,
|
|
@JsonKey(name: 'last_active') required DateTime lastActive,
|
|
@JsonKey(name: 'is_current') required bool isCurrent,
|
|
}) = _Session;
|
|
|
|
factory Session.fromJson(Map<String, dynamic> json) => _$SessionFromJson(json);
|
|
}
|