feat: enhance models and services with Sendable conformance, add preview data for debugging

This commit is contained in:
2026-03-14 07:18:35 +07:00
parent a4b475b13f
commit 758f5ec05f
17 changed files with 851 additions and 198 deletions
+39 -34
View File
@@ -32,9 +32,10 @@
AA000001000023 /* ChangePasswordView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA000002000023 /* ChangePasswordView.swift */; };
AA000001000024 /* SessionsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA000002000024 /* SessionsView.swift */; };
AA000001000025 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AA000002000025 /* Assets.xcassets */; };
AA000001000026 /* PreviewData.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA000002000026A /* PreviewData.swift */; };
AA000001000030 /* MaydayLiveActivityBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA000002000030 /* MaydayLiveActivityBundle.swift */; };
AA000001000031 /* MaydayLiveActivityLiveActivity.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA000002000031 /* MaydayLiveActivityLiveActivity.swift */; };
AA000001000032 /* AlertAttributes.swift in Sources (Extension) */ = {isa = PBXBuildFile; fileRef = AA000002000008 /* AlertAttributes.swift */; };
AA000001000032 /* AlertAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA000002000008 /* AlertAttributes.swift */; };
AA000007000001 /* MaydayLiveActivity.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = AA000008000001 /* MaydayLiveActivity.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
/* End PBXBuildFile section */
@@ -89,22 +90,23 @@
AA000002000024 /* SessionsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionsView.swift; sourceTree = "<group>"; };
AA000002000025 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
AA000002000026 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
AA000002000026A /* PreviewData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreviewData.swift; sourceTree = "<group>"; };
AA000002000030 /* MaydayLiveActivityBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MaydayLiveActivityBundle.swift; sourceTree = "<group>"; };
AA000002000031 /* MaydayLiveActivityLiveActivity.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MaydayLiveActivityLiveActivity.swift; sourceTree = "<group>"; };
AA000002000033 /* Info.plist (Extension) */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
AA000002000033 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
AA000008000001 /* MaydayLiveActivity.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = MaydayLiveActivity.appex; sourceTree = BUILT_PRODUCTS_DIR; };
AA000009000001 /* Mayday.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Mayday.app; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
AA000010000001 /* Frameworks (App) */ = {
AA000010000001 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
AA000010000002 /* Frameworks (Extension) */ = {
AA000010000002 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -114,7 +116,7 @@
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
AA000011000001 /* Root */ = {
AA000011000001 = {
isa = PBXGroup;
children = (
AA000011000002 /* Mayday */,
@@ -123,15 +125,6 @@
);
sourceTree = "<group>";
};
AA000011000099 /* Products */ = {
isa = PBXGroup;
children = (
AA000009000001 /* Mayday.app */,
AA000008000001 /* MaydayLiveActivity.appex */,
);
name = Products;
sourceTree = "<group>";
};
AA000011000002 /* Mayday */ = {
isa = PBXGroup;
children = (
@@ -168,6 +161,7 @@
AA000002000011 /* AuthService.swift */,
AA000002000012 /* NotificationsAPIService.swift */,
AA000002000013 /* PushNotificationService.swift */,
AA000002000026A /* PreviewData.swift */,
);
path = Services;
sourceTree = "<group>";
@@ -226,11 +220,20 @@
children = (
AA000002000030 /* MaydayLiveActivityBundle.swift */,
AA000002000031 /* MaydayLiveActivityLiveActivity.swift */,
AA000002000033 /* Info.plist (Extension) */,
AA000002000033 /* Info.plist */,
);
path = MaydayLiveActivity;
sourceTree = "<group>";
};
AA000011000099 /* Products */ = {
isa = PBXGroup;
children = (
AA000009000001 /* Mayday.app */,
AA000008000001 /* MaydayLiveActivity.appex */,
);
name = Products;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
@@ -297,7 +300,7 @@
en,
Base,
);
mainGroup = AA000011000001 /* Root */;
mainGroup = AA000011000001;
productRefGroup = AA000011000099 /* Products */;
projectDirPath = "";
projectRoot = "";
@@ -309,7 +312,7 @@
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
AA000014000001 /* Resources (App) */ = {
AA000014000001 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -317,7 +320,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
AA000014000002 /* Resources (Extension) */ = {
AA000014000002 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -327,7 +330,7 @@
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
AA000013000001 /* Sources (App) */ = {
AA000013000001 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -355,16 +358,17 @@
AA000001000022 /* SettingsView.swift in Sources */,
AA000001000023 /* ChangePasswordView.swift in Sources */,
AA000001000024 /* SessionsView.swift in Sources */,
AA000001000026 /* PreviewData.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
AA000013000002 /* Sources (Extension) */ = {
AA000013000002 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
AA000001000030 /* MaydayLiveActivityBundle.swift in Sources */,
AA000001000031 /* MaydayLiveActivityLiveActivity.swift in Sources */,
AA000001000032 /* AlertAttributes.swift in Sources (Extension) */,
AA000001000032 /* AlertAttributes.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -379,23 +383,24 @@
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
AA000016000001 /* Debug (App) */ = {
AA000016000001 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = "";
DEVELOPMENT_TEAM = WA8SWY233K;
GENERATE_INFOPLIST_FILE = NO;
INFOPLIST_FILE = Mayday/Info.plist;
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities";
IPHONEOS_DEPLOYMENT_TARGET = 17.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = "com.robonen.mayday";
PRODUCT_BUNDLE_IDENTIFIER = com.robonen.mayday;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 6.0;
@@ -403,23 +408,24 @@
};
name = Debug;
};
AA000016000002 /* Release (App) */ = {
AA000016000002 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = "";
DEVELOPMENT_TEAM = WA8SWY233K;
GENERATE_INFOPLIST_FILE = NO;
INFOPLIST_FILE = Mayday/Info.plist;
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities";
IPHONEOS_DEPLOYMENT_TARGET = 17.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = "com.robonen.mayday";
PRODUCT_BUNDLE_IDENTIFIER = com.robonen.mayday;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 6.0;
@@ -427,7 +433,7 @@
};
name = Release;
};
AA000016000003 /* Debug (Extension) */ = {
AA000016000003 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
@@ -442,7 +448,7 @@
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = "com.robonen.mayday.liveactivity";
PRODUCT_BUNDLE_IDENTIFIER = com.robonen.mayday.liveactivity;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
SWIFT_EMIT_LOC_STRINGS = YES;
@@ -451,7 +457,7 @@
};
name = Debug;
};
AA000016000004 /* Release (Extension) */ = {
AA000016000004 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
@@ -466,7 +472,7 @@
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = "com.robonen.mayday.liveactivity";
PRODUCT_BUNDLE_IDENTIFIER = com.robonen.mayday.liveactivity;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
SWIFT_EMIT_LOC_STRINGS = YES;
@@ -475,7 +481,7 @@
};
name = Release;
};
AA000016000005 /* Debug (Project) */ = {
AA000016000005 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -537,7 +543,7 @@
};
name = Debug;
};
AA000016000006 /* Release (Project) */ = {
AA000016000006 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -623,7 +629,6 @@
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = AA000004000001 /* Project object */;
}