DEV Community

Nebula
Nebula

Posted on

d02

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; 
Enter fullscreen mode Exit fullscreen mode

}`

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;
Enter fullscreen mode Exit fullscreen mode

}`

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;
Enter fullscreen mode Exit fullscreen mode

}`

Top comments (0)