Refactor ContactRequest to separate date and time fields, add Flyway for database migrations, and initialize schema.
This commit is contained in:
@@ -54,10 +54,10 @@
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<!-- <plugin>-->
|
||||
<!-- <groupId>org.springframework.boot</groupId>-->
|
||||
<!-- <artifactId>spring-boot-maven-plugin</artifactId>-->
|
||||
<!-- </plugin>-->
|
||||
<!-- <plugin>-->
|
||||
<!-- <groupId>org.springframework.boot</groupId>-->
|
||||
<!-- <artifactId>spring-boot-maven-plugin</artifactId>-->
|
||||
<!-- </plugin>-->
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
@@ -92,6 +92,10 @@
|
||||
<groupId>org.postgresql</groupId>
|
||||
<artifactId>postgresql</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.flywaydb</groupId>
|
||||
<artifactId>flyway-database-postgresql</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>dev.rheinsw</groupId>
|
||||
|
||||
@@ -11,7 +11,8 @@ import jakarta.validation.constraints.Size;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalTime;
|
||||
|
||||
/**
|
||||
* @author Thatsaphorn Atchariyaphap
|
||||
@@ -51,7 +52,11 @@ public class ContactRequest {
|
||||
@Column(name = "captcha_token", length = 1024)
|
||||
private String captchaToken;
|
||||
|
||||
private LocalDateTime submittedAt;
|
||||
@Column(name = "submitted_date")
|
||||
private LocalDate submittedDate;
|
||||
|
||||
@Column(name = "submitted_time")
|
||||
private LocalTime submittedTime;
|
||||
|
||||
public ContactRequest setName(String name) {
|
||||
this.name = name;
|
||||
@@ -88,8 +93,13 @@ public class ContactRequest {
|
||||
return this;
|
||||
}
|
||||
|
||||
public ContactRequest setSubmittedAt(LocalDateTime submittedAt) {
|
||||
this.submittedAt = submittedAt;
|
||||
public ContactRequest setSubmittedDate(LocalDate submittedDate) {
|
||||
this.submittedDate = submittedDate;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
public ContactRequest setSubmittedTime(LocalTime submittedTime) {
|
||||
this.submittedTime = submittedTime;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -15,7 +15,8 @@ import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalTime;
|
||||
|
||||
/**
|
||||
* @author Thatsaphorn Atchariyaphap
|
||||
@@ -65,7 +66,8 @@ public class SubmitContactUseCaseImpl implements SubmitContactUseCase {
|
||||
.setPhone(request.phone())
|
||||
.setWebsite(request.website())
|
||||
.setCaptchaToken(request.captcha())
|
||||
.setSubmittedAt(LocalDateTime.now());
|
||||
.setSubmittedDate(LocalDate.now())
|
||||
.setSubmittedTime(LocalTime.now());
|
||||
|
||||
contactRepository.save(message);
|
||||
|
||||
|
||||
@@ -9,13 +9,19 @@ spring:
|
||||
username: ${DB_USERNAME}
|
||||
password: ${DB_PASSWORD}
|
||||
|
||||
flyway:
|
||||
enabled: true
|
||||
baseline-on-migrate: true
|
||||
locations: classpath:db/migration
|
||||
|
||||
jpa:
|
||||
hibernate:
|
||||
ddl-auto: none
|
||||
ddl-auto: none # ensure entities match the DB, but don't modify schema
|
||||
show-sql: true
|
||||
properties:
|
||||
hibernate:
|
||||
format_sql: true
|
||||
dialect: org.hibernate.dialect.PostgreSQLDialect
|
||||
defer-datasource-initialization: true
|
||||
|
||||
mail:
|
||||
host: smtp.resend.com
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
create table api_key
|
||||
(
|
||||
id bigint generated by default as identity
|
||||
constraint pk_api_key
|
||||
primary key,
|
||||
key varchar(255) not null
|
||||
constraint uc_api_key_key
|
||||
unique,
|
||||
type varchar(255) not null,
|
||||
enabled boolean not null,
|
||||
frontend_only boolean not null,
|
||||
description text,
|
||||
created_date date default CURRENT_DATE,
|
||||
created_time time default CURRENT_TIME,
|
||||
modified_date date,
|
||||
modified_time time
|
||||
);
|
||||
|
||||
CREATE TABLE contact_requests
|
||||
(
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
name VARCHAR(100),
|
||||
email VARCHAR(100),
|
||||
message VARCHAR(1000),
|
||||
company VARCHAR(100),
|
||||
phone VARCHAR(20),
|
||||
website VARCHAR(100),
|
||||
captcha_token VARCHAR(1024),
|
||||
submitted_date DATE,
|
||||
submitted_time TIME
|
||||
);
|
||||
Reference in New Issue
Block a user