-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
201aa35
commit 2464060
Showing
12 changed files
with
506 additions
and
0 deletions.
There are no files selected for viewing
32 changes: 32 additions & 0 deletions
32
src/main/java/com/learning/mfscreener/entities/AuditableEntity.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
/* Licensed under Apache-2.0 2021-2022. */ | ||
package com.learning.mfscreener.entities; | ||
|
||
import jakarta.persistence.EntityListeners; | ||
import jakarta.persistence.MappedSuperclass; | ||
import java.time.LocalDateTime; | ||
import lombok.Getter; | ||
import lombok.Setter; | ||
import org.springframework.data.annotation.CreatedBy; | ||
import org.springframework.data.annotation.CreatedDate; | ||
import org.springframework.data.annotation.LastModifiedBy; | ||
import org.springframework.data.annotation.LastModifiedDate; | ||
import org.springframework.data.jpa.domain.support.AuditingEntityListener; | ||
|
||
@Getter | ||
@Setter | ||
@MappedSuperclass | ||
@EntityListeners(AuditingEntityListener.class) | ||
public abstract class AuditableEntity<T> { | ||
|
||
@CreatedBy | ||
protected T createdBy; | ||
|
||
@CreatedDate | ||
protected LocalDateTime createdDate; | ||
|
||
@LastModifiedBy | ||
protected T lastModifiedBy; | ||
|
||
@LastModifiedDate | ||
protected LocalDateTime lastModifiedDate; | ||
} |
7 changes: 7 additions & 0 deletions
7
src/main/java/com/learning/mfscreener/entities/CasTypeEnum.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
/* Licensed under Apache-2.0 2022. */ | ||
package com.learning.mfscreener.entities; | ||
|
||
public enum CasTypeEnum { | ||
DETAILED, | ||
SUMMARY | ||
} |
21 changes: 21 additions & 0 deletions
21
src/main/java/com/learning/mfscreener/entities/ErrorMessageEntity.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
/* Licensed under Apache-2.0 2021-2022. */ | ||
package com.learning.mfscreener.entities; | ||
|
||
import jakarta.persistence.*; | ||
import java.io.Serializable; | ||
import lombok.Getter; | ||
import lombok.Setter; | ||
|
||
@Entity | ||
@Getter | ||
@Setter | ||
@Table(name = "error_message") | ||
public class ErrorMessageEntity extends AuditableEntity<String> implements Serializable { | ||
|
||
@Id | ||
@GeneratedValue(strategy = GenerationType.SEQUENCE) | ||
@Column(name = "error_id", nullable = false) | ||
private Long id; | ||
|
||
private String message; | ||
} |
8 changes: 8 additions & 0 deletions
8
src/main/java/com/learning/mfscreener/entities/FileTypeEnum.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
/* Licensed under Apache-2.0 2022. */ | ||
package com.learning.mfscreener.entities; | ||
|
||
public enum FileTypeEnum { | ||
CAMS, | ||
KARVY, | ||
UNKNOWN | ||
} |
57 changes: 57 additions & 0 deletions
57
src/main/java/com/learning/mfscreener/entities/InvestorInfoEntity.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
/* Licensed under Apache-2.0 2022. */ | ||
package com.learning.mfscreener.entities; | ||
|
||
import jakarta.persistence.Column; | ||
import jakarta.persistence.Entity; | ||
import jakarta.persistence.FetchType; | ||
import jakarta.persistence.Id; | ||
import jakarta.persistence.JoinColumn; | ||
import jakarta.persistence.MapsId; | ||
import jakarta.persistence.OneToOne; | ||
import jakarta.persistence.Table; | ||
import java.io.Serializable; | ||
import java.util.Objects; | ||
import lombok.Getter; | ||
import lombok.Setter; | ||
import org.hibernate.Hibernate; | ||
|
||
@Getter | ||
@Setter | ||
@Entity | ||
@Table(name = "investor_info") | ||
public class InvestorInfoEntity extends AuditableEntity<String> implements Serializable { | ||
|
||
@Id | ||
@Column(name = "id", nullable = false) | ||
private Long id; | ||
|
||
@Column(name = "email") | ||
private String email; | ||
|
||
@Column(name = "name") | ||
private String name; | ||
|
||
@Column(name = "mobile") | ||
private String mobile; | ||
|
||
@Column(name = "address") | ||
private String address; | ||
|
||
@OneToOne(fetch = FetchType.LAZY) | ||
@MapsId | ||
@JoinColumn(name = "user_cas_details_id") | ||
private UserCASDetailsEntity userCasDetailsEntity; | ||
|
||
@Override | ||
public boolean equals(Object o) { | ||
if (this == o) return true; | ||
if (o == null || Hibernate.getClass(this) != Hibernate.getClass(o)) return false; | ||
InvestorInfoEntity that = (InvestorInfoEntity) o; | ||
return id != null && Objects.equals(email, that.email); | ||
} | ||
|
||
@Override | ||
public int hashCode() { | ||
return getClass().hashCode(); | ||
} | ||
} |
48 changes: 48 additions & 0 deletions
48
src/main/java/com/learning/mfscreener/entities/MFSchemeEntity.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
/* Licensed under Apache-2.0 2021-2022. */ | ||
package com.learning.mfscreener.entities; | ||
|
||
import jakarta.persistence.*; | ||
import java.io.Serializable; | ||
import java.util.ArrayList; | ||
import java.util.List; | ||
import lombok.Getter; | ||
import lombok.Setter; | ||
import org.hibernate.annotations.DynamicUpdate; | ||
|
||
@Table(name = "mf_scheme") | ||
@Entity | ||
@Getter | ||
@Setter | ||
@DynamicUpdate | ||
public class MFSchemeEntity extends AuditableEntity<String> implements Serializable { | ||
|
||
@Id | ||
@Column(name = "scheme_id", nullable = false) | ||
private Long schemeId; | ||
|
||
private String payOut; | ||
|
||
@Column(name = "fund_house") | ||
private String fundHouse; | ||
|
||
@Column(name = "scheme_name", nullable = false) | ||
private String schemeName; | ||
|
||
@Column(name = "scheme_name_alias") | ||
private String schemeNameAlias; | ||
|
||
@Version | ||
private Long version; | ||
|
||
@ManyToOne(fetch = FetchType.LAZY) | ||
@JoinColumn(name = "mf_scheme_type_id") | ||
private MFSchemeTypeEntity mfSchemeTypeEntity = null; | ||
|
||
@OneToMany(mappedBy = "mfSchemeEntity", cascade = CascadeType.ALL, orphanRemoval = true) | ||
private List<MFSchemeNavEntity> mfSchemeNavEntities = new ArrayList<>(); | ||
|
||
public void addSchemeNav(MFSchemeNavEntity mfSchemeNavEntity) { | ||
mfSchemeNavEntities.add(mfSchemeNavEntity); | ||
mfSchemeNavEntity.setMfSchemeEntity(this); | ||
} | ||
} |
41 changes: 41 additions & 0 deletions
41
src/main/java/com/learning/mfscreener/entities/MFSchemeNavEntity.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
/* Licensed under Apache-2.0 2021-2022. */ | ||
package com.learning.mfscreener.entities; | ||
|
||
import jakarta.persistence.*; | ||
import java.io.Serializable; | ||
import java.time.LocalDate; | ||
import lombok.Getter; | ||
import lombok.Setter; | ||
|
||
@Table(name = "mf_scheme_nav") | ||
@Entity | ||
@Getter | ||
@Setter | ||
public class MFSchemeNavEntity extends AuditableEntity<String> implements Serializable { | ||
|
||
@Id | ||
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "scheme_id_generator") | ||
@SequenceGenerator(name = "scheme_id_generator", sequenceName = "scheme_id_seq", allocationSize = 100) | ||
@Column(name = "id", nullable = false) | ||
private Long id; | ||
|
||
private Double nav; | ||
|
||
private LocalDate navDate; | ||
|
||
@ManyToOne(fetch = FetchType.LAZY) | ||
@JoinColumn(name = "mf_scheme_id") | ||
private MFSchemeEntity mfSchemeEntity; | ||
|
||
@Override | ||
public boolean equals(Object o) { | ||
if (this == o) return true; | ||
if (!(o instanceof MFSchemeNavEntity)) return false; | ||
return nav.equals(((MFSchemeNavEntity) o).getNav()) && navDate.equals(((MFSchemeNavEntity) o).getNavDate()); | ||
} | ||
|
||
@Override | ||
public int hashCode() { | ||
return getClass().hashCode(); | ||
} | ||
} |
40 changes: 40 additions & 0 deletions
40
src/main/java/com/learning/mfscreener/entities/MFSchemeTypeEntity.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
/* Licensed under Apache-2.0 2021-2022. */ | ||
package com.learning.mfscreener.entities; | ||
|
||
import jakarta.persistence.*; | ||
import java.io.Serializable; | ||
import java.util.ArrayList; | ||
import java.util.List; | ||
import lombok.Getter; | ||
import lombok.NoArgsConstructor; | ||
import lombok.Setter; | ||
|
||
@Entity | ||
@Getter | ||
@Setter | ||
@NoArgsConstructor | ||
@Table( | ||
name = "mf_scheme_types", | ||
uniqueConstraints = @UniqueConstraint(columnNames = {"scheme_type", "scheme_category"})) | ||
public class MFSchemeTypeEntity extends AuditableEntity<String> implements Serializable { | ||
|
||
@Id | ||
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "scheme_type_id_generator") | ||
@SequenceGenerator(name = "scheme_type_id_generator", sequenceName = "scheme_type_id_seq", allocationSize = 2) | ||
@Column(name = "scheme_type_id", nullable = false) | ||
private Integer schemeTypeId; | ||
|
||
@Column(name = "scheme_type", nullable = false) | ||
private String schemeType; | ||
|
||
@Column(name = "scheme_category", nullable = false) | ||
private String schemeCategory; | ||
|
||
@OneToMany(mappedBy = "mfSchemeTypeEntity", cascade = CascadeType.ALL, orphanRemoval = true) | ||
private List<MFSchemeEntity> mfSchemeEntities = new ArrayList<>(); | ||
|
||
public void addMFScheme(MFSchemeEntity mfSchemeEntity) { | ||
mfSchemeEntities.add(mfSchemeEntity); | ||
mfSchemeEntity.setMfSchemeTypeEntity(this); | ||
} | ||
} |
60 changes: 60 additions & 0 deletions
60
src/main/java/com/learning/mfscreener/entities/UserCASDetailsEntity.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
/* Licensed under Apache-2.0 2022. */ | ||
package com.learning.mfscreener.entities; | ||
|
||
import jakarta.persistence.CascadeType; | ||
import jakarta.persistence.Column; | ||
import jakarta.persistence.Entity; | ||
import jakarta.persistence.EnumType; | ||
import jakarta.persistence.Enumerated; | ||
import jakarta.persistence.GeneratedValue; | ||
import jakarta.persistence.GenerationType; | ||
import jakarta.persistence.Id; | ||
import jakarta.persistence.OneToMany; | ||
import jakarta.persistence.OneToOne; | ||
import jakarta.persistence.Table; | ||
import java.io.Serializable; | ||
import java.util.ArrayList; | ||
import java.util.List; | ||
import lombok.Getter; | ||
import lombok.Setter; | ||
|
||
@Getter | ||
@Setter | ||
@Entity | ||
@Table(name = "user_cas_details") | ||
public class UserCASDetailsEntity extends AuditableEntity<String> implements Serializable { | ||
@Id | ||
@GeneratedValue(strategy = GenerationType.SEQUENCE) | ||
@Column(name = "id", nullable = false) | ||
private Long id; | ||
|
||
@Enumerated(EnumType.STRING) | ||
@Column(name = "cas_type", nullable = false) | ||
private CasTypeEnum casTypeEnum; | ||
|
||
@Enumerated(EnumType.STRING) | ||
@Column(name = "file_type", nullable = false) | ||
private FileTypeEnum fileTypeEnum; | ||
|
||
@OneToOne(mappedBy = "userCasDetailsEntity", cascade = CascadeType.ALL, optional = false) | ||
private InvestorInfoEntity investorInfoEntity; | ||
|
||
@OneToMany(mappedBy = "userCasDetailsEntity", cascade = CascadeType.ALL, orphanRemoval = true) | ||
private List<UserFolioDetailsEntity> folioEntities = new ArrayList<>(); | ||
|
||
public void setInvestorInfoEntity(InvestorInfoEntity investorInfoEntity) { | ||
if (investorInfoEntity == null) { | ||
if (this.investorInfoEntity != null) { | ||
this.investorInfoEntity.setUserCasDetailsEntity(null); | ||
} | ||
} else { | ||
investorInfoEntity.setUserCasDetailsEntity(this); | ||
} | ||
this.investorInfoEntity = investorInfoEntity; | ||
} | ||
|
||
public void addFolioEntity(UserFolioDetailsEntity userFolioDetailsEntity) { | ||
this.folioEntities.add(userFolioDetailsEntity); | ||
userFolioDetailsEntity.setUserCasDetailsEntity(this); | ||
} | ||
} |
57 changes: 57 additions & 0 deletions
57
src/main/java/com/learning/mfscreener/entities/UserFolioDetailsEntity.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
/* Licensed under Apache-2.0 2022. */ | ||
package com.learning.mfscreener.entities; | ||
|
||
import jakarta.persistence.CascadeType; | ||
import jakarta.persistence.Column; | ||
import jakarta.persistence.Entity; | ||
import jakarta.persistence.GeneratedValue; | ||
import jakarta.persistence.GenerationType; | ||
import jakarta.persistence.Id; | ||
import jakarta.persistence.JoinColumn; | ||
import jakarta.persistence.ManyToOne; | ||
import jakarta.persistence.OneToMany; | ||
import jakarta.persistence.Table; | ||
import java.io.Serializable; | ||
import java.util.ArrayList; | ||
import java.util.List; | ||
import lombok.Getter; | ||
import lombok.Setter; | ||
|
||
@Getter | ||
@Setter | ||
@Entity | ||
@Table(name = "user_folio_details") | ||
public class UserFolioDetailsEntity extends AuditableEntity<String> implements Serializable { | ||
|
||
@Id | ||
@GeneratedValue(strategy = GenerationType.SEQUENCE) | ||
@Column(name = "id", nullable = false) | ||
private Long id; | ||
|
||
@Column(name = "folio") | ||
private String folio; | ||
|
||
@Column(name = "amc") | ||
private String amc; | ||
|
||
@Column(name = "pan") | ||
private String pan; | ||
|
||
@Column(name = "kyc") | ||
private String kyc; | ||
|
||
@Column(name = "pan_kyc") | ||
private String panKyc; | ||
|
||
@OneToMany(mappedBy = "userFolioDetailsEntity", cascade = CascadeType.ALL, orphanRemoval = true) | ||
private List<UserSchemeDetailsEntity> schemeEntities = new ArrayList<>(); | ||
|
||
@ManyToOne | ||
@JoinColumn(name = "user_cas_details_id") | ||
private UserCASDetailsEntity userCasDetailsEntity; | ||
|
||
public void addSchemeEntity(UserSchemeDetailsEntity userSchemeDetailsEntity) { | ||
this.schemeEntities.add(userSchemeDetailsEntity); | ||
userSchemeDetailsEntity.setUserFolioDetailsEntity(this); | ||
} | ||
} |
Oops, something went wrong.