package com.persagy.transfer.pojo.dto;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.persagy.common.model.BaseEntity;
import com.persagy.common.utils.StringUtil;

import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

/**
 * 万达设备类型表与博锐尚格设备类型表的映射表
 * 
 * @version 1.0.0
 * @company persagy
 * @author zhangqiankun
 * @date 2021-09-16 11:19:53
 */
@Getter
@Setter
@ToString
@EqualsAndHashCode(callSuper = false)
@TableName("wdclass_rel_persagy")
public class WdclassRelPersagy extends BaseEntity<WdclassRelPersagy> {
	private static final long serialVersionUID = 6267094592796218298L;

	@TableField(updateStrategy = FieldStrategy.NOT_EMPTY)
	private String classCode; // BDTP类编码

	@TableField(updateStrategy = FieldStrategy.NOT_EMPTY)
	private String classstructureid;//万达设备分类ID
	
	@TableField(updateStrategy = FieldStrategy.NOT_EMPTY)
	private String wdClassCode; // 万达类编码

	@TableField(updateStrategy = FieldStrategy.NOT_EMPTY)
	private String wdBuildCode; // 万达构建分类编码

	public static Builder builder() {
		return new Builder();
	}

	public static class BuilderQueryWrapper {

		private LambdaQueryWrapper<WdclassRelPersagy> queryWrapper = new LambdaQueryWrapper<>();

		public BuilderQueryWrapper idEq(String id) {
			if (StringUtil.isNotBlank(id)) {
				queryWrapper.eq(WdclassRelPersagy::getId, id);
			}
			return this;
		}

		public BuilderQueryWrapper classCodeEq(String classCode) {
			if (StringUtil.isNotBlank(classCode)) {
				queryWrapper.eq(WdclassRelPersagy::getClassCode, classCode);
			}
			return this;
		}
		
		public BuilderQueryWrapper classstructureidEq(String classstructureid) {
			if (StringUtil.isNotBlank(classstructureid)) {
				queryWrapper.eq(WdclassRelPersagy::getClassstructureid, classstructureid);
			}
			return this;
		}

		public BuilderQueryWrapper wdClassCodeEq(String wdClassCode) {
			if (StringUtil.isNotBlank(wdClassCode)) {
				queryWrapper.eq(WdclassRelPersagy::getWdClassCode, wdClassCode);
			}
			return this;
		}

		public BuilderQueryWrapper wdBuildCodeEq(String wdBuildCode) {
			if (StringUtil.isNotBlank(wdBuildCode)) {
				queryWrapper.eq(WdclassRelPersagy::getWdBuildCode, wdBuildCode);
			}
			return this;
		}

		public LambdaQueryWrapper<WdclassRelPersagy> builder() {
			return queryWrapper;
		}

	}

	public static class BuilderUpdateWrapper {

		private LambdaUpdateWrapper<WdclassRelPersagy> updateWrapper = new LambdaUpdateWrapper<>();

		public BuilderUpdateWrapper idEq(String id) {
			if (StringUtil.isNotBlank(id)) {
				updateWrapper.eq(WdclassRelPersagy::getId, id);
			}
			return this;
		}

		public BuilderUpdateWrapper classCodeEq(String classCode) {
			if (StringUtil.isNotBlank(classCode)) {
				updateWrapper.eq(WdclassRelPersagy::getClassCode, classCode);
			}
			return this;
		}
		
		public BuilderUpdateWrapper classstructureidEq(String classstructureid) {
			if (StringUtil.isNotBlank(classstructureid)) {
				updateWrapper.eq(WdclassRelPersagy::getClassstructureid, classstructureid);
			}
			return this;
		}

		public BuilderUpdateWrapper wdClassCodeEq(String wdClassCode) {
			if (StringUtil.isNotBlank(wdClassCode)) {
				updateWrapper.eq(WdclassRelPersagy::getWdClassCode, wdClassCode);
			}
			return this;
		}

		public BuilderUpdateWrapper wdBuildCodeEq(String wdBuildCode) {
			if (StringUtil.isNotBlank(wdBuildCode)) {
				updateWrapper.eq(WdclassRelPersagy::getWdBuildCode, wdBuildCode);
			}
			return this;
		}

		public LambdaUpdateWrapper<WdclassRelPersagy> builder() {
			return updateWrapper;
		}

	}

	public static class Builder {

		private WdclassRelPersagy wdclassRelPersagy = new WdclassRelPersagy();

		public Builder id(String id) {
			wdclassRelPersagy.setId(id);
			return this;
		}

		public Builder classCode(String classCode) {
			wdclassRelPersagy.setClassCode(classCode);
			return this;
		}
		
		public Builder classstructureid(String classstructureid) {
			wdclassRelPersagy.setClassstructureid(classstructureid);
			return this;
		}
		
		public Builder wdClassCode(String wdClassCode) {
			wdclassRelPersagy.setWdClassCode(wdClassCode);
			return this;
		}

		public Builder wdBuildCode(String wdBuildCode) {
			wdclassRelPersagy.setWdBuildCode(wdBuildCode);
			return this;
		}

		public WdclassRelPersagy build() {
			return wdclassRelPersagy;
		}

	}
}