//
//  AdvancedPlansViews.swift
//  LockdownSandbox
//
//  Created by Алишер Ахметжанов on 29.04.2023.
//

import UIKit

final class AdvancedPlansViews: UIView {
    
    //MARK: Properties
    
    var isSelected: Bool = false
    
    lazy var backgroundView: UIView = {
        let view = UIView()
        view.isUserInteractionEnabled = true
        view.layer.cornerRadius = 8
        view.layer.borderWidth = 2
        view.layer.borderColor = isSelected ? UIColor.white.cgColor : UIColor.borderGray.cgColor

        return view
    }()
    
    lazy var iconImageView: UIImageView = {
        let image = UIImageView()
        image.contentMode = .scaleAspectFit
        image.image = isSelected ? UIImage(named: "fill-1") : UIImage(named: "grey-ellipse-1")
        image.layer.masksToBounds = true
        return image
    }()
    
    lazy var title: UILabel = {
        let label = UILabel()
        label.textColor = .white
        label.font = fontMedium17
        label.numberOfLines = 0
        label.textAlignment = .left
        return label
    }()
    
    lazy var detailTitle: UILabel = {
        let label = UILabel()
        label.textAlignment = .left
        label.textColor = .white
        label.font = fontBold17
        return label
    }()
    
    lazy var detailTitle2: UILabel = {
        let label = UILabel()
        label.textColor = .white
        label.font = fontMedium13
        label.numberOfLines = 0
        label.textAlignment = .left
        
        return label
    }()
    
    lazy var discountImageView: UIImageView = {
        let imageView = UIImageView()
        imageView.contentMode = .scaleAspectFit
        return imageView
        }()
    
    private lazy var titleStackView: UIStackView = {
        let stackView  = UIStackView()
        stackView.addArrangedSubview(title)
        stackView.addArrangedSubview(iconImageView)
        stackView.axis = .horizontal
        stackView.distribution = .fillProportionally
        stackView.alignment = .center
        stackView.spacing = 0
        stackView.anchors.width.equal(130)

        return stackView
    }()
    
    private lazy var detailsStackView: UIStackView = {
        let stackView  = UIStackView()
        stackView.addArrangedSubview(detailTitle)
        stackView.addArrangedSubview(detailTitle2)
        stackView.axis = .vertical
        stackView.distribution = .fillProportionally
        stackView.alignment = .leading
        stackView.spacing = 2
        return stackView
    }()
    
    private lazy var stackView: UIStackView = {
        let stackView  = UIStackView()
        stackView.addArrangedSubview(titleStackView)
        stackView.addArrangedSubview(detailsStackView)
        stackView.axis = .vertical
        stackView.distribution = .fillEqually
        stackView.alignment = .leading
        stackView.spacing = 8
        stackView.anchors.height.equal(74)
        return stackView
    }()
    
    //MARK: Initialization
    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(backgroundView)
        backgroundView.anchors.edges.pin()
        
        backgroundView.addSubview(stackView)
        stackView.anchors.top.marginsPin(inset: 16)
        stackView.anchors.bottom.marginsPin(inset: 16)
        stackView.anchors.leading.marginsPin(inset: 16)
        stackView.anchors.trailing.pin()
        
        addSubview(discountImageView)
        discountImageView.anchors.top.spacing(-14, to: backgroundView.anchors.bottom)
        discountImageView.anchors.centerX.equal(backgroundView.anchors.centerX)
    }
}
