birzha_mobile/lib/models/products/post.dart

32 lines
1020 B
Dart

import 'package:birzha/models/settings/settingsModel.dart';
import 'package:birzha/models/translationModel.dart';
import 'package:birzha/services/translationServices.dart';
import 'package:flutter/material.dart';
import 'package:birzha/core/orm/orm.dart';
abstract class PostCharacteristics {
String get translatedLabel;
String get value;
}
mixin RemoteDetailsMixin on Post {
Future<void> loadDetails(BuildContext context);
}
mixin TranslatableMixin<PKeyType> on Orm<PKeyType> {
void configureTranslationModel() {
var translationsRaw = jSON['translations'];
if (translationsRaw != null && translationsRaw is Iterable)
(translationsRaw as List).removeWhere((element) => TranslationModel({...element}).primaryKey != 'backendCode'.translation);
}
TranslationModel? get translationModel => getTranslationAccordingToLocale(translationsFromMap(jSON));
}
abstract class Post extends Orm<int> {
Post(Map<String, dynamic> jSON) : super(jSON);
@override
String get primaryKeyField => 'id';
}