From 126c8e0cb0669eca713bc4a2ac228b04a562427c Mon Sep 17 00:00:00 2001
From: Universall <universall@server.com>
Date: Tue, 18 Feb 2025 19:00:29 +0300
Subject: [PATCH] [TEMP] Code entity

---
 .../components/auth/models/code/CodeDTO.java  | 10 +++++++
 .../auth/models/code/CodeMapper.java          | 26 +++++++++++++++++++
 .../auth/models/code/CodeModel.java           | 22 ++++++++++++++++
 .../auth/models/code/CodeRepository.java      |  6 +++++
 .../auth/models/code/service/CodeService.java |  9 +++++++
 .../models/code/service/CodeServiceImpl.java  | 23 ++++++++++++++++
 .../acss/controllers/acs/ACSController.java   | 13 ++++++++++
 .../acss/controllers/user/UserController.java |  5 ++++
 src/main/resources/application.properties     |  2 +-
 .../resources/db/changelog/01/0001-users.xml  |  2 +-
 .../resources/db/changelog/01/0002-roles.xml  |  2 +-
 .../db/changelog/01/0003-user_roles.xml       |  2 +-
 .../resources/db/changelog/01/0004-codes.xml  | 17 ++++++++++++
 .../db/changelog/data/0001-user-data.xml      |  2 +-
 .../db/changelog/data/0002-roles-data.xml     |  2 +-
 .../changelog/data/0003-user_roles-data.xml   |  2 +-
 .../db/changelog/data/0004-codes-data.xml     |  9 +++++++
 .../db/changelog/data/csv/0004-codes-data.csv |  5 ++++
 18 files changed, 152 insertions(+), 7 deletions(-)
 create mode 100644 src/main/java/com/displaynone/acss/components/auth/models/code/CodeDTO.java
 create mode 100644 src/main/java/com/displaynone/acss/components/auth/models/code/CodeMapper.java
 create mode 100644 src/main/java/com/displaynone/acss/components/auth/models/code/CodeModel.java
 create mode 100644 src/main/java/com/displaynone/acss/components/auth/models/code/CodeRepository.java
 create mode 100644 src/main/java/com/displaynone/acss/components/auth/models/code/service/CodeService.java
 create mode 100644 src/main/java/com/displaynone/acss/components/auth/models/code/service/CodeServiceImpl.java
 create mode 100644 src/main/java/com/displaynone/acss/controllers/acs/ACSController.java
 create mode 100644 src/main/resources/db/changelog/01/0004-codes.xml
 create mode 100644 src/main/resources/db/changelog/data/0004-codes-data.xml
 create mode 100644 src/main/resources/db/changelog/data/csv/0004-codes-data.csv

