/**
* Copyright (c) 1989-2020 INVENTEC BESTA Co., Ltd.
* All Rights Reserved.
*/
package com.taiwanlife.teamwalk.common.entity.redeem ;
import java.time.LocalDateTime ;
import java.util.Set;
import jakarta.persistence.*;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import org.springframework.data.jpa.domain.support.AuditingEntityListener ;
import org.springframework.format.annotation.DateTimeFormat ;
import com.fasterxml.jackson.annotation.JsonFormat ;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties ;
import com.fasterxml.jackson.annotation.JsonInclude ;
import com.taiwanlife.teamwalk.common.entity.AbstractBaseEntity ;
import lombok.AllArgsConstructor ;
import lombok.Builder ;
import lombok.Data ;
import lombok.EqualsAndHashCode ;
import lombok.NoArgsConstructor ;
import lombok.ToString ;
/**
* @author Seimo.Zhan
* @version 1
*
* @date 2020/09/21
*/
@Entity
@EntityListeners ( AuditingEntityListener.class )
@JsonIgnoreProperties ( ignoreUnknown = true, value = { "hibernateLazyInitializer", "handler", "fieldHandler" } )
@JsonInclude ( JsonInclude.Include.NON_EMPTY )
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode ( callSuper = true )
@ToString ( callSuper = true )
@Builder
public class ReAdventureMapCheckpoint extends AbstractBaseEntity
{
private Integer exp ;
private String icon ;
private String name ;
@DateTimeFormat ( pattern = "yyyy-MM-dd HH:mm:ss" )
@JsonFormat ( pattern = "yyyy/MM/dd HH:mm:ss", timezone = "GMT+8" )
private LocalDateTime startDate ;
@DateTimeFormat ( pattern = "yyyy-MM-dd HH:mm:ss" )
@JsonFormat ( pattern = "yyyy/MM/dd HH:mm:ss", timezone = "GMT+8" )
private LocalDateTime endDate ;
private Integer bonusExp ;
private Integer bonusCoins ;
private Integer bonusFreeGame ;
private Boolean isEnable ;
@ManyToOne ( targetEntity = ReAdventureMapLevel.class, cascade = { CascadeType.REFRESH, CascadeType.MERGE }, optional = true, fetch = FetchType.LAZY )
@JoinColumn ( name = "adventure_map_level_id", referencedColumnName = "id", foreignKey = @ForeignKey ( name = "none", value = ConstraintMode.NO_CONSTRAINT ) )
@JsonIgnoreProperties ( ignoreUnknown = true, value = { "reAdventureMapCheckpoints" } )
private ReAdventureMapLevel reAdventureMapLevel ;
@OneToMany(targetEntity = ReAdventureMapCheckpointCollection.class, cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY)
@JoinColumn(name = "id", referencedColumnName = "id", foreignKey = @ForeignKey(name = "none"))
//@JsonIgnoreProperties(ignoreUnknown = true, value = {"mbrMember"})
@JsonManagedReference
@EqualsAndHashCode.Exclude
@ToString.Exclude
private Set<ReAdventureMapCheckpointCollection> reAdventureMapCheckpointCollections;
}
LyoqCgogKiBDb3B5cmlnaHQgKGMpIDE5ODktMjAyMCBJTlZFTlRFQyBCRVNUQSBDby4sIEx0ZC4KCiAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCgogKi8KCnBhY2thZ2UgY29tLnRhaXdhbmxpZmUudGVhbXdhbGsuY29tbW9uLmVudGl0eS5yZWRlZW0gOwoKCgppbXBvcnQgamF2YS50aW1lLkxvY2FsRGF0ZVRpbWUgOwoKaW1wb3J0IGphdmEudXRpbC5TZXQ7CgoKCmltcG9ydCBqYWthcnRhLnBlcnNpc3RlbmNlLio7CgoKCmltcG9ydCBjb20uZmFzdGVyeG1sLmphY2tzb24uYW5ub3RhdGlvbi5Kc29uTWFuYWdlZFJlZmVyZW5jZTsKCmltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmRhdGEuanBhLmRvbWFpbi5zdXBwb3J0LkF1ZGl0aW5nRW50aXR5TGlzdGVuZXIgOwoKaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuZm9ybWF0LmFubm90YXRpb24uRGF0ZVRpbWVGb3JtYXQgOwoKCgppbXBvcnQgY29tLmZhc3RlcnhtbC5qYWNrc29uLmFubm90YXRpb24uSnNvbkZvcm1hdCA7CgppbXBvcnQgY29tLmZhc3RlcnhtbC5qYWNrc29uLmFubm90YXRpb24uSnNvbklnbm9yZVByb3BlcnRpZXMgOwoKaW1wb3J0IGNvbS5mYXN0ZXJ4bWwuamFja3Nvbi5hbm5vdGF0aW9uLkpzb25JbmNsdWRlIDsKCmltcG9ydCBjb20udGFpd2FubGlmZS50ZWFtd2Fsay5jb21tb24uZW50aXR5LkFic3RyYWN0QmFzZUVudGl0eSA7CgoKCmltcG9ydCBsb21ib2suQWxsQXJnc0NvbnN0cnVjdG9yIDsKCmltcG9ydCBsb21ib2suQnVpbGRlciA7CgppbXBvcnQgbG9tYm9rLkRhdGEgOwoKaW1wb3J0IGxvbWJvay5FcXVhbHNBbmRIYXNoQ29kZSA7CgppbXBvcnQgbG9tYm9rLk5vQXJnc0NvbnN0cnVjdG9yIDsKCmltcG9ydCBsb21ib2suVG9TdHJpbmcgOwoKCgoKCi8qKgoKICogQGF1dGhvciBTZWltby5aaGFuCgogKiBAdmVyc2lvbiAxCgogKiAKCiAqIEBkYXRlIDIwMjAvMDkvMjEKCiAqLwoKQEVudGl0eQoKQEVudGl0eUxpc3RlbmVycyAoIEF1ZGl0aW5nRW50aXR5TGlzdGVuZXIuY2xhc3MgKQoKQEpzb25JZ25vcmVQcm9wZXJ0aWVzICggaWdub3JlVW5rbm93biA9IHRydWUsIHZhbHVlID0geyAiaGliZXJuYXRlTGF6eUluaXRpYWxpemVyIiwgImhhbmRsZXIiLCAiZmllbGRIYW5kbGVyIiB9ICkKCkBKc29uSW5jbHVkZSAoIEpzb25JbmNsdWRlLkluY2x1ZGUuTk9OX0VNUFRZICkKCkBEYXRhCgpATm9BcmdzQ29uc3RydWN0b3IKCkBBbGxBcmdzQ29uc3RydWN0b3IKCkBFcXVhbHNBbmRIYXNoQ29kZSAoIGNhbGxTdXBlciA9IHRydWUgKQoKQFRvU3RyaW5nICggY2FsbFN1cGVyID0gdHJ1ZSApCgpAQnVpbGRlcgoKcHVibGljIGNsYXNzIFJlQWR2ZW50dXJlTWFwQ2hlY2twb2ludCBleHRlbmRzIEFic3RyYWN0QmFzZUVudGl0eQoKewoKCQoKCXByaXZhdGUgSW50ZWdlciBleHAgOwoKCQoKCXByaXZhdGUgU3RyaW5nIGljb24gOwoKCQoKCXByaXZhdGUgU3RyaW5nIG5hbWUgOwoKCQoKCUBEYXRlVGltZUZvcm1hdCAoIHBhdHRlcm4gPSAieXl5eS1NTS1kZCBISDptbTpzcyIgKQoKCUBKc29uRm9ybWF0ICggcGF0dGVybiA9ICJ5eXl5L01NL2RkIEhIOm1tOnNzIiwgdGltZXpvbmUgPSAiR01UKzgiICkKCglwcml2YXRlIExvY2FsRGF0ZVRpbWUgc3RhcnREYXRlIDsKCgkKCglARGF0ZVRpbWVGb3JtYXQgKCBwYXR0ZXJuID0gInl5eXktTU0tZGQgSEg6bW06c3MiICkKCglASnNvbkZvcm1hdCAoIHBhdHRlcm4gPSAieXl5eS9NTS9kZCBISDptbTpzcyIsIHRpbWV6b25lID0gIkdNVCs4IiApCgoJcHJpdmF0ZSBMb2NhbERhdGVUaW1lIGVuZERhdGUgOwoKCQoKCXByaXZhdGUgSW50ZWdlciBib251c0V4cCA7CgoJCgoJcHJpdmF0ZSBJbnRlZ2VyIGJvbnVzQ29pbnMgOwoKCQoKCXByaXZhdGUgSW50ZWdlciBib251c0ZyZWVHYW1lIDsKCgkKCglwcml2YXRlIEJvb2xlYW4gaXNFbmFibGUgOwoKCQoKCUBNYW55VG9PbmUgKCB0YXJnZXRFbnRpdHkgPSBSZUFkdmVudHVyZU1hcExldmVsLmNsYXNzLCBjYXNjYWRlID0geyBDYXNjYWRlVHlwZS5SRUZSRVNILCBDYXNjYWRlVHlwZS5NRVJHRSB9LCBvcHRpb25hbCA9IHRydWUsIGZldGNoID0gRmV0Y2hUeXBlLkxBWlkgKQoKCUBKb2luQ29sdW1uICggbmFtZSA9ICJhZHZlbnR1cmVfbWFwX2xldmVsX2lkIiwgcmVmZXJlbmNlZENvbHVtbk5hbWUgPSAiaWQiLCBmb3JlaWduS2V5ID0gQEZvcmVpZ25LZXkgKCBuYW1lID0gIm5vbmUiLCB2YWx1ZSA9IENvbnN0cmFpbnRNb2RlLk5PX0NPTlNUUkFJTlQgKSApCgoJQEpzb25JZ25vcmVQcm9wZXJ0aWVzICggaWdub3JlVW5rbm93biA9IHRydWUsIHZhbHVlID0geyAicmVBZHZlbnR1cmVNYXBDaGVja3BvaW50cyIgfSApCgoJcHJpdmF0ZSBSZUFkdmVudHVyZU1hcExldmVsIHJlQWR2ZW50dXJlTWFwTGV2ZWwgOwoKCgoJQE9uZVRvTWFueSh0YXJnZXRFbnRpdHkgPSBSZUFkdmVudHVyZU1hcENoZWNrcG9pbnRDb2xsZWN0aW9uLmNsYXNzLCBjYXNjYWRlID0gQ2FzY2FkZVR5cGUuQUxMLCBvcnBoYW5SZW1vdmFsID0gdHJ1ZSwgZmV0Y2ggPSBGZXRjaFR5cGUuTEFaWSkKCglASm9pbkNvbHVtbihuYW1lID0gImlkIiwgcmVmZXJlbmNlZENvbHVtbk5hbWUgPSAiaWQiLCBmb3JlaWduS2V5ID0gQEZvcmVpZ25LZXkobmFtZSA9ICJub25lIikpCgoJLy9ASnNvbklnbm9yZVByb3BlcnRpZXMoaWdub3JlVW5rbm93biA9IHRydWUsIHZhbHVlID0geyJtYnJNZW1iZXIifSkKCglASnNvbk1hbmFnZWRSZWZlcmVuY2UKCglARXF1YWxzQW5kSGFzaENvZGUuRXhjbHVkZQoKCUBUb1N0cmluZy5FeGNsdWRlCgoJcHJpdmF0ZSBTZXQ8UmVBZHZlbnR1cmVNYXBDaGVja3BvaW50Q29sbGVjdGlvbj4gcmVBZHZlbnR1cmVNYXBDaGVja3BvaW50Q29sbGVjdGlvbnM7CgoJCgp9Cg==