Add TravelAlbum, ProfileSpace, and wired camera transfer modules.

Introduce travel album entry with Sony PTP tethering pipeline, profile space settings page, home routing updates, Launch Screen storyboard, and related tests/docs.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-30 09:41:05 +08:00
parent 5692134efc
commit d2fe5d71e4
48 changed files with 6477 additions and 11 deletions

View File

@ -8,6 +8,22 @@
import Foundation
import Combine
@MainActor
/// API 便 ViewModel 使
protocol ProfileSpaceServing {
///
func profileSpaceInfo(scenicId: Int) async throws -> ProfileSpaceInfoResponse
///
func updateProfileSpaceInfo(_ request: UpdateProfileSpaceRequest) async throws
///
func updateUserInfo(nickname: String?, password: String?, avatar: String?) async throws
/// URL
func updateUserAvatarURL(_ fileURL: String) async throws
}
@MainActor
/// API
final class ProfileAPI {
@ -71,6 +87,28 @@ final class ProfileAPI {
)
}
///
func profileSpaceInfo(scenicId: Int) async throws -> ProfileSpaceInfoResponse {
try await client.send(
APIRequest(
method: .get,
path: "/api/yf-handset-app/photog/profile/info",
queryItems: [URLQueryItem(name: "scenic_id", value: "\(scenicId)")]
)
)
}
///
func updateProfileSpaceInfo(_ request: UpdateProfileSpaceRequest) async throws {
let _: EmptyPayload = try await client.send(
APIRequest(
method: .post,
path: "/api/yf-handset-app/photog/profile/info-update",
body: request
)
)
}
///
func realNameSmsVerifyCode() async throws {
let _: EmptyPayload = try await client.send(
@ -95,3 +133,4 @@ final class ProfileAPI {
}
extension ProfileAPI: UserProfileServing {}
extension ProfileAPI: ProfileSpaceServing {}