package com.cool.store.vo.point;

import com.cool.store.entity.PointDetailInfoDO;
import com.cool.store.entity.PointInfoDO;
import com.cool.store.enums.point.PointStatusEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;

@Data
public class PointDetailVO {

    @ApiModelProperty("店铺id")
    private Long pointId;

    @ApiModelProperty("店铺id")
    private Long shopId;

    @ApiModelProperty("铺位名称")
    private String pointName;

    @ApiModelProperty("铺位编号")
    private String pointCode;

    @ApiModelProperty("所属大区")
    private Long regionId;

    @ApiModelProperty("所属大区")
    private String regionNodeName;

    @ApiModelProperty("店铺来源：1、鲜丰选址人员寻铺 2、加盟商自采")
    private Integer pointSource;

    @ApiModelProperty("经度")
    private String longitude;

    @ApiModelProperty("纬度")
    private String latitude;

    @ApiModelProperty("详细地址")
    private String address;

    @ApiModelProperty("铺位状态 1.采集中、2.已评估、3.待审核、5.已审核、6.已签约、7.已失效")
    private Integer pointStatus;

    @ApiModelProperty("选择状态0.未选择, 1.已被选择")
    private Integer selectStatus;

    @ApiModelProperty("扩展经理名称")
    private String developmentManagerUserName;

    @ApiModelProperty("扩展经理名称")
    private String developmentManagerUserId;

    @ApiModelProperty("拓展时间")
    private Date developmentTime;

    @ApiModelProperty("铺位得分")
    private Integer pointScore;

    @ApiModelProperty("经营状况 1营业中 2空铺")
    private Integer businessStatus;

    @ApiModelProperty("09:00-10:00人流量")
    private Integer nineFlowRate;

    @ApiModelProperty("10:00-11:00人流量")
    private Integer tenFlowRate;

    @ApiModelProperty("18:00-19:00人流量")
    private Integer eighteenFlowRate;

    @ApiModelProperty("19:00-20:00人流量")
    private Integer nineteenFlowRate;

    @ApiModelProperty("店铺方位 1.主要动线  2.次要动线")
    private Integer pointDirection;

    @ApiModelProperty("立地条件0单门面, 1双门面, 2多门面, 3转角")
    private Integer siteConditions;

    @ApiModelProperty("使用面积(一楼)")
    private String pointArea;

    @ApiModelProperty("门店内宽")
    private String storeWidth;

    @ApiModelProperty("房东姓名")
    private String landlordUsername;

    @ApiModelProperty("房东电话")
    private String landlordMobile;

    @ApiModelProperty("支付方式 1.月付 2.季付 3.半年付 4.年付")
    private Integer paymentMethod;

    @ApiModelProperty("物业状态 1.原始房东 2.二房东 3.三房东 4.招投标性质")
    private Integer propertyStatus;

    @ApiModelProperty("转让费")
    private String transferFee;

    @ApiModelProperty("覆盖社区 1.800户以下 2.800-1200户 3.1200-2000户 4.2000户以上")
    private Integer coverCommunity;

    @ApiModelProperty("消费能力 1.高端 2.中高端 3.中端 4.低端")
    private Integer consumerAbility;

    @ApiModelProperty("人流测算 1.>400人/时以上, 2.300～400人/时, 3.200～300人/时, 4.100～200人/时")
    private Integer flowRateCalculate;

    @ApiModelProperty("聚客点农贸市场 1.是 2.否")
    private Integer gatherGuestFarmerMarket;

    @ApiModelProperty("聚客点医院 1.甲等医院  2.市级医院  3.县区级医院  4.无医院")
    private Integer gatherGuestHospital;

    @ApiModelProperty("聚客点学校 1.幼儿园/小学 2.大学/学院 3.初中/高中 4.无学校")
    private Integer gatherGuestSchool;

    @ApiModelProperty("门店人流动向 1.主要流动路线 2.次要流动路线")
    private Integer storeFlowTrend;

    @ApiModelProperty("周边100米内餐饮 1.餐饮连锁店或6家以上餐饮店 2.普通餐饮店 3.无餐饮店")
    private Integer nearRepast;

    @ApiModelProperty("周边100米内小业态邻居 1.小业态品牌店3家以上 2.小业态普通店3家以上 3.普通小业态店3家以下 4.无小业态店")
    private Integer nearNeighbor;

    @ApiModelProperty("周边100米内竞争对手 1.品牌水果店2家以上 2.品牌水果店1家及以上 3.夫妻水果店1家及以上 4.无水果店")
    private Integer nearCompete;

    @ApiModelProperty("周边100米内业态经营情况 1.运营状况良好 2.运营状况一般 3.运营状况差")
    private Integer nearBusinessCondition;

    @ApiModelProperty("所处位置 1.十字路口 2.居民生活中心 3.社区出入口")
    private Integer intendPosition;

