//
//  OrderGiftStepperView.swift
//  suixinkan
//

import SnapKit
import UIKit

/// 修图/视频赠送步进控件，+/- 均触发赠送弹窗（对齐 Android）。
final class OrderGiftStepperView: UIView {

    var onMinusTap: (() -> Void)?
    var onPlusTap: (() -> Void)?

    private let minusButton = UIButton(type: .system)
    private let plusButton = UIButton(type: .system)
    private let valueLabel = UILabel()

    override init(frame: CGRect) {
        super.init(frame: frame)
        [minusButton, plusButton].forEach { button in
            button.layer.cornerRadius = 12
            button.layer.borderWidth = 1
            button.layer.borderColor = OrderTokens.giftBorder.cgColor
            button.titleLabel?.font = .systemFont(ofSize: 16, weight: .bold)
            button.setTitleColor(OrderTokens.giftBorder, for: .normal)
            button.snp.makeConstraints { make in
                make.width.height.equalTo(24)
            }
        }
        minusButton.setTitle("-", for: .normal)
        plusButton.setTitle("+", for: .normal)
        minusButton.addTarget(self, action: #selector(minusTapped), for: .touchUpInside)
        plusButton.addTarget(self, action: #selector(plusTapped), for: .touchUpInside)

        valueLabel.font = .systemFont(ofSize: 14, weight: .medium)
        valueLabel.textColor = OrderTokens.valueBlack
        valueLabel.textAlignment = .center

        let stack = UIStackView(arrangedSubviews: [minusButton, valueLabel, plusButton])
        stack.axis = .horizontal
        stack.spacing = AppSpacing.xs
        stack.alignment = .center
        addSubview(stack)
        stack.snp.makeConstraints { make in
            make.edges.equalToSuperview()
        }
    }

    @available(*, unavailable)
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    func apply(text: String) {
        valueLabel.text = text
    }

    @objc private func minusTapped() { onMinusTap?() }
    @objc private func plusTapped() { onPlusTap?() }
}
