CalendarEvent.from constructor

CalendarEvent.from({
  1. required String id,
  2. required String title,
  3. required dynamic date,
  4. String? description,
  5. CalendarEventType type = CalendarEventType.general,
  6. int? colorValue,
  7. String? iconName,
  8. Map<String, dynamic>? metadata,
})

Factory constructor supporting NepaliDate, NepaliDateTime, or DateTime.

Implementation

factory CalendarEvent.from({
  required String id,
  required String title,
  required dynamic date,
  String? description,
  CalendarEventType type = CalendarEventType.general,
  int? colorValue,
  String? iconName,
  Map<String, dynamic>? metadata,
}) {
  final NepaliDate bsDate;
  if (date is NepaliDate) {
    bsDate = date;
  } else if (date is NepaliDateTime) {
    bsDate = date.toNepaliDate();
  } else if (date is DateTime) {
    bsDate = NepaliDate.fromDateTime(date);
  } else {
    throw ArgumentError.value(
      date,
      'date',
      'Expected NepaliDate, NepaliDateTime, or DateTime',
    );
  }

  return CalendarEvent(
    id: id,
    title: title,
    date: bsDate,
    description: description,
    type: type,
    colorValue: colorValue,
    iconName: iconName,
    metadata: metadata,
  );
}