//
//  BlazeReactVideosPlayerStyle.swift
//  Pods
//
//  Created by Reuven Levitsky on 18/05/2025.
//

struct BlazeReactVideosPlayerStyle: Codable {
    var headingText: BlazeReactVideosPlayerHeadingTextStyle?
    var buttons: BlazeReactVideosPlayerButtonsStyle?
    var backgroundColor: String?
    var cta: BlazeReactVideosPlayerCtaStyle?
    let seekBar: BlazeReactVideosPlayerSeekBarStyle?
}

struct BlazeReactVideosPlayerHeadingTextStyle: Codable {
    var textSize: CGFloat? // Only Android
    var font: BlazeReactTitleFont?
    var textColor: String?
    var contentSource: ContentSource?
    var isVisible: Bool?
    var numberOfLines: Int?
    
    enum ContentSource: String, Codable {
        case title = "Title"
    }
}

struct BlazeReactVideosPlayerButtonsStyle: Codable {
    var mute: BlazeReactPlayerButtonStyle?
    var exit: BlazeReactPlayerButtonStyle?
    var share: BlazeReactPlayerButtonStyle?
    var like: BlazeReactPlayerButtonStyle?
    var playPause: BlazeReactPlayerButtonStyle?
    var previous: BlazeReactPlayerButtonStyle?
    var next: BlazeReactPlayerButtonStyle?
    var captions: BlazeReactPlayerButtonStyle?
    var forceRotation: BlazeReactPlayerButtonStyle?
    var casting: BlazeReactPlayerButtonStyle?
    var pictureInPicture: BlazeReactPlayerButtonStyle?
    var seekForward: BlazeReactPlayerButtonStyle?
    var seekBackward: BlazeReactPlayerButtonStyle?
}

struct BlazeReactVideosPlayerCtaStyle: Codable {
    var cornerRadius: CGFloat?
    var width: CGFloat?
    var height: CGFloat?
    var font: BlazeReactTitleFont?
    var textSize: CGFloat? // Only for Android
    var icon: BlazeReactVideosCtaIcon?
    var isVisible: Bool?
}

struct BlazeReactVideosPlayerSeekBarStyle: Codable {
    let isVisible: Bool?
    let playingState: BlazeReactSeekBarStyle?
    let pausedState: BlazeReactSeekBarStyle?
    let horizontalSpacing: CGFloat?
    let bottomSpacing: CGFloat?
}

struct BlazeReactVideosCtaIcon: Codable {
    var iconImage: BlazeReactImage?
}
