package com.shanghaichengdi.ghjgitem.domain;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

/**
 * 浦江游览备案-自营航班
 * @TableName WATER_SELF_OPERATED
 */
@TableName(value ="GHJG_BUSSINESS.WATER_SELF_OPERATED")
@Data
public class WaterSelfOperated {
    /**
     * 
     */
    @TableId
    private String code;

    /**
     * 单位名称
     */
    private String unitName;

    /**
     * 单位编号（证照编号）如果是手填，则为空
     */
    private String unitNumber;

    /**
     * 申报月份
     */
    private String declareDateMonth;

    /**
     * 开航时间（时-分）（mi-ss）
     */
    private String sailDateStart;

    /**
     * 开航时间（时-分）（mi-ss）
     */
    private String sailDateEnd;

    /**
     * 船舶名称
     */
    private String shipName;

    /**
     * 停靠码头名称
     */
    private String dockAtTheDockName;

    /**
     * 停靠码头编号（预留）
     */
    private String dockAtTheDockCode;

    /**
     * 售票价格
     */
    private String ticketPrice;

    /**
     * 航线类型
     */
    private String routeType;

    /**
     * 特色内容
     */
    private String featuredContent;

    /**
     * 特色内容（code）（预留）
     */
    private String featuredContentCode;

    /**
     * 创建人
     */
    private String createUserId;

    /**
     * 
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date createDate;

    /**
     * 修改人
     */
    private String upUserId;

    /**
     * 
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date upDate;

    /**
     * yyyy-mm-dd 营运时间开始
     */
    private String operatingDateSta;

    /**
     * 航班类型  1月度计划  2临时新增
     */
    private Long operatedType;

    /**
     * yyyy-mm-dd 营运时间结束
     */
    private String operatingDateEnd;

    /**
     * 是否提交 0未提交 1已提交
     */
    private Long isSubmit;

    /**
     * 提交时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date submitDate;

    /**
     * 提交人
     */
    private String submitUserId;

    /**
     * 0通过 1退回 2未核验 3已撤销 4完成 审核状态
     */
    private Long infoState;

    /**
     * 数据状态，0保存，1提交
     */
    private Long status;