    @ApiModelProperty("绿化带 1.门口无绿化带阻挡 2.门口有绿化带阻挡")
    private Integer greenBelt;

    @ApiModelProperty("门店观瞻 1.观赡非常好 2.观赡一般 3.观赡差")
    private Integer storeOutlook;

    @ApiModelProperty("门店来客便利性 1.门口5米有人行横道 2.门口15米有人行横道 3.无人行横道")
    private Integer guestConvenience;

    @ApiModelProperty("意向门店开间尺寸 1.转角 2.12米以上 3.8-12米 4.4-8米 5.4米以下")
    private Integer wantShopSize;

    @ApiModelProperty("竞争对手性质 1.连锁店 2.强势单店 3.经营散户 4.小型摊贩")
    private Integer competeType;

    @ApiModelProperty("竞争对手经营能力 1.非常好 2.好 3.一般 4.差")
    private Integer competeBusinessCapacity;

    @ApiModelProperty("投资总额")
    private String investAmount;

    @ApiModelProperty("预估日商")
    private String dayTrader;

    @ApiModelProperty("理论毛利率")
    private String profitRate;

    @ApiModelProperty("门店月毛利率")
    private String monthProfitRate;

    @ApiModelProperty("品牌使用费率")
    private String brandUseRate;

    @ApiModelProperty("品牌使用费")
    private String brandUseFee;

    @ApiModelProperty("基本人工费用")
    private String staffFee;

    @ApiModelProperty("店长数量")
    private Integer shopManagerNum;

    @ApiModelProperty("店长基本工资")
    private Integer shopManagerFee;

    @ApiModelProperty("店员数量")
    private Integer clerkNum;

    @ApiModelProperty("店员基本工资")
    private Integer clerkFee;

    @ApiModelProperty("奖金分红")
    private String bonus;

    @ApiModelProperty("门店月房租")
    private String monthRent;

    @ApiModelProperty("水电物业及其他")
    private String otherFee;

    @ApiModelProperty("净利润")
    private String netProfit;

    @ApiModelProperty("月投资回报率")
    private String monthRateReturn;

    @ApiModelProperty("拓展专员签名")
    private String developmentManagerSign;

    @ApiModelProperty("拓展专员签字日期")
    private Date developmentManagerSignTime;

    @ApiModelProperty("运营人员签名")
    private String operationUserSign;

    @ApiModelProperty("运营人员签名日期")
    private Date operationUserSignTime;

    @ApiModelProperty("加盟商签名")
    private String lineSign;

    @ApiModelProperty("加盟商签名日期")
    private Date lineSignTime;

    @ApiModelProperty("市场容量评估分数")
    private Integer marketSizeScore;

    @ApiModelProperty("商圈氛围评估分数")
    private Integer shopAreaScore;

    @ApiModelProperty("便利性评估分数")
    private Integer convenientScore;

    @ApiModelProperty("门店属性与竞争环境评估分数")
    private Integer environmentScore;

    @ApiModelProperty("租赁合同")
    private String rentContract;

    @ApiModelProperty("高德地图评估报告")
    private String mapEvaluationReport;

    @ApiModelProperty("图片对象")
    private String pictureObj;

    @ApiModelProperty("当前节点")
    private Integer curNodeNo;

    @ApiModelProperty("省")
    private String province;

    @ApiModelProperty("市")
    private String city;

    @ApiModelProperty("区/县")
    private String district;

    @ApiModelProperty("街道")
    private String township;

    @ApiModelProperty("是否可以上传租赁合同")
    private boolean canSubmitRentContract;


