[iOS] Video Upload

import SwiftUI
import PhotosUI

struct ContentView: View {
    @State private var selectedItem: PhotosPickerItem?
    @State private var selectedImage: UIImage?
    @State private var selectedVideoURL: URL?

    var body: some View {
        VStack(spacing: 20) {

            // 選択 UI
            PhotosPicker(selection: $selectedItem,
                         matching: .any(of: [.images, .videos])) {
                Text("画像・動画を選択")
                    .padding()
                    .background(Color.blue)
                    .foregroundColor(.white)
                    .cornerRadius(8)
            }

            // 選択した画像があれば表示
            if let image = selectedImage {
                Image(uiImage: image)
                    .resizable()
                    .scaledToFit()
                    .frame(height: 200)
            }

            // 選択した動画の URL を表示
            if let url = selectedVideoURL {
                Text("動画URL: \(url.lastPathComponent)")
                    .font(.caption)
            }

            // アップロードボタン
            Button("アップロード") {
                upload()
            }
            .padding()
            .background(Color.green)
            .foregroundColor(.white)
            .cornerRadius(8)
        }
        .onChange(of: selectedItem) { newValue in
            Task {
                await loadSelectedItem()
            }
        }
        .padding()
    }

    // 画像 / 動画を読み込む
    func loadSelectedItem() async {
        guard let item = selectedItem else { return }

        // 画像読み込み
        if let data = try? await item.loadTransferable(type: Data.self),
           let image = UIImage(data: data) {
            self.selectedImage = image
            self.selectedVideoURL = nil
            return
        }

        // 動画読み込み
        if let url = try? await item.loadTransferable(type: URL.self) {
            self.selectedVideoURL = url
            self.selectedImage = nil
            return
        }
    }

    // アップロード処理
    func upload() {
        if let image = selectedImage {
            print("📤 画像アップロード: \(image)")
        }

        if let url = selectedVideoURL {
            print("📤 動画アップロード: \(url)")
        }
    }
}