diff --git a/src/main/java/com/displaynone/acss/components/auth/models/code/CodeDTO.java b/src/main/java/com/displaynone/acss/components/auth/models/code/CodeDTO.java
new file mode 100644
index 0000000..50253bf
--- /dev/null
+++ b/src/main/java/com/displaynone/acss/components/auth/models/code/CodeDTO.java
@@ -0,0 +1,10 @@
+package com.displaynone.acss.components.auth.models.code;
+
+import lombok.Data;
+
+
+@Data
+public class CodeDTO {
+    private Long id;
+    private Long value;
+}
diff --git a/src/main/java/com/displaynone/acss/components/auth/models/code/CodeMapper.java b/src/main/java/com/displaynone/acss/components/auth/models/code/CodeMapper.java
new file mode 100644
index 0000000..243d166
--- /dev/null
+++ b/src/main/java/com/displaynone/acss/components/auth/models/code/CodeMapper.java
@@ -0,0 +1,26 @@
+package com.displaynone.acss.components.auth.models.code;
+
+import com.displaynone.acss.components.auth.models.role.RoleDTO;
+import com.displaynone.acss.components.auth.models.role.RoleMapper;
+import com.displaynone.acss.components.auth.models.role.RoleModel;
+import com.displaynone.acss.utils.GlobalUtils;
+import lombok.experimental.UtilityClass;
+
+import java.util.Collection;
+import java.util.List;
+
+@UtilityClass
+public class CodeMapper {
+    public CodeDTO convertToDTO(CodeModel model) {
+        CodeDTO dto = new CodeDTO();
+
+        dto.setId(model.getId());
+        dto.setValue(model.getValue());
+
+        return dto;
+    }
+
+    public List<RoleDTO> convertAllToDTO(Collection<RoleModel> models) {
+        return GlobalUtils.convertAllToDTO(models, RoleMapper::convertToDTO);
+    }
+}
diff --git a/src/main/java/com/displaynone/acss/components/auth/models/code/CodeModel.java b/src/main/java/com/displaynone/acss/components/auth/models/code/CodeModel.java
new file mode 100644
index 0000000..dcfa0f1
--- /dev/null
+++ b/src/main/java/com/displaynone/acss/components/auth/models/code/CodeModel.java
@@ -0,0 +1,22 @@
+package com.displaynone.acss.components.auth.models.code;
+
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Entity
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class CodeModel {
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private long id;
+    private long value;
+}
\ No newline at end of file
diff --git a/src/main/java/com/displaynone/acss/components/auth/models/code/CodeRepository.java b/src/main/java/com/displaynone/acss/components/auth/models/code/CodeRepository.java
new file mode 100644
index 0000000..f131a1d
--- /dev/null
+++ b/src/main/java/com/displaynone/acss/components/auth/models/code/CodeRepository.java
@@ -0,0 +1,6 @@
+package com.displaynone.acss.components.auth.models.code;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+
+public interface CodeRepository extends JpaRepository<CodeModel, Long> {
+}
diff --git a/src/main/java/com/displaynone/acss/components/auth/models/code/service/CodeService.java b/src/main/java/com/displaynone/acss/components/auth/models/code/service/CodeService.java
new file mode 100644
index 0000000..71f35bb
--- /dev/null
+++ b/src/main/java/com/displaynone/acss/components/auth/models/code/service/CodeService.java
@@ -0,0 +1,9 @@
+package com.displaynone.acss.components.auth.models.code.service;
+
+import com.displaynone.acss.components.auth.models.code.CodeModel;
+
+public interface CodeService {
+    CodeModel getCodeByValue(Long value);
+
+    boolean isValid(Long code);
+}
diff --git a/src/main/java/com/displaynone/acss/components/auth/models/code/service/CodeServiceImpl.java b/src/main/java/com/displaynone/acss/components/auth/models/code/service/CodeServiceImpl.java
new file mode 100644
index 0000000..a6945e5
--- /dev/null
+++ b/src/main/java/com/displaynone/acss/components/auth/models/code/service/CodeServiceImpl.java
@@ -0,0 +1,23 @@
+package com.displaynone.acss.components.auth.models.code.service;
+
+import com.displaynone.acss.components.auth.models.code.CodeModel;
+import com.displaynone.acss.components.auth.models.code.CodeRepository;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Component;
+
+
+@Component
+@RequiredArgsConstructor
+public class CodeServiceImpl implements CodeService {
+    private final CodeRepository codeRepository;
+
+    @Override
+    public CodeModel getCodeByValue(Long value) {
+        return null;
+    }
+
+    @Override
+    public boolean isValid(Long code) {
+        return false;
+    }
+}
diff --git a/src/main/java/com/displaynone/acss/controllers/acs/ACSController.java b/src/main/java/com/displaynone/acss/controllers/acs/ACSController.java
new file mode 100644
index 0000000..8210759
--- /dev/null
+++ b/src/main/java/com/displaynone/acss/controllers/acs/ACSController.java
@@ -0,0 +1,13 @@
+package com.displaynone.acss.controllers.acs;
+
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/api/acs")
+public class ACSController {
+    @PostMapping("/open")
+    public ResponseEntity<Void> open() {}
+}
diff --git a/src/main/java/com/displaynone/acss/controllers/user/UserController.java b/src/main/java/com/displaynone/acss/controllers/user/UserController.java
index 9c37bcc..071442a 100644
--- a/src/main/java/com/displaynone/acss/controllers/user/UserController.java
+++ b/src/main/java/com/displaynone/acss/controllers/user/UserController.java
@@ -17,4 +17,9 @@ public class UserController {
         UserModel user = (UserModel) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
         return ResponseEntity.ok(UserMapper.convertToDTO(user));
     }
+
+    @GetMapping("/login/{login}")
+    public ResponseEntity<UserDTO> getUserByLogin() {
+        // TODO
+    }
 }
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 3f4d95a..8ed8610 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -1,4 +1,4 @@
-server.port=8080
+server.port=8085
 
 spring.application.name=ACSS
 
diff --git a/src/main/resources/db/changelog/01/0001-users.xml b/src/main/resources/db/changelog/01/0001-users.xml
index e0f7929..cdaf877 100644
--- a/src/main/resources/db/changelog/01/0001-users.xml
+++ b/src/main/resources/db/changelog/01/0001-users.xml
@@ -4,7 +4,7 @@
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
         https://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.8.xsd">
-    <changeSet id="1" author="universall">
+    <changeSet id="users" author="universall">
         <createTable tableName="users">
             <column name="id" type="INTEGER" autoIncrement="true">
                 <constraints primaryKey="true"/>
diff --git a/src/main/resources/db/changelog/01/0002-roles.xml b/src/main/resources/db/changelog/01/0002-roles.xml
index 59dfc94..dc8fdce 100644
--- a/src/main/resources/db/changelog/01/0002-roles.xml
+++ b/src/main/resources/db/changelog/01/0002-roles.xml
@@ -4,7 +4,7 @@
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
         https://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.8.xsd">
