//
//  YHWorkExperienceListViewController.swift
//  galaxy
//
//  Created by EDY on 2024/2/6.
//  Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//

import UIKit

class YHWorkExperienceListViewController: YHBaseViewController {
    var bottomView: UIView!
    var bottomButton: UIButton!
    var tableView: UITableView!
    var dataSource: [YHWorkItemListModel]?
    var viewModel: YHWorkItemListViewModel?
    var isMore: Bool = false
    
    override func viewDidLoad() {
        super.viewDidLoad()
        viewModel = YHWorkItemListViewModel()
        gk_navTitle = "工作经验信息填写"
        setView()
        getData()
        // Do any additional setup after loading the view.
    }
    
    func getData() {
        viewModel?.requestWorkList("133969", callBackBlock: {[weak self] success, error in
            guard let self = self else { return }
            self.dataSource = success
            self.tableView.reloadData()
        })
    }
    
    func updateDataSource() {
       
        self.tableView.reloadData()
    }
    
    func setView() {
        tableView = {
            let tableView = UITableView(frame:.zero, style:.plain)
            if #available(iOS 11.0, *) {
                tableView.contentInsetAdjustmentBehavior = .never
            }
            tableView.backgroundColor = .clear
            tableView.separatorStyle = .none
            tableView.delegate = self
            tableView.dataSource = self
            tableView.register(cellWithClass: YHWorkExperienceListTableViewCell.self)
            return tableView
        }()
        view.addSubview(tableView)
        tableView.snp.makeConstraints { make in
            make.top.equalTo(k_Height_NavigationtBarAndStatuBar)
            make.bottom.equalTo(-k_Height_safeAreaInsetsBottom() - 64)
            make.left.right.bottom.equalTo(view)
        }
        
        bottomView = {
            let bottom = UIView()
            bottom.backgroundColor = .white
            return bottom
        }()
        view.addSubview(bottomView)
        bottomView.snp.makeConstraints { make in
            make.left.right.bottom.equalToSuperview()
            make.height.equalTo(k_Height_safeAreaInsetsBottom() + 64)
        }
        
        bottomButton = {
            let button = UIButton(type: .custom)
            button.backgroundColor =  UIColor(hex:0x2274ee)
            button.titleLabel?.font = kBoldFont(size: 16)
            button.contentHorizontalAlignment = .center
            button.setTitle("提交", for: .normal)
            button.setTitleColor( UIColor(hex:0xffffff), for: .normal)
            button.layer.cornerRadius = 6
            button.addTarget(self, action: #selector(submit), for: .touchUpInside)
            return button
        }()
        bottomView.addSubview(bottomButton)
        bottomButton.snp.makeConstraints { make in
            make.right.equalTo(-16)
            make.top.equalTo(8)
            make.height.equalTo(48)
            make.left.equalTo(16)
        }
    }
    
    @objc func submit() {
        let vc = YHWorkExperienceViewController()
        self.navigationController?.pushViewController(vc, animated: true)
    }
}

extension YHWorkExperienceListViewController: UITableViewDelegate, UITableViewDataSource {
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 1
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withClass: YHWorkExperienceListTableViewCell.self)
        cell.dataSource = dataSource
        if isMore {
            cell.more()
        } else {
            cell.cannal()
        }
        cell.clickBlock = {[weak self] model in
            guard let self = self else { return }
            let vc = YHWorkExperienceViewController()
            vc.workExperienceID = "\(model.id ?? 0)"
            self.navigationController?.pushViewController(vc, animated: true)
        }
        cell.deleteBlock = {[weak self] model in
            guard let self = self else { return }
            self.viewModel?.requestDeleteWorkExperience("\(model.id ?? 0)", callBackBlock: {[weak self] success, error in
                guard let self = self else { return }
                self.getData()
            })
        }
        cell.isMoreBlock = {[weak self] isMore in
            guard let self = self else { return }
            self.isMore = isMore
        }
        cell.newWorkBlock = {[weak self] in
            guard let self = self else { return }
            let vc = YHWorkExperienceViewController()
            self.navigationController?.pushViewController(vc, animated: true)
        }
        return cell
    }
    
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        let number = dataSource?.count ?? 0
        if number == 0 {
            return CGFloat(16 + 216)
        } else {
            return CGFloat(16 + 154 + 76 * number)
        }
    }
}

