package com.fs.company.service;

import java.util.List;

import com.fs.common.core.domain.R;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fs.company.domain.CompanyDomain;
import com.fs.company.param.CompanyDomainParam;
import com.fs.company.vo.CompanyDomainExportTemplateVo;
import com.fs.company.vo.CompanyDomainVo;

/**
 * 域名管路Service接口
 *
 * @author fs
 * @date 2025-06-16
 */
public interface ICompanyDomainService extends IService<CompanyDomain> {
    /**
     * 查询域名管路
     *
     * @param id 域名管路主键
     * @return 域名管路
     */
    CompanyDomain selectCompanyDomainById(Long id);

    /**
     * 查询域名管路列表
     *
     * @param companyDomain 域名管路
     * @return 域名管路集合
     */
    List<CompanyDomainVo> selectCompanyDomainList(CompanyDomainParam companyDomain);

    /**
     * 新增域名管路
     *
     * @param companyDomain 域名管路
     * @return 结果
     */
    int insertCompanyDomain(CompanyDomain companyDomain);

    /**
     * 修改域名管路
     *
     * @param companyDomain 域名管路
     * @return 结果
     */
    int updateCompanyDomain(CompanyDomain companyDomain);

    /**
     * 批量删除域名管路
     *
     * @param ids 需要删除的域名管路主键集合
     * @return 结果
     */
    int deleteCompanyDomainByIds(Long[] ids);

    /**
     * 删除域名管路信息
     *
     * @param id 域名管路主键
     * @return 结果
     */
    int deleteCompanyDomainById(Long id);

    /**
     * 域名批量绑定接口
     *
     * @param param 接收参数
     * @return R
     **/
    R domainBatchBinding(CompanyDomainParam param);

    /**
     * 域名批量导入
     *
     * @param param      参数
     * @param domainList 解析数组
     * @return R
     **/
    R importDomainData(CompanyDomainParam param, List<CompanyDomainExportTemplateVo> domainList);
}
