# Event.java

    package cloud.wconnect.rateshop.entity.rateshop;

    import com.baomidou.mybatisplus.annotation.IdType;
    import com.baomidou.mybatisplus.annotation.TableId;
    import java.io.Serializable;

    import lombok.*;
    import lombok.experimental.Accessors;

    /**
     * <p>
     * 国际化问题，暂定不提供多语言适配，后期可考虑调用gpt api做翻译；		每次爬虫都是对指定url做全量抓取：	0: startDate为历史日期的数据直接忽略；	1. 新增时去重规则为（beginDate+title+urlId）；	2. 清理不存在的规则为：删除startDate为未来的且本次抓取中不存在的记录（beginDate+title+urlId）。	3. 一个url对应一个数据源
     * </p>
     *
     * @author lichen
     * @since 2024-03-01
     */
    @Getter
    @Setter
    @Accessors(chain = true)
    @AllArgsConstructor
    @NoArgsConstructor
    @Builder
    public class Event implements Serializable {

        private static final long serialVersionUID = 1L;

        @TableId(value = "id", type = IdType.AUTO)
        private Integer id;

        /**
         * 系统自动获取的事件，该字段为0
         */
        private Integer tenantId;

        /**
         * 系统自动获取的事件，该字段为0
         */
        private Integer propertyId;

        /**
         * 事件源地址ID
         */
        private Integer locationId;

        /**
         * 事件源url ID（手动创建的事件，该字段为0）
         */
        private Integer urlId;

        /**
         * 分类
         */
        private String category;

        private String title;

        /**
         * 开始时间(20230610)
         */
        private Integer beginDate;

        /**
         * 结束时间(20230610)
         */
        private Integer endDate;

        /**
         * 外链
         */
        private String link;

        /**
         * 事件地点
         */
        private String address;

        /**
         * 描述
         */
        private String description;

        /**
         * [{uid: 1, timestamp:11111},…]
         */
        private String updateLog;

        /**
         * beginDate 和 title 组合生成key
         *
         * @return java.lang.String
         * @author lichen
         * @date 2024/3/2
         */
        public String beginDateAndTitleKey(){
            return beginDate + "_" + title;
        }

        /**
         * beginDate 和 title 和 locationId 组合生成key
         *
         * @return java.lang.String
         * @author lichen
         * @date 2024/3/2
         */
        public String beginDateAndTitleAndLocationIdKey(){
            return beginDate + "_" + title + "_" + locationId;
        }
    }