37 lines
913 B
Dart
37 lines
913 B
Dart
import 'package:freezed_annotation/freezed_annotation.dart';
|
|
|
|
part 'role_model.freezed.dart';
|
|
part 'role_model.g.dart';
|
|
|
|
@freezed
|
|
class RoleModel with _$RoleModel {
|
|
const factory RoleModel({
|
|
required String id,
|
|
required String name,
|
|
required String slug,
|
|
String? description,
|
|
@Default([]) List<String> permissions,
|
|
DateTime? createdAt,
|
|
DateTime? updatedAt,
|
|
}) = _RoleModel;
|
|
|
|
factory RoleModel.fromJson(Map<String, dynamic> json) => _$RoleModelFromJson(json);
|
|
}
|
|
|
|
@freezed
|
|
class PermissionModel with _$PermissionModel {
|
|
const factory PermissionModel({
|
|
required String id,
|
|
required String module,
|
|
required String action,
|
|
String? description,
|
|
}) = _PermissionModel;
|
|
|
|
factory PermissionModel.fromJson(Map<String, dynamic> json) =>
|
|
_$PermissionModelFromJson(json);
|
|
}
|
|
|
|
extension PermissionModelX on PermissionModel {
|
|
String get key => '$module.$action';
|
|
}
|