Skip to content

Commit

Permalink
merged with main branch
Browse files Browse the repository at this point in the history
  • Loading branch information
DmytroV95 committed Oct 2, 2023
2 parents e9e4bef + 66b0218 commit dbf1616
Show file tree
Hide file tree
Showing 12 changed files with 216 additions and 23 deletions.
37 changes: 18 additions & 19 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -26,21 +26,21 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.liquibase</groupId>-->
<!-- <artifactId>liquibase-core</artifactId>-->
<!-- <version>${liquibase.version}</version>-->
<!-- </dependency>-->
<!-- <dependency>-->
<!-- <groupId>org.liquibase</groupId>-->
<!-- <artifactId>liquibase-maven-plugin</artifactId>-->
<!-- <version>${liquibase.version}</version>-->
<!-- </dependency>-->
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
<version>${liquibase.version}</version>
</dependency>
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>${liquibase.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
Expand All @@ -66,7 +66,6 @@
<artifactId>h2</artifactId>
<scope>test</scope>
</dependency>

</dependencies>

<build>
Expand All @@ -83,14 +82,14 @@
</excludes>
</configuration>
</plugin>
<!-- <plugin>-->
<!-- <groupId>org.liquibase</groupId>-->
<!-- <artifactId>liquibase-maven-plugin</artifactId>-->
<!-- <version>${liquibase.version}</version>-->
<!-- <configuration>-->
<!-- <propertyFile>src/main/resources/liquibase.properties</propertyFile>-->
<!-- </configuration>-->
<!-- </plugin>-->
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>${liquibase.version}</version>
<configuration>
<propertyFile>src/main/resources/liquibase.properties</propertyFile>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
Expand Down
25 changes: 25 additions & 0 deletions src/main/java/com/project/carsharingapp/model/Role.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package com.project.carsharingapp.model;

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.Table;
import lombok.Getter;
import lombok.Setter;

@Entity
@Setter
@Getter
@Table(name = "roles")
public class Role {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "name", nullable = false, unique = true)
@Enumerated(EnumType.STRING)
private RoleName roleName;
}
6 changes: 6 additions & 0 deletions src/main/java/com/project/carsharingapp/model/RoleName.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package com.project.carsharingapp.model;

public enum RoleName {
MANAGER,
CUSTOMER
}
46 changes: 46 additions & 0 deletions src/main/java/com/project/carsharingapp/model/User.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package com.project.carsharingapp.model;

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.JoinTable;
import jakarta.persistence.ManyToMany;
import jakarta.persistence.Table;
import java.util.HashSet;
import java.util.Set;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.annotations.SQLDelete;
import org.hibernate.annotations.Where;

@Entity
@Setter
@Getter
@SQLDelete(sql = "UPDATE users SET is_deleted = true WHERE id =?")
@Where(clause = "is_deleted=false")
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false, unique = true)
private String email;
@Column(nullable = false)
private String firstName;
@Column(nullable = false)
private String lastName;
@Column(nullable = false)
private String password;
private Long telegramChatId;
@Column(nullable = false)
@ManyToMany
@JoinTable(name = "user_roles",
joinColumns = @JoinColumn(name = "user_id"),
inverseJoinColumns = @JoinColumn(name = "role_id"))
private Set<Role> roles = new HashSet<>();
@Column(name = "is_deleted",nullable = false)
private boolean isDeleted = false;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.project.carsharingapp.repository;

import com.project.carsharingapp.model.Role;
import org.springframework.data.jpa.repository.JpaRepository;

public interface RoleRepository extends JpaRepository<Role, Long> {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.project.carsharingapp.repository;

import com.project.carsharingapp.model.User;
import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository<User, Long> {
}
8 changes: 4 additions & 4 deletions src/main/resources/application.properties
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#spring.datasource.url=jdbc:mysql://localhost:3306/car_sharing_db?serverTimezone=UTC
#spring.datasource.username=root
#spring.datasource.password=root123
#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/car_sharing_db?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root123
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

server.servlet.context-path=/api
spring.jpa.hibernate.ddl-auto=validate
Expand Down
21 changes: 21 additions & 0 deletions src/main/resources/db/changelog/changes/create-roles-table.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
databaseChangeLog:
- changeSet:
id: create-roles-table
author: osa
changes:
- createTable:
tableName: roles
columns:
- column:
name: id
type: bigint
autoIncrement: true
constraints:
primaryKey: true
nullable: false
- column:
name: name
type: varchar(255)
constraints:
unique: true
nullable: false
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
databaseChangeLog:
- changeSet:
id: create-user-role-table
author: osa
changes:
- createTable:
tableName: user_roles
columns:
- column:
name: user_id
type: bigint
constraints:
primaryKey: true
nullable: false
references: users(id)
foreignKeyName: fk_user_roles_user_id
- column:
name: role_id
type: bigint
constraints:
primaryKey: true
nullable: false
references: roles(id)
foreignKeyName: fk_user_roles_role_id
47 changes: 47 additions & 0 deletions src/main/resources/db/changelog/changes/create-users-table.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
databaseChangeLog:
- changeSet:
id: create-users-table
author: osa
changes:
- createTable:
tableName: users
columns:
- column:
name: id
type: bigint
autoIncrement: true
constraints:
primaryKey: true
nullable: false
- column:
name: email
type: varchar(255)
constraints:
nullable: false
unique: true
- column:
name: first_name
type: varchar(255)
constraints:
nullable: false
- column:
name: last_name
type: varchar(255)
constraints:
nullable: false
- column:
name: password
type: varchar(255)
constraints:
nullable: false
- column:
name: telegram_chat_id
type: bigint
constraints:
nullable: false
- column:
name: is_deleted
type: boolean
defaultValueBoolean: false
constraints:
nullable: false
7 changes: 7 additions & 0 deletions src/main/resources/db/changelog/db.changelog-master.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
databaseChangeLog:
- include:
file: db/changelog/changes/create-roles-table.yaml
- include:
file: /db/changelog/changes/create-users-table.yaml
- include:
file: /db/changelog/changes/create-user-roles-table.yaml
4 changes: 4 additions & 0 deletions src/main/resources/liquibase.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
url=jdbc:mysql://localhost:3306/car_sharing_db?serverTimezone=UTC
username=root
password=gjujlf123$_0
changeLogFile=/db.changelog/db.changelog-master.yaml

0 comments on commit dbf1616

Please sign in to comment.