35 lines
No EOL
1.1 KiB
Dart
35 lines
No EOL
1.1 KiB
Dart
// build_expiry_info.dart - 簡易実装(ビルド情報管理)
|
|
class BuildExpiryInfo {
|
|
static const String info = '販売アシスト 1 号';
|
|
static final List<Map<String, dynamic>> expiryDates = <Map<String, dynamic>>[];
|
|
|
|
factory BuildExpiryInfo({required DateTime buildDateTime}) => BuildExpiryInfo._(buildDateTime: buildDateTime);
|
|
|
|
BuildExpiryInfo._({required this.buildDateTime});
|
|
|
|
final DateTime buildDateTime;
|
|
|
|
bool isExpired() {
|
|
final now = DateTime.now().toUtc();
|
|
final expiry = buildDateTime.add(const Duration(days: 90));
|
|
return now.isAfter(expiry);
|
|
}
|
|
|
|
Map<String, dynamic> toMap() => {'info': info, 'buildDate': '${buildDateTime.toIso8601String()}'};
|
|
|
|
String toString() => '$info (ビルド日:${buildDateTime.toLocal()}, 有効期限:${isExpired() ? "終了" : "有効"})';
|
|
}
|
|
|
|
class ExpiredApp {
|
|
final BuildExpiryInfo info;
|
|
|
|
ExpiredApp(this.info);
|
|
|
|
Widget build(BuildContext context) => Scaffold(
|
|
appBar: AppBar(title: const Text('販売アシスト 1 号')),
|
|
body: Center(child: Text(info.toString())),
|
|
);
|
|
|
|
@override
|
|
String toString() => 'ExpiredApp: ${info.toString()}';
|
|
} |