    public static PointDetailVO convertVO(PointInfoDO pointInfo, PointDetailInfoDO pointDetailInfo) {
        PointDetailVO result = new PointDetailVO();
        result.setPointId(pointInfo.getId());
        result.setShopId(pointInfo.getShopId());
        result.setPointName(pointInfo.getPointName());
        result.setPointCode(pointInfo.getPointCode());
        result.setLongitude(pointInfo.getLongitude());
        result.setLatitude(pointInfo.getLatitude());
        result.setAddress(pointInfo.getAddress());
        result.setPointStatus(pointInfo.getPointStatus());
        if(PointStatusEnum.POINT_STATUS_4.getCode().equals(pointInfo.getPointStatus())){
            result.setPointStatus(PointStatusEnum.POINT_STATUS_3.getCode());
        }
        result.setDevelopmentTime(pointInfo.getDevelopmentTime());
        result.setPointArea(pointInfo.getPointArea());
        result.setRegionId(pointInfo.getRegionId());
        result.setPointSource(pointInfo.getPointSource());
        result.setSelectStatus(pointInfo.getSelectStatus());
        result.setPointScore(pointInfo.getPointScore());
        result.setBusinessStatus(pointDetailInfo.getBusinessStatus());
        result.setNineFlowRate(pointDetailInfo.getNineFlowRate());
        result.setTenFlowRate(pointDetailInfo.getTenFlowRate());
        result.setEighteenFlowRate(pointDetailInfo.getEighteenFlowRate());
        result.setNineteenFlowRate(pointDetailInfo.getNineteenFlowRate());
        result.setPointDirection(pointDetailInfo.getPointDirection());
        result.setSiteConditions(pointDetailInfo.getSiteConditions());
        result.setStoreWidth(pointDetailInfo.getStoreWidth());
        result.setLandlordUsername(pointDetailInfo.getLandlordUsername());
        result.setLandlordMobile(pointDetailInfo.getLandlordMobile());
        result.setPaymentMethod(pointDetailInfo.getPaymentMethod());
        result.setPropertyStatus(pointDetailInfo.getPropertyStatus());
        result.setTransferFee(pointDetailInfo.getTransferFee());
        result.setCoverCommunity(pointDetailInfo.getCoverCommunity());
        result.setConsumerAbility(pointDetailInfo.getConsumerAbility());
        result.setFlowRateCalculate(pointDetailInfo.getFlowRateCalculate());
        result.setGatherGuestFarmerMarket(pointDetailInfo.getGatherGuestFarmerMarket());
        result.setGatherGuestHospital(pointDetailInfo.getGatherGuestHospital());
        result.setGatherGuestSchool(pointDetailInfo.getGatherGuestSchool());
        result.setStoreFlowTrend(pointDetailInfo.getStoreFlowTrend());
        result.setNearRepast(pointDetailInfo.getNearRepast());
        result.setNearNeighbor(pointDetailInfo.getNearNeighbor());
        result.setNearCompete(pointDetailInfo.getNearCompete());
        result.setNearBusinessCondition(pointDetailInfo.getNearBusinessCondition());
        result.setIntendPosition(pointDetailInfo.getIntendPosition());
        result.setGreenBelt(pointDetailInfo.getGreenBelt());
        result.setStoreOutlook(pointDetailInfo.getStoreOutlook());
        result.setGuestConvenience(pointDetailInfo.getGuestConvenience());
        result.setWantShopSize(pointDetailInfo.getWantShopSize());
        result.setCompeteType(pointDetailInfo.getCompeteType());
        result.setCompeteBusinessCapacity(pointDetailInfo.getCompeteBusinessCapacity());
        result.setInvestAmount(pointDetailInfo.getInvestAmount());
        result.setDayTrader(pointDetailInfo.getDayTrader());
        result.setProfitRate(pointDetailInfo.getProfitRate());
        result.setMonthProfitRate(pointDetailInfo.getMonthProfitRate());
        result.setBrandUseRate(pointDetailInfo.getBrandUseRate());
        result.setBrandUseFee(pointDetailInfo.getBrandUseFee());
        result.setStaffFee(pointDetailInfo.getStaffFee());
        result.setShopManagerNum(pointDetailInfo.getShopManagerNum());
        result.setShopManagerFee(pointDetailInfo.getShopManagerFee());
        result.setClerkNum(pointDetailInfo.getClerkNum());
        result.setClerkFee(pointDetailInfo.getClerkFee());
        result.setBonus(pointDetailInfo.getBonus());
        result.setMonthRent(pointDetailInfo.getMonthRent());
        result.setOtherFee(pointDetailInfo.getOtherFee());
        result.setNetProfit(pointDetailInfo.getNetProfit());
        result.setMonthRateReturn(pointDetailInfo.getMonthRateReturn());
        result.setDevelopmentManagerSign(pointDetailInfo.getDevelopmentManagerSign());
        result.setDevelopmentManagerSignTime(pointDetailInfo.getDevelopmentManagerSignTime());
        result.setOperationUserSign(pointDetailInfo.getOperationUserSign());
        result.setOperationUserSignTime(pointDetailInfo.getOperationUserSignTime());
        result.setLineSign(pointDetailInfo.getLineSign());
        result.setLineSignTime(pointDetailInfo.getLineSignTime());
        result.setMarketSizeScore(pointDetailInfo.getMarketSizeScore());
        result.setShopAreaScore(pointDetailInfo.getShopAreaScore());
        result.setConvenientScore(pointDetailInfo.getConvenientScore());
        result.setEnvironmentScore(pointDetailInfo.getEnvironmentScore());
        result.setRentContract(pointDetailInfo.getRentContract());
        result.setMapEvaluationReport(pointDetailInfo.getMapEvaluationReport());
        result.setPictureObj(pointDetailInfo.getPictureObj());
        result.setProvince(pointInfo.getProvince());
        result.setCity(pointInfo.getCity());
        result.setDistrict(pointInfo.getDistrict());
        result.setTownship(pointInfo.getTownship());
        return result;
    }

}