mirror of
https://github.com/R0m1k3/xtremflow.git
synced 2026-10-11 17:30:00 +02:00
52 lines
1.0 KiB
Dart
52 lines
1.0 KiB
Dart
import 'package:hive/hive.dart';
|
|
|
|
part 'app_user.g.dart';
|
|
|
|
@HiveType(typeId: 0)
|
|
class AppUser {
|
|
@HiveField(0)
|
|
final String id;
|
|
|
|
@HiveField(1)
|
|
final String username;
|
|
|
|
@HiveField(2)
|
|
final String passwordHash; // SHA-256 hash
|
|
|
|
@HiveField(3)
|
|
final bool isAdmin;
|
|
|
|
@HiveField(4)
|
|
final List<String> assignedPlaylistIds;
|
|
|
|
@HiveField(5)
|
|
final DateTime createdAt;
|
|
|
|
const AppUser({
|
|
required this.id,
|
|
required this.username,
|
|
required this.passwordHash,
|
|
required this.isAdmin,
|
|
required this.assignedPlaylistIds,
|
|
required this.createdAt,
|
|
});
|
|
|
|
AppUser copyWith({
|
|
String? id,
|
|
String? username,
|
|
String? passwordHash,
|
|
bool? isAdmin,
|
|
List<String>? assignedPlaylistIds,
|
|
DateTime? createdAt,
|
|
}) {
|
|
return AppUser(
|
|
id: id ?? this.id,
|
|
username: username ?? this.username,
|
|
passwordHash: passwordHash ?? this.passwordHash,
|
|
isAdmin: isAdmin ?? this.isAdmin,
|
|
assignedPlaylistIds: assignedPlaylistIds ?? this.assignedPlaylistIds,
|
|
createdAt: createdAt ?? this.createdAt,
|
|
);
|
|
}
|
|
}
|