fix: merge duplicate symbols, expand Zoroastrian citations, add reading deletion to sessions, and deduplicate Word of the Day
This commit is contained in:
@@ -5265,9 +5265,9 @@
|
|||||||
"id": "card_17",
|
"id": "card_17",
|
||||||
"name": "Аист",
|
"name": "Аист",
|
||||||
"symbol": "🪶 🕊️",
|
"symbol": "🪶 🕊️",
|
||||||
"lore": "Аист олицетворяет закон циклического обновления, сдвигающий застывшую ситуацию с места через перемену внешних условий, переоценку ценностей и неизбежное возвращение к своим истокам.",
|
"lore": "Аист олицетворяет закон циклического обновления, сдвигающий застывшую ситуацию с места через перемену внешних условий, переоценку ценностей и неизбежное возвращение к своим истокам. По Дж. Куперу — солярная птица вод творения, благовещения и рождения новой жизни.",
|
||||||
"group": "Малая колода · №17",
|
"group": "Малая колода · №17",
|
||||||
"meaning": "Образ аиста соединяет в себе порыв к перелетам и безусловную верность родному гнезду. Это символ плодородия, заботы о потомстве, чистоты намерений и устойчивой связи со своими корнями и традициями. Птица ежегодно улетает в чужие края, но неизменно возвращается домой, олицетворяя гармоничное сочетание открытости новому опыту и преданности постоянным ценностям.\n\nВ раскладе карта выступает активным двигателем: она выводит любую ситуацию из тупика и застоя, делая перемены неотвратимыми. Направление динамики всецело задают соседние карты. Предшествующая карта показывает источник, причину или область зарождения перемен, а последующая раскрывает их характер и результат. В гармоничном окружении Аист сулит счастливые перемены и рост, но в сочетании с неблагоприятными символами сигнализирует о сдвиге к худшему. Рядом с картой Ребенка или бланкой женщины прямо указывает на зачатие, беременность и рождение детей.\n\nСроки событий по Аисту охватывают период от 20 до 55 дней. Изменения носят не мимолетный, а долговременный характер. Временной рисунок карты подчинен цикличности и равным интервалам: развитие ситуации идет закономерными волнами, часто возвращая в настоящее незавершенные вопросы из прошлого, которые требуют окончательного решения на новом уровне.\n\nПрактическое проявление карты охватывает любые формы смены обстановки — от локальной перестановки в доме до переезда на новую квартиру, дальних перелетов и командировок. В делах карта дает импульс к развитию, указывает на прибыльную торговлю, зарубежные контакты и прогрессивные инициативы. В отношениях она знаменует внутреннюю переоценку, возрождение чувств, выход на этап зрелых обязательств или встречу со старыми близкими. На телесном уровне связана с ногами и двигательной функцией, а для восстановления сил рекомендует смену обстановки или поездку на оздоровительный курорт.\n\nВ роли сигнификатора человека Аист описывает зрелую личность (примерно от 35 до 50 лет) — динамичную, общительную, любезную и образованную, искренне преданную семье и дому. Часто указывает на заботливую женщину или даму сердца. В профессиональном плане представляет людей помогающих специальностей (врачи, акушеры, целители, учителя, воспитатели), а также тех, чья деятельность связана с дорогами, движением и публичностью — перевозчиков, спортсменов, артистов и журналистов.",
|
"meaning": "Образ аиста соединяет в себе порыв к перелетам и безусловную верность родному гнезду. Это символ плодородия, заботы о потомстве, чистоты намерений и устойчивой связи со своими корнями и традициями. Птица ежегодно улетает в чужие края, но неизменно возвращается домой, олицетворяя гармоничное сочетание открытости новому опыту и преданности постоянным ценностям.\n\nВ раскладе карта выступает активным двигателем: она выводит любую ситуацию из тупика и застоя, делая перемены неотвратимыми. Направление динамики всецело задают соседние карты. Предшествующая карта показывает источник, причину или область зарождения перемен, а последующая раскрывает их характер и результат. В гармоничном окружении Аист сулит счастливые перемены и рост, но в сочетании с неблагоприятными символами сигнализирует о сдвиге к худшему. Рядом с картой Ребенка или бланкой женщины прямо указывает на зачатие, беременность и рождение детей.\n\nСроки событий по Аисту охватывают период от 20 до 55 дней. Изменения носят не мимолетный, а долговременный характер. Временной рисунок карты подчинен цикличности и равным интервалам: развитие ситуации идет закономерными волнами, часто возвращая в настоящее незавершенные вопросы из прошлого, которые требуют окончательного решения на новом уровне.\n\nПрактическое проявление карты охватывает любые формы смены обстановки — от локальной перестановки в доме до переезда на новую квартиру, дальних перелетов и командировок. В делах карта дает импульс к развитию, указывает на прибыльную торговлю, зарубежные контакты и прогрессивные инициативы. В отношениях она знаменует внутреннюю переоценку, возрождение чувств, выход на этап зрелых обязательств или встречу со старыми близкими. На телесном уровне связана с ногами и двигательной функцией, а для восстановления сил рекомендует смену обстановки или поездку на оздоровительный курорт.\n\nВ роли сигнификатора человека Аист описывает зрелую личность (примерно от 35 до 50 лет) — динамичную, общительную, любезную и образованную, искренне преданную семье и дому. Часто указывает на заботливую женщину или даму сердца. В профессиональном плане представляет людей помогающих специальностей (врачи, акушеры, целители, учителя, воспитатели), а также тех, чья деятельность связана с дорогами, движением и публичностью — перевозчиков, спортсменов, артистов и журналистов.\n\nСакральный символизм (по Дж. Куперу): солярная птица, уничтожающая зловещих рептилий и связанная с водами творения. «Приносимые аистом» дети в виде эмбрионов покоятся в лоне Матери-Земли и водах бытия, где их находят аисты. Символизирует приход весны, Благовещение, чистоту, целомудрие, сыновнюю почтительность к родителям и защиту богини Геры / Юноны как подательницы жизни.",
|
||||||
"shadow": "Тень закона заключается в нестабильности, вечном беспокойстве и утрате точки опоры. При негативном раскладе стремление к обновлению оборачивается вынужденным бегством, потерями и разрушением привычного уклада. Вместо плодотворного развития человек рискует оказаться в ловушке дурной бесконечности, раз за разом наступая на одни и те же нерешенные проблемы прошлого.",
|
"shadow": "Тень закона заключается в нестабильности, вечном беспокойстве и утрате точки опоры. При негативном раскладе стремление к обновлению оборачивается вынужденным бегством, потерями и разрушением привычного уклада. Вместо плодотворного развития человек рискует оказаться в ловушке дурной бесконечности, раз за разом наступая на одни и те же нерешенные проблемы прошлого.",
|
||||||
"meanings": [],
|
"meanings": [],
|
||||||
"pairs": [
|
"pairs": [
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -152,6 +152,35 @@ class _CrossSystemComparisonScreenState extends State<CrossSystemComparisonScree
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void _confirmDeleteReading(SyncreticReading reading) {
|
||||||
|
showDialog(
|
||||||
|
context: context,
|
||||||
|
builder: (ctx) => AlertDialog(
|
||||||
|
backgroundColor: const Color(0xFF151829),
|
||||||
|
title: const Text('Удалить расклад?', style: TextStyle(color: Color(0xFFFFF9C4), fontSize: 16, fontWeight: FontWeight.bold)),
|
||||||
|
content: Text('Удалить «${reading.systemName} (${reading.layoutTitle})» из текущей сессии дня?', style: const TextStyle(color: Color(0xFFECEFF1), fontSize: 13)),
|
||||||
|
actions: [
|
||||||
|
TextButton(
|
||||||
|
onPressed: () => Navigator.pop(ctx),
|
||||||
|
child: const Text('Отмена', style: TextStyle(color: Color(0xFF8C93B8))),
|
||||||
|
),
|
||||||
|
ElevatedButton(
|
||||||
|
style: ElevatedButton.styleFrom(backgroundColor: const Color(0xFFEF5350), foregroundColor: Colors.white),
|
||||||
|
onPressed: () async {
|
||||||
|
Navigator.pop(ctx);
|
||||||
|
await _repo.removeReadingFromSyncreticSession(reading.id);
|
||||||
|
setState(() {
|
||||||
|
_session = _repo.currentSyncreticSession;
|
||||||
|
});
|
||||||
|
HapticFeedback.mediumImpact();
|
||||||
|
},
|
||||||
|
child: const Text('Удалить'),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final readings = _session.readings;
|
final readings = _session.readings;
|
||||||
@@ -332,6 +361,11 @@ class _CrossSystemComparisonScreenState extends State<CrossSystemComparisonScree
|
|||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
IconButton(
|
||||||
|
icon: const Icon(Icons.close_rounded, size: 20, color: Color(0xFFEF5350)),
|
||||||
|
tooltip: 'Удалить из сессии',
|
||||||
|
onPressed: () => _confirmDeleteReading(reading),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
const SizedBox(height: 12),
|
const SizedBox(height: 12),
|
||||||
|
|||||||
@@ -415,22 +415,6 @@ class _DivinationHubScreenState extends State<DivinationHubScreen> {
|
|||||||
// Section 1: Core 999 Systems
|
// Section 1: Core 999 Systems
|
||||||
_buildSectionHeader('СИСТЕМЫ ОРАКУЛА 999', Icons.auto_awesome_rounded),
|
_buildSectionHeader('СИСТЕМЫ ОРАКУЛА 999', Icons.auto_awesome_rounded),
|
||||||
const SizedBox(height: 10),
|
const SizedBox(height: 10),
|
||||||
Row(
|
|
||||||
children: [
|
|
||||||
Expanded(
|
|
||||||
child: _buildSystemCard(
|
|
||||||
title: 'Слово Дня',
|
|
||||||
instructionId: 'word_of_day',
|
|
||||||
subtitle: 'Календарь & Квест',
|
|
||||||
icon: '☀️',
|
|
||||||
desc: 'Ежедневный архетип, коан для ума, микродействие и дневник',
|
|
||||||
accentColor: const Color(0xFFFFD54F),
|
|
||||||
onTap: () => Navigator.push(context, MaterialPageRoute(builder: (_) => const WordOfTheDayScreen())).then((_) => setState(() {})),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
const SizedBox(height: 12),
|
|
||||||
Row(
|
Row(
|
||||||
children: [
|
children: [
|
||||||
Expanded(
|
Expanded(
|
||||||
|
|||||||
@@ -715,6 +715,13 @@ class WordsRepository {
|
|||||||
await saveSyncreticSession(updatedSession);
|
await saveSyncreticSession(updatedSession);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<void> removeReadingFromSyncreticSession(String readingId) async {
|
||||||
|
final current = currentSyncreticSession;
|
||||||
|
final updatedReadings = current.readings.where((r) => r.id != readingId).toList();
|
||||||
|
final updatedSession = current.copyWith(readings: updatedReadings);
|
||||||
|
await saveSyncreticSession(updatedSession);
|
||||||
|
}
|
||||||
|
|
||||||
Future<void> saveSyncreticSession(SyncreticSession session) async {
|
Future<void> saveSyncreticSession(SyncreticSession session) async {
|
||||||
_currentSyncreticSession = session;
|
_currentSyncreticSession = session;
|
||||||
final idx = _syncreticSessions.indexWhere((s) => s.id == session.id);
|
final idx = _syncreticSessions.indexWhere((s) => s.id == session.id);
|
||||||
|
|||||||
Reference in New Issue
Block a user