Files
CloudHome-Ops/lib/models/theme_template.dart

56 lines
1.4 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/// 主题模板(对应 web 后台 /theme/themetemplate/* 接口)。
///
/// 用于门店表单中「主题皮肤」选择;门店的 themeId 通常即为模板 id。
class ThemeTemplate {
const ThemeTemplate({
required this.id,
required this.name,
this.description,
this.coverUrl,
this.status = 'ENABLED',
});
/// 模板 ID(对应门店 themeId)。
final String id;
/// 模板名称。
final String name;
/// 模板描述。
final String? description;
/// 封面预览图 URL。
final String? coverUrl;
/// 状态:ENABLED / DISABLED。
final String status;
factory ThemeTemplate.fromJson(Map<String, dynamic> json) {
return ThemeTemplate(
id: json['id']?.toString() ??
json['templateId']?.toString() ??
json['themeTemplateId']?.toString() ??
'',
name: json['name']?.toString() ??
json['templateName']?.toString() ??
'',
description: json['description']?.toString(),
coverUrl: json['coverUrl']?.toString() ??
json['cover_url']?.toString(),
status: json['status']?.toString() ?? 'ENABLED',
);
}
Map<String, dynamic> toJson() {
return {
'id': id,
'name': name,
if (description != null) 'description': description,
if (coverUrl != null) 'coverUrl': coverUrl,
'status': status,
};
}
bool get isEnabled => status.toUpperCase() == 'ENABLED';
}