-    <changeSet id="1" author="universall">
+    <changeSet id="roles" author="universall">
         <createTable tableName="roles">
             <column name="id" type="INTEGER" autoIncrement="true">
                 <constraints primaryKey="true"/>
diff --git a/src/main/resources/db/changelog/01/0003-user_roles.xml b/src/main/resources/db/changelog/01/0003-user_roles.xml
index e27e673..d002d59 100644
--- a/src/main/resources/db/changelog/01/0003-user_roles.xml
+++ b/src/main/resources/db/changelog/01/0003-user_roles.xml
@@ -4,7 +4,7 @@
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
         https://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.8.xsd">
-    <changeSet id="2" author="universall">
+    <changeSet id="user_roles" author="universall">
         <createTable tableName="user_roles">
             <column name="user_id" type="INTEGER">
                 <constraints nullable="false"/>
diff --git a/src/main/resources/db/changelog/01/0004-codes.xml b/src/main/resources/db/changelog/01/0004-codes.xml
new file mode 100644
index 0000000..c678ca2
--- /dev/null
+++ b/src/main/resources/db/changelog/01/0004-codes.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<databaseChangeLog
+        xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
+        https://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.8.xsd">
+    <changeSet id="codes" author="universall">
+        <createTable tableName="codes">
+            <column name="id" type="INTEGER" autoIncrement="true">
+                <constraints primaryKey="true"/>
+            </column>
+            <column name="value" type="INTEGER">
+                <constraints unique="true" nullable="false"/>
+            </column>
+        </createTable>
+    </changeSet>
+</databaseChangeLog>
diff --git a/src/main/resources/db/changelog/data/0001-user-data.xml b/src/main/resources/db/changelog/data/0001-user-data.xml
index cfe6654..cd89c56 100644
--- a/src/main/resources/db/changelog/data/0001-user-data.xml
+++ b/src/main/resources/db/changelog/data/0001-user-data.xml
@@ -3,7 +3,7 @@
         xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog https://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.0.xsd">
-    <changeSet id="0001-users-data" author="universall">
+    <changeSet id="users-data" author="universall">
         <loadData tableName="users" file="db/changelog/data/csv/0001-users-data.csv" separator=";" quotchar='"'/>
     </changeSet>
 </databaseChangeLog>
diff --git a/src/main/resources/db/changelog/data/0002-roles-data.xml b/src/main/resources/db/changelog/data/0002-roles-data.xml
index 9da2bf4..b5ee39c 100644
--- a/src/main/resources/db/changelog/data/0002-roles-data.xml
+++ b/src/main/resources/db/changelog/data/0002-roles-data.xml
@@ -3,7 +3,7 @@
         xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog https://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.0.xsd">
-    <changeSet id="0002-roles-data" author="universall">
+    <changeSet id="roles-data" author="universall">
         <loadData tableName="roles" file="db/changelog/data/csv/0002-roles-data.csv" separator=";" quotchar='"'/>
     </changeSet>
 </databaseChangeLog>
diff --git a/src/main/resources/db/changelog/data/0003-user_roles-data.xml b/src/main/resources/db/changelog/data/0003-user_roles-data.xml
index f2edbcb..55120eb 100644
--- a/src/main/resources/db/changelog/data/0003-user_roles-data.xml
+++ b/src/main/resources/db/changelog/data/0003-user_roles-data.xml
@@ -3,7 +3,7 @@
         xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog https://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.0.xsd">
-    <changeSet id="0002-user_roles-data" author="universall">
+    <changeSet id="user_roles-data" author="universall">
         <loadData tableName="user_roles" file="db/changelog/data/csv/0003-user_roles-data.csv" separator=";" quotchar='"'/>
     </changeSet>
 </databaseChangeLog>
diff --git a/src/main/resources/db/changelog/data/0004-codes-data.xml b/src/main/resources/db/changelog/data/0004-codes-data.xml
new file mode 100644
index 0000000..732da24
--- /dev/null
+++ b/src/main/resources/db/changelog/data/0004-codes-data.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<databaseChangeLog
+        xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog https://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.0.xsd">
+    <changeSet id="codes-data" author="universall">
+        <loadData tableName="codes" file="db/changelog/data/csv/0004-codes-data.csv" separator=";" quotchar='"'/>
+    </changeSet>
+</databaseChangeLog>
diff --git a/src/main/resources/db/changelog/data/csv/0004-codes-data.csv b/src/main/resources/db/changelog/data/csv/0004-codes-data.csv
new file mode 100644
index 0000000..c2aca49
--- /dev/null
+++ b/src/main/resources/db/changelog/data/csv/0004-codes-data.csv
@@ -0,0 +1,5 @@
+1;1234567890123456789
+2;9223372036854775807
+3;1122334455667788990
+4;998877665544332211
+5;5566778899001122334
\ No newline at end of file