Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Persist client information in postgres #352

Merged
merged 10 commits into from
Feb 22, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package ca.bc.gov.app.dto.client;

import java.util.List;

public record ClientAddressDto(
String streetAddress,
String country,
String province,
String city,
String postalCode,
String businessPhone,
String email,
int index,
List<ClientContactDto> clientContactDtoList
) {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package ca.bc.gov.app.dto.client;

public record ClientBusinessTypeDto(String clientType){
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package ca.bc.gov.app.dto.client;

public record ClientContactDto(
String contactType,
String name,
String businessPhone,
String email,
int index
) {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package ca.bc.gov.app.dto.client;

public record ClientInformationDto(
String firstName,
String lastName,
String birthdate,
String incorporationNumber,
String doingBusinessAsName,
String businessName
) {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package ca.bc.gov.app.dto.client;

import java.util.List;

public record ClientLocationDto(List<ClientAddressDto> clientAddressDto) {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package ca.bc.gov.app.dto.client;

public record ClientSubmissionDto(
ClientBusinessTypeDto clientBusinessTypeDto,
ClientInformationDto clientInformationDto,
ClientLocationDto clientLocationDto
) {
}
Original file line number Diff line number Diff line change
@@ -1,37 +1,23 @@
package ca.bc.gov.app.entity.client;

import jakarta.validation.constraints.NotNull;
import java.time.LocalDate;
import java.time.LocalDateTime;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import org.springframework.data.relational.core.mapping.Column;

@SuperBuilder
@Data
@NoArgsConstructor
@AllArgsConstructor
public abstract class BaseEntity {

@NotNull
protected String description;

@NotNull
@Column("effective_date")
protected LocalDate effectiveAt;

@NotNull
@Column("expiry_date")
protected LocalDate expiredAt;

@Column("create_timestamp")
protected LocalDateTime createdAt;

@Column("update_timestamp")
protected LocalDateTime updatedAt;

@Column("create_user")
private String createdBy;
protected String createdBy;

@Column("update_user")
protected String updatedBy;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
@NoArgsConstructor
@AllArgsConstructor
@With
public class ClientTypeCodeEntity extends BaseEntity {
public class ClientTypeCodeEntity extends ExpirableBaseEntity {

@Id
@Column("client_type_code")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,23 @@
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.With;
import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Column;
import org.springframework.data.relational.core.mapping.Table;

@Table(name = "country_code", schema = ApplicationConstant.POSTGRES_ATTRIBUTE_SCHEMA)
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
@With
public class CountryCodeEntity extends BaseEntity {
public class CountryCodeEntity extends ExpirableBaseEntity {
@Id
@Column("country_code")
@NotNull
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package ca.bc.gov.app.entity.client;

import jakarta.validation.constraints.NotNull;
import java.time.LocalDate;
import java.time.LocalDateTime;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.SuperBuilder;
import org.springframework.data.relational.core.mapping.Column;

@SuperBuilder
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
public abstract class ExpirableBaseEntity extends BaseEntity {
@NotNull
protected String description;

@Column("create_timestamp")
protected LocalDateTime createdAt;

@NotNull
@Column("effective_date")
protected LocalDate effectiveAt;

@NotNull
@Column("expiry_date")
protected LocalDate expiredAt;
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,23 @@
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.With;
import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Column;
import org.springframework.data.relational.core.mapping.Table;

@Table(name = "province_code", schema = ApplicationConstant.POSTGRES_ATTRIBUTE_SCHEMA)
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
@With
public class ProvinceCodeEntity extends BaseEntity {
public class ProvinceCodeEntity extends ExpirableBaseEntity {

@Id
@Column("province_code")
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
package ca.bc.gov.app.entity.client;

import ca.bc.gov.app.ApplicationConstant;
import java.time.LocalDate;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.With;
import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Column;
import org.springframework.data.relational.core.mapping.Table;

@Table(name = "submission_detail", schema = ApplicationConstant.POSTGRES_ATTRIBUTE_SCHEMA)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@With
public class SubmissionDetailEntity {

@Id
@Column("submission_detail_id")
private Integer submissionDetailId;

@Column("submission_id")
private Integer submissionId;

@Column("incorporation_number")
private String incorporationNumber;

@Column("organization_name")
private String organizationName;

@Column("first_name")
private String firstName;

@Column("middle_name")
private String middleName;

@Column("last_name")
private String lastName;

@Column("client_type_code")
private String clientTypeCode;

@Column("date_of_birth")
private LocalDate dateOfBirth;

@Column("doing_business_as_ind")
private String doingBusinessAsInd;

@Column("doing_business_as_name")
private String doingBusinessAsName;

@Column("has_additional_location_ind")
private String hasAdditionalLocationInd;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package ca.bc.gov.app.entity.client;

import ca.bc.gov.app.ApplicationConstant;
import ca.bc.gov.app.models.client.SubmissionStatusEnum;
import java.time.LocalDateTime;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.With;
import lombok.experimental.SuperBuilder;
import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Column;
import org.springframework.data.relational.core.mapping.Table;

@Table(name = "submission", schema = ApplicationConstant.POSTGRES_ATTRIBUTE_SCHEMA)
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@With
public class SubmissionEntity extends BaseEntity {
@Id
@Column("submission_id")
private Integer submissionId;

@Column("submitter_user_guid")
private String submitterUserId;

@Column("submission_status_code")
private SubmissionStatusEnum submissionStatus;

@Column("submission_date")
@Builder.Default
private LocalDateTime submissionDate = LocalDateTime.now();

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package ca.bc.gov.app.entity.client;

import ca.bc.gov.app.ApplicationConstant;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.With;
import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Column;
import org.springframework.data.relational.core.mapping.Table;

@Table(name = "submission_location_contact", schema = ApplicationConstant.POSTGRES_ATTRIBUTE_SCHEMA)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@With
public class SubmissionLocationContactEntity {
@Id
@Column("submission_location_id")
private Integer submissionLocationContactId;

@Column("submission_location_id")
private Integer submissionLocationId;

@Column("name_department")
private String nameDepartment;

@Column("contact_type_code")
private String contactTypeCode;

@Column("business_phone_number")
private String businessPhoneNumber;

@Column("email_address")
private String emailAddress;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
package ca.bc.gov.app.entity.client;

import ca.bc.gov.app.ApplicationConstant;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.With;
import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Column;
import org.springframework.data.relational.core.mapping.Table;

@Table(name = "submission_location", schema = ApplicationConstant.POSTGRES_ATTRIBUTE_SCHEMA)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@With
public class SubmissionLocationEntity {
@Id
@Column("submission_location_id")
private Integer submissionLocationId;

@Column("submission_id")
private Integer submissionId;

@Column("street_address")
private String streetAddress;

@Column("country_code")
private String countryCode;

@Column("province_code")
private String provinceCode;

@Column("city_name")
private String cityName;

@Column("postal_code")
private String postalCode;

@Column("business_phone_number")
private String businessPhoneNumber;

@Column("email_address")
private String emailAddress;

@Column("main_address_ind")
private String mainAddressInd;
}
Loading