import 'package:aves/model/metadata/enums.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/widgets.dart'; @immutable class DateModifier { static const writableDateFields = [ MetadataField.exifDate, MetadataField.exifDateOriginal, MetadataField.exifDateDigitized, MetadataField.exifGpsDate, MetadataField.xmpCreateDate, ]; final DateEditAction action; final Set fields; final DateTime? setDateTime; final DateFieldSource? copyFieldSource; final int? shiftMinutes; const DateModifier._private( this.action, this.fields, { this.setDateTime, this.copyFieldSource, this.shiftMinutes, }); factory DateModifier.setCustom(Set fields, DateTime dateTime) { return DateModifier._private(DateEditAction.setCustom, fields, setDateTime: dateTime); } factory DateModifier.copyField(Set fields, DateFieldSource copyFieldSource) { return DateModifier._private(DateEditAction.copyField, fields, copyFieldSource: copyFieldSource); } factory DateModifier.extractFromTitle(Set fields) { return DateModifier._private(DateEditAction.extractFromTitle, fields); } factory DateModifier.shift(Set fields, int shiftMinutes) { return DateModifier._private(DateEditAction.shift, fields, shiftMinutes: shiftMinutes); } factory DateModifier.remove(Set fields) { return DateModifier._private(DateEditAction.remove, fields); } }