invoice/lib/data/models/static/date_format_model.dart

116 lines
2.6 KiB
Dart

import 'package:built_collection/built_collection.dart';
import 'package:built_value/built_value.dart';
import 'package:built_value/serializer.dart';
import 'package:intl/intl.dart';
import 'package:invoiceninja_flutter/data/models/entities.dart';
part 'date_format_model.g.dart';
abstract class DateFormatListResponse
implements Built<DateFormatListResponse, DateFormatListResponseBuilder> {
factory DateFormatListResponse(
[void updates(DateFormatListResponseBuilder b)]) =
_$DateFormatListResponse;
DateFormatListResponse._();
@override
@memoized
int get hashCode;
BuiltList<DateFormatEntity> get data;
static Serializer<DateFormatListResponse> get serializer =>
_$dateFormatListResponseSerializer;
}
abstract class DateFormatItemResponse
implements Built<DateFormatItemResponse, DateFormatItemResponseBuilder> {
factory DateFormatItemResponse(
[void updates(DateFormatItemResponseBuilder b)]) =
_$DateFormatItemResponse;
DateFormatItemResponse._();
@override
@memoized
int get hashCode;
DateFormatEntity get data;
static Serializer<DateFormatItemResponse> get serializer =>
_$dateFormatItemResponseSerializer;
}
class DateFormatFields {
static const String format = 'format';
static const String pickerFormat = 'picker_format';
static const String formatMoment = 'format_moment';
}
abstract class DateFormatEntity extends Object
with SelectableEntity
implements Built<DateFormatEntity, DateFormatEntityBuilder> {
factory DateFormatEntity() {
return _$DateFormatEntity._(
id: '',
format: '',
);
}
DateFormatEntity._();
@override
@memoized
int get hashCode;
@BuiltValueField(wireName: 'format_dart')
String get format;
@override
bool matchesFilter(String filter) {
if (filter == null || filter.isEmpty) {
return true;
}
filter = filter.toLowerCase();
if (filter.toLowerCase().contains(filter)) {
return true;
}
return false;
}
@override
String matchesFilterValue(String filter) {
if (filter == null || filter.isEmpty) {
return null;
}
filter = filter.toLowerCase();
/*
if (location.toLowerCase().contains(filter)) {
return location;
}
*/
return null;
}
String get preview {
final formatter = DateFormat(format, 'en');
return formatter.format(DateTime.parse('2000-01-31'));
}
@override
String get listDisplayName => preview;
@override
double get listDisplayAmount => null;
static Serializer<DateFormatEntity> get serializer =>
_$dateFormatEntitySerializer;
}