import Combine
import Dependencies
import PhotosUI
import UIKit

public struct CameraClient {
    public var requestAuthorization: () async -> Bool
    public var authorizationStatus: () -> AVAuthorizationStatus
}

extension CameraClient: DependencyKey {
    public static let liveValue = Self(
        requestAuthorization: {
            await AVCaptureDevice.requestAccess(for: .video)
        },
        authorizationStatus: {
            AVCaptureDevice.authorizationStatus(for: .video)
        }
    )
}
