import 'package:pshared/models/describable.dart';
import 'package:pshared/models/storable.dart';
import 'package:pshared/models/storable/describable.dart';


class RoleDescription implements StorableDescribable {
  final Storable storable;
  final Describable describable;

  @override
  String get id => storable.id;
  @override
  DateTime get createdAt => storable.createdAt;
  @override
  DateTime get updatedAt => storable.updatedAt;
  @override
  String get name => describable.name;
  @override
  String? get description => describable.description;
  
  final String organizationRef;

  const RoleDescription({
    required this.storable,
    required this.describable,
    required this.organizationRef,
  });

  factory RoleDescription.build({
    required Describable roleDescription, 
    required String organizationRef,
  }) => RoleDescription(
      storable: newStorable(), 
      describable: roleDescription, 
      organizationRef: organizationRef
    );
}
