address
`package com.db.bootcamp.cpref.model;
import lombok.Data;
import javax.persistence.Embeddable;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
@data // Assuming you want Lombok to generate Getters/Setters based on your CounterParty.java imports
@embeddable
public class Address implements Serializable {
@NotBlank(message = "First Address Line cannot be blank")
private String firstAddressLine;
@NotBlank(message = "City cannot be blank")
private String city;
@NotBlank(message = "Region cannot be blank")
private String region;
@NotBlank(message = "Country cannot be blank")
private String country;
// Postal code does not have a "Not Blank" requirement in the table
private String postalCode;
}`
reg details
`package com.db.bootcamp.cpref.model;
import lombok.Data;
import javax.persistence.Embeddable;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Past;
import java.io.Serializable;
import java.util.Date; // Consider java.time.ZonedDateTime if your parser supports it
@data
@embeddable
public class RegistrationDetails implements Serializable {
@NotBlank
private String registrationStatus;
@NotBlank
private String managingLou;
private String validationSources;
@NotNull
@Past(message = "Initial Registration Date must be in the past")
private Date initialRegistrationDate;
@NotNull
@Past(message = "Last Update Date must be in the past")
private Date lastUpdateDate;
@NotNull
private Date nextRenewalDate;
}`
counter party
`package com.db.bootcamp.cpref.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.io.Serializable;
@data
@builder
@entity
@Table(name = "COUNTER_PARTY")
@NoArgsConstructor
@AllArgsConstructor
public class CounterParty implements Serializable {
@Id
@NotBlank
private String lei;
@Version
private Long version = -1L;
// --- New Entity Fields ---
@NotBlank
@Size(max = 300, message = "Legal Name must be maximum 300 characters")
private String legalName;
@NotBlank
private String entityCategory;
private String entityStatus;
// --- Embedded Legal Address ---
@Valid
@Embedded
private Address legalAddress;
// --- Embedded Headquarters Address ---
@Valid
@Embedded
@AttributeOverrides({
@AttributeOverride(name = "firstAddressLine", column = @Column(name = "hq_first_address_line")),
@AttributeOverride(name = "city", column = @Column(name = "hq_city")),
@AttributeOverride(name = "region", column = @Column(name = "hq_region")),
@AttributeOverride(name = "country", column = @Column(name = "hq_country")),
@AttributeOverride(name = "postalCode", column = @Column(name = "hq_postal_code"))
})
private Address headquartersAddress;
// --- Embedded Registration ---
@Valid
@Embedded
private RegistrationDetails registration;
}`
Top comments (0)