Files
Tracker/lib/models/scripture.dart
2025-12-19 22:47:27 -06:00

470 lines
19 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.
<<<<<<< HEAD
/// Scripture model for daily verses and devotionals
class Scripture {
final String verse;
=======
import 'user_profile.dart';
/// Scripture model for daily verses and devotionals
class Scripture {
final Map<BibleTranslation, String> verses;
>>>>>>> 6742220 (Your commit message here)
final String reference;
final String? reflection;
final List<String> applicablePhases;
final List<String> applicableContexts;
const Scripture({
<<<<<<< HEAD
required this.verse,
=======
required this.verses,
>>>>>>> 6742220 (Your commit message here)
required this.reference,
this.reflection,
this.applicablePhases = const [],
this.applicableContexts = const [],
});
<<<<<<< HEAD
=======
String getVerse(BibleTranslation translation) {
return verses[translation] ?? verses[BibleTranslation.esv] ?? verses.values.first;
}
>>>>>>> 6742220 (Your commit message here)
}
/// Pre-defined scriptures for the app
class ScriptureDatabase {
/// Scriptures for menstrual phase (rest, comfort)
static const List<Scripture> menstrualScriptures = [
Scripture(
<<<<<<< HEAD
verse: "Come to me, all you who are weary and burdened, and I will give you rest.",
=======
verses: {
BibleTranslation.esv: "Come to me, all who labor and are heavy laden, and I will give you rest.",
BibleTranslation.niv: "Come to me, all you who are weary and burdened, and I will give you rest.",
BibleTranslation.nkjv: "Come to me, all you who labor and are heavy laden, and I will give you rest.",
BibleTranslation.nlt: "Come to me, all of you who are weary and carry heavy burdens, and I will give you rest.",
BibleTranslation.nasb: "Come to Me, all who are weary and burdened, and I will give you rest.",
BibleTranslation.kjv: "Come unto me, all ye that labour and are heavy laden, and I will give you rest.",
},
>>>>>>> 6742220 (Your commit message here)
reference: "Matthew 11:28",
reflection: "Your body is doing important work. Rest is not weakness—it's wisdom.",
applicablePhases: ['menstrual'],
),
Scripture(
<<<<<<< HEAD
verse: "He gives strength to the weary and increases the power of the weak.",
=======
verses: {
BibleTranslation.esv: "He gives power to the faint, and to him who has no might he increases strength.",
BibleTranslation.niv: "He gives strength to the weary and increases the power of the weak.",
BibleTranslation.nkjv: "He gives power to the weak, and to those who have no might He increases strength.",
BibleTranslation.nasb: "He gives strength to the weary, and to the one who lacks might He increases power.",
},
>>>>>>> 6742220 (Your commit message here)
reference: "Isaiah 40:29",
applicablePhases: ['menstrual'],
),
Scripture(
<<<<<<< HEAD
verse: "The Lord is my shepherd; I shall not want. He makes me lie down in green pastures.",
reference: "Psalm 23:1-2",
applicablePhases: ['menstrual'],
),
Scripture(
verse: "Be still, and know that I am God.",
reference: "Psalm 46:10",
reflection: "Use this time of slowing down to be present with God.",
applicablePhases: ['menstrual'],
),
Scripture(
verse: "My grace is sufficient for you, for my power is made perfect in weakness.",
reference: "2 Corinthians 12:9",
applicablePhases: ['menstrual'],
),
=======
verses: {
BibleTranslation.esv: "The LORD is my shepherd; I shall not want. He makes me lie down in green pastures.",
BibleTranslation.niv: "The LORD is my shepherd, I lack nothing. He makes me lie down in green pastures.",
BibleTranslation.nkjv: "The LORD is my shepherd; I shall not want. He makes me to lie down in green pastures.",
},
reference: "Psalm 23:1-2",
applicablePhases: ['menstrual'],
),
>>>>>>> 6742220 (Your commit message here)
];
/// Scriptures for follicular phase (renewal, strength)
static const List<Scripture> follicularScriptures = [
Scripture(
<<<<<<< HEAD
verse: "She is clothed with strength and dignity; she can laugh at the days to come.",
=======
verses: {
BibleTranslation.esv: "Strength and dignity are her clothing, and she laughs at the time to come.",
BibleTranslation.niv: "She is clothed with strength and dignity; she can laugh at the days to come.",
BibleTranslation.nkjv: "Strength and honor are her clothing; she shall rejoice in time to come.",
BibleTranslation.nlt: "She is clothed with strength and dignity, and she laughs without fear of the future.",
},
>>>>>>> 6742220 (Your commit message here)
reference: "Proverbs 31:25",
reflection: "You're entering a season of renewed energy. Use it for His glory.",
applicablePhases: ['follicular'],
),
Scripture(
<<<<<<< HEAD
verse: "I can do all this through him who gives me strength.",
=======
verses: {
BibleTranslation.esv: "I can do all things through him who strengthens me.",
BibleTranslation.niv: "I can do all this through him who gives me strength.",
BibleTranslation.nkjv: "I can do all things through Christ who strengthens me.",
},
>>>>>>> 6742220 (Your commit message here)
reference: "Philippians 4:13",
applicablePhases: ['follicular'],
),
Scripture(
<<<<<<< HEAD
verse: "But those who hope in the Lord will renew their strength. They will soar on wings like eagles.",
reference: "Isaiah 40:31",
applicablePhases: ['follicular'],
),
Scripture(
verse: "This is the day the Lord has made; let us rejoice and be glad in it.",
reference: "Psalm 118:24",
applicablePhases: ['follicular'],
),
Scripture(
verse: "The Lord your God is with you, the Mighty Warrior who saves.",
reference: "Zephaniah 3:17",
applicablePhases: ['follicular'],
),
=======
verses: {
BibleTranslation.esv: "but they who wait for the LORD shall renew their strength; they shall mount up with wings like eagles.",
BibleTranslation.niv: "but those who hope in the LORD will renew their strength. They will soar on wings like eagles.",
},
reference: "Isaiah 40:31",
applicablePhases: ['follicular'],
),
>>>>>>> 6742220 (Your commit message here)
];
/// Scriptures for ovulation phase (creation, beauty)
static const List<Scripture> ovulationScriptures = [
Scripture(
<<<<<<< HEAD
verse: "For you created my inmost being; you knit me together in my mother's womb. I praise you because I am fearfully and wonderfully made.",
=======
verses: {
BibleTranslation.esv: "For you formed my inmost parts; you knitted me together in my mother's womb. I praise you, for I am fearfully and wonderfully made.",
BibleTranslation.niv: "For you created my inmost being; you knit me together in my mothers womb. I praise you because I am fearfully and wonderfully made.",
BibleTranslation.nkjv: "For You formed my inward parts; You covered me in my mothers womb. I will praise You, for I am fearfully and wonderfully made.",
},
>>>>>>> 6742220 (Your commit message here)
reference: "Psalm 139:13-14",
reflection: "Your body reflects the incredible creativity of God.",
applicablePhases: ['ovulation'],
),
Scripture(
<<<<<<< HEAD
verse: "Children are a heritage from the Lord, offspring a reward from him.",
reference: "Psalm 127:3",
applicablePhases: ['ovulation'],
),
Scripture(
verse: "See, I am doing a new thing! Now it springs up; do you not perceive it?",
reference: "Isaiah 43:19",
applicablePhases: ['ovulation'],
),
Scripture(
verse: "Every good and perfect gift is from above.",
reference: "James 1:17",
applicablePhases: ['ovulation'],
),
=======
verses: {
BibleTranslation.esv: "Behold, children are a heritage from the LORD, the fruit of the womb a reward.",
BibleTranslation.niv: "Children are a heritage from the LORD, offspring a reward from him.",
BibleTranslation.nkjv: "Behold, children are a heritage from the LORD, the fruit of the womb is a reward.",
},
reference: "Psalm 127:3",
applicablePhases: ['ovulation'],
),
>>>>>>> 6742220 (Your commit message here)
];
/// Scriptures for luteal phase / TWW (patience, trust)
static const List<Scripture> lutealScriptures = [
Scripture(
<<<<<<< HEAD
verse: "For I know the plans I have for you, declares the Lord, plans to prosper you and not to harm you, plans to give you hope and a future.",
=======
verses: {
BibleTranslation.esv: "For I know the plans I have for you, declares the LORD, plans for welfare and not for evil, to give you a future and a hope.",
BibleTranslation.niv: "For I know the plans I have for you,” declares the LORD, “plans to prosper you and not to harm you, plans to give you hope and a future.",
BibleTranslation.nkjv: "For I know the thoughts that I think toward you, says the LORD, thoughts of peace and not of evil, to give you a future and a hope.",
},
>>>>>>> 6742220 (Your commit message here)
reference: "Jeremiah 29:11",
reflection: "Whatever this season holds, God's plans for you are good.",
applicablePhases: ['luteal'],
),
Scripture(
<<<<<<< HEAD
verse: "Do not be anxious about anything, but in every situation, by prayer and petition, with thanksgiving, present your requests to God.",
=======
verses: {
BibleTranslation.esv: "do not be anxious about anything, but in everything by prayer and supplication with thanksgiving let your requests be made known to God.",
BibleTranslation.niv: "Do not be anxious about anything, but in every situation, by prayer and petition, with thanksgiving, present your requests to God.",
},
>>>>>>> 6742220 (Your commit message here)
reference: "Philippians 4:6",
applicablePhases: ['luteal'],
),
Scripture(
<<<<<<< HEAD
verse: "Trust in the Lord with all your heart and lean not on your own understanding.",
reference: "Proverbs 3:5",
applicablePhases: ['luteal'],
),
Scripture(
verse: "The Lord is close to the brokenhearted and saves those who are crushed in spirit.",
reference: "Psalm 34:18",
applicablePhases: ['luteal'],
),
Scripture(
verse: "And the peace of God, which transcends all understanding, will guard your hearts and your minds in Christ Jesus.",
reference: "Philippians 4:7",
applicablePhases: ['luteal'],
),
Scripture(
verse: "Wait for the Lord; be strong and take heart and wait for the Lord.",
reference: "Psalm 27:14",
applicablePhases: ['luteal'],
),
=======
verses: {
BibleTranslation.esv: "Trust in the LORD with all your heart, and do not lean on your own understanding.",
BibleTranslation.niv: "Trust in the LORD with all your heart and lean not on your own understanding.",
},
reference: "Proverbs 3:5",
applicablePhases: ['luteal'],
),
>>>>>>> 6742220 (Your commit message here)
];
/// Scriptures for husbands
static const List<Scripture> husbandScriptures = [
Scripture(
<<<<<<< HEAD
verse: "Husbands, love your wives, just as Christ loved the church and gave himself up for her.",
=======
verses: {
BibleTranslation.esv: "Husbands, love your wives, as Christ loved the church and gave himself up for her.",
BibleTranslation.niv: "Husbands, love your wives, just as Christ loved the church and gave himself up for her.",
},
>>>>>>> 6742220 (Your commit message here)
reference: "Ephesians 5:25",
reflection: "Love sacrificially—putting her needs before your own.",
),
Scripture(
<<<<<<< HEAD
verse: "Husbands, in the same way be considerate as you live with your wives, and treat them with respect.",
reference: "1 Peter 3:7",
),
Scripture(
verse: "Two are better than one, because they have a good return for their labor.",
reference: "Ecclesiastes 4:9",
),
Scripture(
verse: "Be completely humble and gentle; be patient, bearing with one another in love.",
reference: "Ephesians 4:2",
),
Scripture(
verse: "Above all, love each other deeply, because love covers over a multitude of sins.",
reference: "1 Peter 4:8",
),
Scripture(
verse: "A husband should fulfill his duty to his wife.",
reference: "1 Corinthians 7:3",
),
Scripture(
verse: "He who finds a wife finds what is good and receives favor from the Lord.",
reference: "Proverbs 18:22",
),
=======
verses: {
BibleTranslation.esv: "Likewise, husbands, live with your wives in an understanding way, showing honor to the woman.",
BibleTranslation.niv: "Husbands, in the same way be considerate as you live with your wives, and treat them with respect.",
},
reference: "1 Peter 3:7",
),
>>>>>>> 6742220 (Your commit message here)
];
/// General womanhood scriptures
static const List<Scripture> womanhoodScriptures = [
Scripture(
<<<<<<< HEAD
verse: "Charm is deceptive, and beauty is fleeting; but a woman who fears the Lord is to be praised.",
reference: "Proverbs 31:30",
),
Scripture(
verse: "She opens her mouth with wisdom, and the teaching of kindness is on her tongue.",
reference: "Proverbs 31:26",
),
Scripture(
verse: "Your beauty should not come from outward adornment... Rather, it should be that of your inner self, the unfading beauty of a gentle and quiet spirit.",
reference: "1 Peter 3:3-4",
),
Scripture(
verse: "God is within her, she will not fall; God will help her at break of day.",
reference: "Psalm 46:5",
),
];
=======
verses: {
BibleTranslation.esv: "Charm is deceitful, and beauty is vain, but a woman who fears the LORD is to be praised.",
BibleTranslation.niv: "Charm is deceptive, and beauty is fleeting; but a woman who fears the LORD is to be praised.",
},
reference: "Proverbs 31:30",
),
Scripture(
verses: {
BibleTranslation.esv: "She opens her mouth with wisdom, and the teaching of kindness is on her tongue.",
BibleTranslation.niv: "She opens her mouth with wisdom, and the teaching of kindness is on her tongue.",
},
reference: "Proverbs 31:26",
),
];
/// Scriptures for specific needs (contextual)
static const Map<String, List<Scripture>> contextualScriptures = {
'pain': [
Scripture(
verses: {
BibleTranslation.esv: "The LORD is near to the brokenhearted and saves the crushed in spirit.",
BibleTranslation.niv: "The LORD is close to the brokenhearted and saves those who are crushed in spirit.",
},
reference: "Psalm 34:18",
reflection: "He sees your pain and draws near to you in your discomfort.",
),
Scripture(
verses: {
BibleTranslation.esv: "Cast your burden on the LORD, and he will sustain you.",
BibleTranslation.niv: "Cast your cares on the LORD and he will sustain you.",
},
reference: "Psalm 55:22",
),
],
'fatigue': [
Scripture(
verses: {
BibleTranslation.esv: "He gives power to the faint, and to him who has no might he increases strength.",
BibleTranslation.niv: "He gives strength to the weary and increases the power of the weak.",
},
reference: "Isaiah 40:29",
),
Scripture(
verses: {
BibleTranslation.esv: "My grace is sufficient for you, for my power is made perfect in weakness.",
BibleTranslation.niv: "My grace is sufficient for you, for my power is made perfect in weakness.",
},
reference: "2 Corinthians 12:9",
),
],
'anxiety': [
Scripture(
verses: {
BibleTranslation.esv: "When the cares of my heart are many, your consolations cheer my soul.",
BibleTranslation.niv: "When anxiety was great within me, your consolation brought me joy.",
},
reference: "Psalm 94:19",
),
Scripture(
verses: {
BibleTranslation.esv: "Peace I leave with you; my peace I give to you. Not as the world gives do I give to you. Let not your hearts be troubled, neither let them be afraid.",
BibleTranslation.niv: "Peace I leave with you; my peace I give to you. I do not give to you as the world gives. Do not let your hearts be troubled and do not be afraid.",
},
reference: "John 14:27",
),
],
'joy': [
Scripture(
verses: {
BibleTranslation.esv: "The LORD is my strength and my shield; in him my heart trusts, and I am helped; my heart exults, and with my song I give thanks to him.",
BibleTranslation.niv: "The LORD is my strength and my shield; my heart trusts in him, and he helps me. My heart leaps for joy, and with my song I praise him.",
},
reference: "Psalm 28:7",
),
],
};
/// Get recommended scripture based on entry
static Scripture? getRecommendedScripture(CycleEntry entry) {
if (entry.mood == MoodLevel.verySad || entry.mood == MoodLevel.sad || (entry.stressLevel != null && entry.stressLevel! > 3)) {
return contextualScriptures['anxiety']![DateTime.now().day % contextualScriptures['anxiety']!.length];
}
if ((entry.crampIntensity != null && entry.crampIntensity! >= 3) || entry.hasHeadache || entry.hasLowerBackPain) {
return contextualScriptures['pain']![DateTime.now().day % contextualScriptures['pain']!.length];
}
if (entry.hasFatigue || entry.hasInsomnia || (entry.energyLevel != null && entry.energyLevel! <= 2)) {
return contextualScriptures['fatigue']![DateTime.now().day % contextualScriptures['fatigue']!.length];
}
if (entry.mood == MoodLevel.veryHappy) {
return contextualScriptures['joy']![DateTime.now().day % contextualScriptures['joy']!.length];
}
return null;
}
>>>>>>> 6742220 (Your commit message here)
/// Get scripture for current phase
static Scripture getScriptureForPhase(String phase) {
final List<Scripture> scriptures;
switch (phase.toLowerCase()) {
case 'menstrual':
scriptures = menstrualScriptures;
break;
case 'follicular':
scriptures = follicularScriptures;
break;
case 'ovulation':
scriptures = ovulationScriptures;
break;
case 'luteal':
scriptures = lutealScriptures;
break;
default:
scriptures = [...menstrualScriptures, ...follicularScriptures, ...ovulationScriptures, ...lutealScriptures];
}
// Return a scripture based on the day of year for variety
final dayOfYear = DateTime.now().difference(DateTime(DateTime.now().year, 1, 1)).inDays;
return scriptures[dayOfYear % scriptures.length];
}
/// Get scripture for husband
static Scripture getHusbandScripture() {
final dayOfYear = DateTime.now().difference(DateTime(DateTime.now().year, 1, 1)).inDays;
return husbandScriptures[dayOfYear % husbandScriptures.length];
}
/// Get all scriptures
static List<Scripture> getAllScriptures() {
return [
...menstrualScriptures,
...follicularScriptures,
...ovulationScriptures,
...lutealScriptures,
...womanhoodScriptures,
];
}
}