    /**
     * 
     */
    private String createUser;

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        WaterSelfOperated other = (WaterSelfOperated) that;
        return (this.getCode() == null ? other.getCode() == null : this.getCode().equals(other.getCode()))
            && (this.getUnitName() == null ? other.getUnitName() == null : this.getUnitName().equals(other.getUnitName()))
            && (this.getUnitNumber() == null ? other.getUnitNumber() == null : this.getUnitNumber().equals(other.getUnitNumber()))
            && (this.getDeclareDateMonth() == null ? other.getDeclareDateMonth() == null : this.getDeclareDateMonth().equals(other.getDeclareDateMonth()))
            && (this.getSailDateStart() == null ? other.getSailDateStart() == null : this.getSailDateStart().equals(other.getSailDateStart()))
            && (this.getSailDateEnd() == null ? other.getSailDateEnd() == null : this.getSailDateEnd().equals(other.getSailDateEnd()))
            && (this.getShipName() == null ? other.getShipName() == null : this.getShipName().equals(other.getShipName()))
            && (this.getDockAtTheDockName() == null ? other.getDockAtTheDockName() == null : this.getDockAtTheDockName().equals(other.getDockAtTheDockName()))
            && (this.getDockAtTheDockCode() == null ? other.getDockAtTheDockCode() == null : this.getDockAtTheDockCode().equals(other.getDockAtTheDockCode()))
            && (this.getTicketPrice() == null ? other.getTicketPrice() == null : this.getTicketPrice().equals(other.getTicketPrice()))
            && (this.getRouteType() == null ? other.getRouteType() == null : this.getRouteType().equals(other.getRouteType()))
            && (this.getFeaturedContent() == null ? other.getFeaturedContent() == null : this.getFeaturedContent().equals(other.getFeaturedContent()))
            && (this.getFeaturedContentCode() == null ? other.getFeaturedContentCode() == null : this.getFeaturedContentCode().equals(other.getFeaturedContentCode()))
            && (this.getCreateUserId() == null ? other.getCreateUserId() == null : this.getCreateUserId().equals(other.getCreateUserId()))
            && (this.getCreateDate() == null ? other.getCreateDate() == null : this.getCreateDate().equals(other.getCreateDate()))
            && (this.getUpUserId() == null ? other.getUpUserId() == null : this.getUpUserId().equals(other.getUpUserId()))
            && (this.getUpDate() == null ? other.getUpDate() == null : this.getUpDate().equals(other.getUpDate()))
            && (this.getOperatingDateSta() == null ? other.getOperatingDateSta() == null : this.getOperatingDateSta().equals(other.getOperatingDateSta()))
            && (this.getOperatedType() == null ? other.getOperatedType() == null : this.getOperatedType().equals(other.getOperatedType()))
            && (this.getOperatingDateEnd() == null ? other.getOperatingDateEnd() == null : this.getOperatingDateEnd().equals(other.getOperatingDateEnd()))
            && (this.getIsSubmit() == null ? other.getIsSubmit() == null : this.getIsSubmit().equals(other.getIsSubmit()))
            && (this.getSubmitDate() == null ? other.getSubmitDate() == null : this.getSubmitDate().equals(other.getSubmitDate()))
            && (this.getSubmitUserId() == null ? other.getSubmitUserId() == null : this.getSubmitUserId().equals(other.getSubmitUserId()))
            && (this.getInfoState() == null ? other.getInfoState() == null : this.getInfoState().equals(other.getInfoState()))
            && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus()))
            && (this.getCreateUser() == null ? other.getCreateUser() == null : this.getCreateUser().equals(other.getCreateUser()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getCode() == null) ? 0 : getCode().hashCode());
        result = prime * result + ((getUnitName() == null) ? 0 : getUnitName().hashCode());
        result = prime * result + ((getUnitNumber() == null) ? 0 : getUnitNumber().hashCode());
        result = prime * result + ((getDeclareDateMonth() == null) ? 0 : getDeclareDateMonth().hashCode());
        result = prime * result + ((getSailDateStart() == null) ? 0 : getSailDateStart().hashCode());
        result = prime * result + ((getSailDateEnd() == null) ? 0 : getSailDateEnd().hashCode());
        result = prime * result + ((getShipName() == null) ? 0 : getShipName().hashCode());
        result = prime * result + ((getDockAtTheDockName() == null) ? 0 : getDockAtTheDockName().hashCode());
        result = prime * result + ((getDockAtTheDockCode() == null) ? 0 : getDockAtTheDockCode().hashCode());
        result = prime * result + ((getTicketPrice() == null) ? 0 : getTicketPrice().hashCode());
        result = prime * result + ((getRouteType() == null) ? 0 : getRouteType().hashCode());
        result = prime * result + ((getFeaturedContent() == null) ? 0 : getFeaturedContent().hashCode());
        result = prime * result + ((getFeaturedContentCode() == null) ? 0 : getFeaturedContentCode().hashCode());
        result = prime * result + ((getCreateUserId() == null) ? 0 : getCreateUserId().hashCode());
        result = prime * result + ((getCreateDate() == null) ? 0 : getCreateDate().hashCode());
        result = prime * result + ((getUpUserId() == null) ? 0 : getUpUserId().hashCode());
        result = prime * result + ((getUpDate() == null) ? 0 : getUpDate().hashCode());
        result = prime * result + ((getOperatingDateSta() == null) ? 0 : getOperatingDateSta().hashCode());
        result = prime * result + ((getOperatedType() == null) ? 0 : getOperatedType().hashCode());
        result = prime * result + ((getOperatingDateEnd() == null) ? 0 : getOperatingDateEnd().hashCode());
        result = prime * result + ((getIsSubmit() == null) ? 0 : getIsSubmit().hashCode());
        result = prime * result + ((getSubmitDate() == null) ? 0 : getSubmitDate().hashCode());
        result = prime * result + ((getSubmitUserId() == null) ? 0 : getSubmitUserId().hashCode());
        result = prime * result + ((getInfoState() == null) ? 0 : getInfoState().hashCode());
        result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
        result = prime * result + ((getCreateUser() == null) ? 0 : getCreateUser().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", code=").append(code);
        sb.append(", unitName=").append(unitName);
        sb.append(", unitNumber=").append(unitNumber);
        sb.append(", declareDateMonth=").append(declareDateMonth);
        sb.append(", sailDateStart=").append(sailDateStart);
        sb.append(", sailDateEnd=").append(sailDateEnd);
        sb.append(", shipName=").append(shipName);
        sb.append(", dockAtTheDockName=").append(dockAtTheDockName);
        sb.append(", dockAtTheDockCode=").append(dockAtTheDockCode);
        sb.append(", ticketPrice=").append(ticketPrice);
        sb.append(", routeType=").append(routeType);
        sb.append(", featuredContent=").append(featuredContent);
        sb.append(", featuredContentCode=").append(featuredContentCode);
        sb.append(", createUserId=").append(createUserId);
        sb.append(", createDate=").append(createDate);
        sb.append(", upUserId=").append(upUserId);
        sb.append(", upDate=").append(upDate);
        sb.append(", operatingDateSta=").append(operatingDateSta);
        sb.append(", operatedType=").append(operatedType);
        sb.append(", operatingDateEnd=").append(operatingDateEnd);
        sb.append(", isSubmit=").append(isSubmit);
        sb.append(", submitDate=").append(submitDate);
        sb.append(", submitUserId=").append(submitUserId);
        sb.append(", infoState=").append(infoState);
        sb.append(", status=").append(status);
        sb.append(", createUser=").append(createUser);
        sb.append("]");
        return sb.toString();
    }
}