//
//  TSTableView.swift
//  TSLiveWallpaper
//
//  Created by 100Years on 2025/1/4.
//



class TSSimpleTableView : NSObject{

    lazy var tableView:UITableView = {
        let tableView = UITableView()
        tableView.initBaseTableView(reuseClass: reuseClass, isUseMJRefresh: false, delegate: self)
        return tableView
    }()
    
    var reuseClass:[String] = [] {
        didSet{
            tableView.registerCellClass(cellIds: reuseClass)
        }
    }
    
    var dataArray:[TSBasicSectionModel] = [TSBasicSectionModel](){
        didSet{
            tableView.reloadData()
        }
    }

}


extension TSSimpleTableView : UITableViewDataSource, UITableViewDelegate {
    
    func numberOfSections(in tableView: UITableView) -> Int {
        return dataArray.count
    }
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        if let sectionModel = dataArray.safeObj(At: section){
            return sectionModel.itemsArray.count
        }
        return 0
    }
    
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        if let sectionModel = dataArray.safeObj(At: indexPath.section),let itemModel = sectionModel.itemsArray.safeObj(At: indexPath.row){
            return itemModel.height
        }
        return 0
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "TSMineCell")!
        
        if let cell = cell as? TSSimpleTableViewCell {
            if let sectionModel = dataArray.safeObj(At: indexPath.section),let itemModel = sectionModel.itemsArray.safeObj(At: indexPath.row){
                cell.itemModel = itemModel
            }
        }
        
        return cell
    }
    
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        if let sectionModel = dataArray.safeObj(At: indexPath.section),let itemModel = sectionModel.itemsArray.safeObj(At: indexPath.row){
            itemModel.tapBlock?(itemModel,indexPath.row,nil)
        }
    }
}


class TSSimpleTableViewCell: TSBaseTabViewCell {
    var itemModel:TSBasicItemModel = TSBasicItemModel()
 
}
