Line data Source code
1 : import 'package:fast_immutable_collections/fast_immutable_collections.dart';
2 : import 'package:freezed_annotation/freezed_annotation.dart';
3 : import 'package:redfire/types.dart';
4 :
5 : part 'project_model.freezed.dart';
6 : part 'project_model.g.dart';
7 :
8 : @freezed
9 : class ProjectModel with _$ProjectModel, ReduxState {
10 : static const String className = 'ProjectModel';
11 :
12 0 : const ProjectModel._();
13 : const factory ProjectModel({
14 : required String id,
15 : required String name,
16 : required ISet<String> ownerIds,
17 : required ISet<String> adminIds,
18 : required ISet<String> memberIds,
19 : required ISet<String> organisationIds,
20 : required ISet<String> sectionIds,
21 : }) = _ProjectModel;
22 :
23 0 : factory ProjectModel.fromJson(JsonMap json) => _$ProjectModelFromJson(json);
24 :
25 0 : factory ProjectModel.init({required String name}) => ProjectModel(
26 : id: '',
27 : name: name,
28 0 : ownerIds: ISet(),
29 0 : adminIds: ISet(),
30 0 : memberIds: ISet(),
31 0 : organisationIds: ISet(),
32 0 : sectionIds: ISet(),
33 : );
34 :
35 0 : @override
36 : String get typeName => className;
37 : }
|