56 lines
1.4 KiB
Dart
56 lines
1.4 KiB
Dart
|
|
/// 主题模板(对应 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';
|
|||
|
|
}
|