//
//  AccessLevelView.swift
//  Lockdown
//
//  Created by Aliaksandr Dvoineu on 19.04.23.
//  Copyright © 2023 Confirmed Inc. All rights reserved.
//

import UIKit

final class AccessLevelView: UIView {
    
    // MARK: - Properties
    
    private lazy var containerView: UIView = {
        let view = UIView()
        return view
    }()
    
    lazy var accessLevelIv: UIImageView = {
        let image = UIImageView()
        image.contentMode = .scaleAspectFit
        image.layer.masksToBounds = true
        return image
    }()
    
    lazy var accessLevelName: UILabel = {
        let label = UILabel()
        label.textColor = .label
        label.font = fontBold11
        label.textAlignment = .center
        return label
    }()
    
    // MARK: - Initializer
    
    override init(frame: CGRect) {
        super.init(frame: frame)
        configureUI()
    }
    
    @available(*, unavailable)
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    // MARK: - Functions
    
    private func configureUI() {
        addSubview(containerView)
        containerView.anchors.edges.pin()
        
        containerView.addSubview(accessLevelIv)
        accessLevelIv.anchors.centerX.align()
        accessLevelIv.anchors.centerY.align()
        
        containerView.addSubview(accessLevelName)
        accessLevelName.anchors.centerX.align()
        accessLevelName.anchors.centerY.align()
    }
}

final class AccessLevelslView: UIView {
    
    // MARK: - Properties
    
    private lazy var containerView: UIView = {
        let view = UIView()
        return view
    }()
    
    private let basicView: AccessLevelView = {
        let view = AccessLevelView()
        view.accessLevelIv.image = UIImage(named: "basic_active")
        view.accessLevelName.text = "Basic"
        view.accessLevelName.textColor = .tunnelsBlue
        return view
    }()
    
    private let advancedView: AccessLevelView = {
        let view = AccessLevelView()
        view.accessLevelIv.image = UIImage(named: "anonymous_nonactive")
        view.accessLevelName.text = "Advanced"
        return view
    }()
    
    let anonymousView: AccessLevelView = {
        let view = AccessLevelView()
        view.accessLevelIv.image = UIImage(named: "anonymous_nonactive")
        view.accessLevelName.text = "Anonymous"
        return view
    }()
    
    private let universalView: AccessLevelView = {
        let view = AccessLevelView()
        view.accessLevelIv.image = UIImage(named: "universal_nonactive")
        view.accessLevelName.text = "Universal"
        return view
    }()
    
    private lazy var stackView: UIStackView = {
        let stackView  = UIStackView()
        stackView.addArrangedSubview(basicView)
        stackView.addArrangedSubview(advancedView)
        stackView.addArrangedSubview(anonymousView)
        stackView.addArrangedSubview(universalView)
        stackView.axis = .horizontal
        stackView.distribution = .fillEqually
        stackView.alignment = .center
        stackView.spacing = 0
        return stackView
    }()
    
    // MARK: - Initializer
    
    override init(frame: CGRect) {
        super.init(frame: frame)
        configureUI()
    }
    
    @available(*, unavailable)
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    // MARK: - Functions
    
    private func configureUI() {
        
        addSubview(stackView)
        stackView.anchors.edges.pin()
        
        stackView.insertSubview(advancedView, belowSubview: basicView)
        stackView.insertSubview(anonymousView, belowSubview: advancedView)
        stackView.insertSubview(universalView, belowSubview: anonymousView)
    }
}