import AnalyticsClient
import ComposableArchitecture

extension ReplaceSongArt {
    struct Analytics: AnalyticsReducer {
        var source: String = "replace_cover_art"

        func analytics(before: State, after _: State, action: Action) -> Effect<Action> {
            switch action {
            case .setPhotoPickerItem:
                track(
                    Event(
                        category: .clipDetails,
                        actionName: .imageImported,
                        actionType: .tap,
                        elementType: .image,
                        elementId: before.clip.id.remoteId
                    )
                )

            case .setVideoPickerItem:
                track(
                    Event(
                        category: .clipDetails,
                        actionName: .videoImported,
                        actionType: .tap,
                        elementType: .video,
                        elementId: before.clip.id.remoteId
                    )
                )

            case .selectImage:
                track(
                    Event(
                        category: .clipDetails,
                        actionName: .imageCaptured,
                        actionType: .tap,
                        elementType: .image,
                        elementId: before.clip.id.remoteId
                    )
                )

            case .selectVideo:
                track(
                    Event(
                        category: .clipDetails,
                        actionName: .videoCaptured,
                        actionType: .tap,
                        elementType: .video,
                        elementId: before.clip.id.remoteId
                    )
                )

            default:
                break
            }
            return .none
        }
    }
}
