From 3edb2cf1014b574757baf53d78039de3e80c5350 Mon Sep 17 00:00:00 2001 From: IndexZero Date: Wed, 19 Feb 2025 11:34:45 +0300 Subject: [PATCH] Added all EmployeeController requests, except registration. Fixed Entities and database relations Fixed door opening --- .../finals/config/SecurityConfig.java | 6 +- .../finals/controller/CodeController.java | 22 +++++ .../finals/controller/EmployeeController.java | 27 +++-- .../com/indexzero/finals/entity/Code.java | 4 +- .../com/indexzero/finals/entity/Employee.java | 14 ++- .../com/indexzero/finals/entity/Entrance.java | 34 +++++++ .../com/indexzero/finals/entity/Visit.java | 25 ----- .../finals/repository/EntranceRepository.java | 7 ++ .../finals/repository/VisitRepository.java | 7 -- .../finals/service/EmployeeService.java | 10 +- .../service/impl/EmployeeServiceImpl.java | 98 +++++++++++++++---- .../1.0/2024-10-20--0001-code.xml | 3 +- .../1.0/2024-10-20--0002-employee.xml | 4 + ...> 2025-02-18--0005-employee-entrances.xml} | 8 +- ...-02-18--0004-employee-authorities-data.xml | 2 +- ...5-02-18--0005-employee-entrances-data.xml} | 4 +- .../data/csv/2024-10-20--0001-code-data.csv | 12 +-- .../csv/2024-10-20--0002-employee-data.csv | 10 +- ...-02-18--0004-employee-authorities-data.csv | 8 +- ...25-02-18--0005-employee-entrances-data.csv | 2 + .../2025-02-18--0005-employee-visits-data.csv | 2 - .../db.changelog/db.changelog-master.xml | 4 +- 22 files changed, 220 insertions(+), 93 deletions(-) create mode 100644 src/main/java/com/indexzero/finals/controller/CodeController.java create mode 100644 src/main/java/com/indexzero/finals/entity/Entrance.java delete mode 100644 src/main/java/com/indexzero/finals/entity/Visit.java create mode 100644 src/main/java/com/indexzero/finals/repository/EntranceRepository.java delete mode 100644 src/main/java/com/indexzero/finals/repository/VisitRepository.java rename src/main/resources/db.changelog/1.0/{2025-02-18--0005-employee-visits.xml => 2025-02-18--0005-employee-entrances.xml} (86%) rename src/main/resources/db.changelog/data/{2025-02-18--0005-employee-visits-data.xml => 2025-02-18--0005-employee-entrances-data.xml} (76%) create mode 100644 src/main/resources/db.changelog/data/csv/2025-02-18--0005-employee-entrances-data.csv delete mode 100644 src/main/resources/db.changelog/data/csv/2025-02-18--0005-employee-visits-data.csv diff --git a/src/main/java/com/indexzero/finals/config/SecurityConfig.java b/src/main/java/com/indexzero/finals/config/SecurityConfig.java index d8f94e3..4a82be1 100644 --- a/src/main/java/com/indexzero/finals/config/SecurityConfig.java +++ b/src/main/java/com/indexzero/finals/config/SecurityConfig.java @@ -4,7 +4,6 @@ import com.indexzero.finals.service.impl.UserDetailsServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.http.HttpMethod; import org.springframework.security.authentication.AuthenticationProvider; import org.springframework.security.authentication.dao.DaoAuthenticationProvider; import org.springframework.security.config.Customizer; @@ -31,6 +30,11 @@ public class SecurityConfig { .requestMatchers("/v3/api-docs/**").permitAll() .requestMatchers("/api/employee/login").authenticated() .requestMatchers("/api/employee/profile").authenticated() + .requestMatchers("/api/employee/{login}/delete").hasAuthority("ADMIN") + .requestMatchers("/api/employee/{login}/{state}").hasAuthority("ADMIN") + .requestMatchers("/api/employee/all").hasAuthority("ADMIN") + .requestMatchers("/api/employee/{login}").hasAuthority("ADMIN") + .requestMatchers("/swagger-ui/**").permitAll() .anyRequest().authenticated() ) .httpBasic(Customizer.withDefaults()).csrf(csrf -> csrf diff --git a/src/main/java/com/indexzero/finals/controller/CodeController.java b/src/main/java/com/indexzero/finals/controller/CodeController.java new file mode 100644 index 0000000..bd99883 --- /dev/null +++ b/src/main/java/com/indexzero/finals/controller/CodeController.java @@ -0,0 +1,22 @@ +package com.indexzero.finals.controller; + +import com.indexzero.finals.entity.Entrance; +import com.indexzero.finals.repository.EntranceRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@RequestMapping("/api/entrance") +public class CodeController { + @Autowired + EntranceRepository visitRepository; + + @GetMapping + public List getVisits() { + return visitRepository.findAll(); + } +} diff --git a/src/main/java/com/indexzero/finals/controller/EmployeeController.java b/src/main/java/com/indexzero/finals/controller/EmployeeController.java index 76e2ce9..fbb935a 100644 --- a/src/main/java/com/indexzero/finals/controller/EmployeeController.java +++ b/src/main/java/com/indexzero/finals/controller/EmployeeController.java @@ -1,15 +1,10 @@ package com.indexzero.finals.controller; import com.indexzero.finals.dto.EmployeeDTO; -import com.indexzero.finals.entity.Code; -import com.indexzero.finals.entity.Employee; -import com.indexzero.finals.entity.Visit; -import com.indexzero.finals.repository.CodeRepository; -import com.indexzero.finals.repository.EmployeeRepository; -import com.indexzero.finals.repository.VisitRepository; import com.indexzero.finals.service.EmployeeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; +import org.springframework.http.HttpStatusCode; import org.springframework.http.ResponseEntity; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.web.bind.annotation.*; @@ -39,4 +34,24 @@ public class EmployeeController { return employeeService.openTheDoor(code, SecurityContextHolder.getContext().getAuthentication()); } + @DeleteMapping("/{login}/delete") + public ResponseEntity delete(@PathVariable String login) { + return employeeService.deleteEmployee(login); + } + + @PatchMapping("/{login}/{state}") + public ResponseEntity changeState(@PathVariable String login, @PathVariable String state) { + return employeeService.changeState(login, state); + } + + @GetMapping("/all") + public ResponseEntity> getAll() { + return employeeService.getAllEmployees(); + } + + @GetMapping("/{login}") + public ResponseEntity getEmployeeByLogin(@PathVariable String login) { + return employeeService.getEmployeeByLogin(login); + } + } diff --git a/src/main/java/com/indexzero/finals/entity/Code.java b/src/main/java/com/indexzero/finals/entity/Code.java index 522f065..648f567 100644 --- a/src/main/java/com/indexzero/finals/entity/Code.java +++ b/src/main/java/com/indexzero/finals/entity/Code.java @@ -20,6 +20,6 @@ public class Code { @Column(name = "value") private long value; - @Column(name = "is_active") - boolean isActive; + @Column(name = "name") + String name; } diff --git a/src/main/java/com/indexzero/finals/entity/Employee.java b/src/main/java/com/indexzero/finals/entity/Employee.java index 766fdb3..8460c74 100644 --- a/src/main/java/com/indexzero/finals/entity/Employee.java +++ b/src/main/java/com/indexzero/finals/entity/Employee.java @@ -7,8 +7,6 @@ import lombok.Data; import lombok.NoArgsConstructor; import org.springframework.security.core.userdetails.UserDetails; -import java.io.Serializable; -import java.time.LocalDateTime; import java.util.List; import java.util.Set; @@ -38,14 +36,22 @@ public class Employee implements UserDetails { @Column(name = "photo_url") private String photoUrl; + @Column(name = "is_enabled") + Boolean isEmpEnabled; + @ManyToMany(fetch = FetchType.EAGER) Set authorities; - @OneToMany(mappedBy = "id") - List visits; + @OneToMany(mappedBy = "id", cascade = CascadeType.ALL) + List entrances; @Override public String getUsername() { return this.login; } + + @Override + public boolean isEnabled() { + return isEmpEnabled; + } } diff --git a/src/main/java/com/indexzero/finals/entity/Entrance.java b/src/main/java/com/indexzero/finals/entity/Entrance.java new file mode 100644 index 0000000..62a7b82 --- /dev/null +++ b/src/main/java/com/indexzero/finals/entity/Entrance.java @@ -0,0 +1,34 @@ +package com.indexzero.finals.entity; + +import jakarta.persistence.*; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +@Entity +@Table(name = "employee_entrances") +public class Entrance { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private long id; + + @Column(name = "visit_time") + private LocalDateTime visitTime; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "employee_id", referencedColumnName = "id") + private Employee employee; + +// @OneToOne +// @JoinColumn(name = "employee_id", referencedColumnName = "id") +// private Employee employee; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "reader", referencedColumnName = "id") + private Code reader; + + @Column(name = "type") + private String type; + +} diff --git a/src/main/java/com/indexzero/finals/entity/Visit.java b/src/main/java/com/indexzero/finals/entity/Visit.java deleted file mode 100644 index 631b990..0000000 --- a/src/main/java/com/indexzero/finals/entity/Visit.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.indexzero.finals.entity; - -import jakarta.persistence.*; -import lombok.Data; -import org.apache.catalina.User; - -import java.time.LocalDateTime; -import java.util.Date; -import java.util.List; - -@Data -@Entity -@Table(name = "employee_visits") -public class Visit { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private long id; - - @Column(name = "visit_time") - private LocalDateTime visitTime; - - @Column(name = "type") - private String type; - -} diff --git a/src/main/java/com/indexzero/finals/repository/EntranceRepository.java b/src/main/java/com/indexzero/finals/repository/EntranceRepository.java new file mode 100644 index 0000000..62520f2 --- /dev/null +++ b/src/main/java/com/indexzero/finals/repository/EntranceRepository.java @@ -0,0 +1,7 @@ +package com.indexzero.finals.repository; + +import com.indexzero.finals.entity.Entrance; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface EntranceRepository extends JpaRepository { +} diff --git a/src/main/java/com/indexzero/finals/repository/VisitRepository.java b/src/main/java/com/indexzero/finals/repository/VisitRepository.java deleted file mode 100644 index 2d60020..0000000 --- a/src/main/java/com/indexzero/finals/repository/VisitRepository.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.indexzero.finals.repository; - -import com.indexzero.finals.entity.Visit; -import org.springframework.data.jpa.repository.JpaRepository; - -public interface VisitRepository extends JpaRepository { -} diff --git a/src/main/java/com/indexzero/finals/service/EmployeeService.java b/src/main/java/com/indexzero/finals/service/EmployeeService.java index dc45100..eea2c87 100644 --- a/src/main/java/com/indexzero/finals/service/EmployeeService.java +++ b/src/main/java/com/indexzero/finals/service/EmployeeService.java @@ -1,13 +1,19 @@ package com.indexzero.finals.service; import com.indexzero.finals.dto.EmployeeDTO; -import com.indexzero.finals.entity.Employee; -import org.apache.catalina.User; + +import org.springframework.http.HttpStatusCode; import org.springframework.http.ResponseEntity; import org.springframework.security.core.Authentication; +import java.util.List; + public interface EmployeeService { ResponseEntity checkIfUserExists(String login); ResponseEntity getUserInfo(Authentication auth); ResponseEntity openTheDoor(Long code, Authentication auth); + ResponseEntity deleteEmployee(String login); + ResponseEntity changeState(String login, String state); + ResponseEntity> getAllEmployees(); + ResponseEntity getEmployeeByLogin(String login); } diff --git a/src/main/java/com/indexzero/finals/service/impl/EmployeeServiceImpl.java b/src/main/java/com/indexzero/finals/service/impl/EmployeeServiceImpl.java index d17f3de..772ab5b 100644 --- a/src/main/java/com/indexzero/finals/service/impl/EmployeeServiceImpl.java +++ b/src/main/java/com/indexzero/finals/service/impl/EmployeeServiceImpl.java @@ -2,20 +2,23 @@ package com.indexzero.finals.service.impl; import com.indexzero.finals.dto.EmployeeDTO; import com.indexzero.finals.entity.Employee; -import com.indexzero.finals.entity.Visit; +import com.indexzero.finals.entity.Entrance; import com.indexzero.finals.repository.CodeRepository; import com.indexzero.finals.repository.EmployeeRepository; +import com.indexzero.finals.repository.EntranceRepository; import com.indexzero.finals.service.EmployeeService; import com.indexzero.finals.util.EmployeeMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; +import org.springframework.http.HttpStatusCode; import org.springframework.http.ResponseEntity; import org.springframework.security.core.Authentication; import org.springframework.stereotype.Service; import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; @Service public class EmployeeServiceImpl implements EmployeeService { @@ -24,6 +27,8 @@ public class EmployeeServiceImpl implements EmployeeService { @Autowired CodeRepository codeRepository; + @Autowired + private EntranceRepository entranceRepository; public ResponseEntity checkIfUserExists(String login) { try { @@ -46,34 +51,89 @@ public class EmployeeServiceImpl implements EmployeeService { public ResponseEntity openTheDoor(Long code, Authentication auth) { try { - if(codeRepository.findByValue(code).isActive()) { - if (codeRepository.existsByValue(Long.valueOf(code))) { - Employee employee = employeeRepository.findByLogin(auth.getName()); + if (codeRepository.existsByValue(Long.valueOf(code))) { + Employee employee = employeeRepository.findByLogin(auth.getName()); + Entrance entrance = new Entrance(); - Visit visit = new Visit(); + entrance.setVisitTime(LocalDateTime.now()); + entrance.setReader(codeRepository.findByValue(code)); + entrance.setType("smartphone"); + entrance.setEmployee(employee); - LocalDateTime time = LocalDateTime.now(); - visit.setVisitTime(LocalDateTime.now()); - visit.setType("smartphone"); + entranceRepository.save(entrance); - List v = employee.getVisits(); - v.add(visit); + // employeeRepository.save(employee); - employee.setVisits(v); - - employeeRepository.save(employee); - return new ResponseEntity<>(HttpStatus.OK); - } - else { - return new ResponseEntity<>(HttpStatus.UNAUTHORIZED); - } + return new ResponseEntity<>(HttpStatus.OK); } else { return new ResponseEntity<>(HttpStatus.UNAUTHORIZED); } } catch(Exception e) { + System.out.println(e.getMessage()); return new ResponseEntity<>(HttpStatus.BAD_REQUEST); } } + + @Override + public ResponseEntity deleteEmployee(String login) { + Employee e = employeeRepository.findByLogin(login); + if(e != null) { + if (Objects.equals(e.getAuthorities().iterator().next().getAuthority(), "ADMIN")) { + return new ResponseEntity<>(HttpStatus.UNAUTHORIZED); + } + else { + employeeRepository.delete(e); + return new ResponseEntity<>(HttpStatus.OK); + } + } + else { + return new ResponseEntity<>(HttpStatus.NOT_FOUND); + } + } + + @Override + public ResponseEntity changeState(String login, String state) { + Employee e = employeeRepository.findByLogin(login); + if(e != null) { + if (Objects.equals(e.getAuthorities().iterator().next().getAuthority(), "ADMIN")) { + return new ResponseEntity<>(HttpStatus.UNAUTHORIZED); + } + else { + if(state.equals("active")) { + e.setIsEmpEnabled(true); + employeeRepository.save(e); + return new ResponseEntity<>(HttpStatus.OK); + } + else if(state.equals("blocked")) { + e.setIsEmpEnabled(false); + employeeRepository.save(e); + return new ResponseEntity<>(HttpStatus.OK); + } + else { + return new ResponseEntity<>(HttpStatus.BAD_REQUEST); + } + } + } + else { + return new ResponseEntity<>(HttpStatus.NOT_FOUND); + } + } + + @Override + public ResponseEntity> getAllEmployees() { + return new ResponseEntity<>(employeeRepository.findAll().stream().map(EmployeeMapper::convertToDTO).collect(Collectors.toList()), HttpStatus.OK); + } + + @Override + public ResponseEntity getEmployeeByLogin(String login) { + Employee e = employeeRepository.findByLogin(login); + if(e != null) { + return new ResponseEntity<>(EmployeeMapper.convertToDTO(e), HttpStatus.OK); + } + else { + return new ResponseEntity<>(HttpStatus.NOT_FOUND); + } + } } diff --git a/src/main/resources/db.changelog/1.0/2024-10-20--0001-code.xml b/src/main/resources/db.changelog/1.0/2024-10-20--0001-code.xml index 0ff4fbf..714d4fd 100644 --- a/src/main/resources/db.changelog/1.0/2024-10-20--0001-code.xml +++ b/src/main/resources/db.changelog/1.0/2024-10-20--0001-code.xml @@ -23,7 +23,8 @@ - + + diff --git a/src/main/resources/db.changelog/1.0/2024-10-20--0002-employee.xml b/src/main/resources/db.changelog/1.0/2024-10-20--0002-employee.xml index 114d118..a0b0f98 100644 --- a/src/main/resources/db.changelog/1.0/2024-10-20--0002-employee.xml +++ b/src/main/resources/db.changelog/1.0/2024-10-20--0002-employee.xml @@ -38,6 +38,10 @@ + + + + diff --git a/src/main/resources/db.changelog/1.0/2025-02-18--0005-employee-visits.xml b/src/main/resources/db.changelog/1.0/2025-02-18--0005-employee-entrances.xml similarity index 86% rename from src/main/resources/db.changelog/1.0/2025-02-18--0005-employee-visits.xml rename to src/main/resources/db.changelog/1.0/2025-02-18--0005-employee-entrances.xml index 2c9d0e4..68529f9 100644 --- a/src/main/resources/db.changelog/1.0/2025-02-18--0005-employee-visits.xml +++ b/src/main/resources/db.changelog/1.0/2025-02-18--0005-employee-entrances.xml @@ -5,19 +5,19 @@ xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.0.xsd http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd"> - + - + - + - + diff --git a/src/main/resources/db.changelog/data/2025-02-18--0004-employee-authorities-data.xml b/src/main/resources/db.changelog/data/2025-02-18--0004-employee-authorities-data.xml index 65b3590..a3984f0 100644 --- a/src/main/resources/db.changelog/data/2025-02-18--0004-employee-authorities-data.xml +++ b/src/main/resources/db.changelog/data/2025-02-18--0004-employee-authorities-data.xml @@ -5,7 +5,7 @@ xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.0.xsd http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd"> - + - - + diff --git a/src/main/resources/db.changelog/data/csv/2024-10-20--0001-code-data.csv b/src/main/resources/db.changelog/data/csv/2024-10-20--0001-code-data.csv index f33cd5d..7b0f4e9 100644 --- a/src/main/resources/db.changelog/data/csv/2024-10-20--0001-code-data.csv +++ b/src/main/resources/db.changelog/data/csv/2024-10-20--0001-code-data.csv @@ -1,6 +1,6 @@ -id;value;is_active -1;1234567890123456789;true -2;9223372036854775807;true -3;1122334455667788990;false -4;998877665544332211;false -5;5566778899001122334;true \ No newline at end of file +id;value;name +1;1234567890123456789;Главный Вход +2;9223372036854775807;Задний Вход +3;1122334455667788990;Вход с парковки +4;998877665544332211;Вход с улицы Колатушкина +5;5566778899001122334;Вход с улицы Пушкина \ No newline at end of file diff --git a/src/main/resources/db.changelog/data/csv/2024-10-20--0002-employee-data.csv b/src/main/resources/db.changelog/data/csv/2024-10-20--0002-employee-data.csv index dc1b34d..a9cb984 100644 --- a/src/main/resources/db.changelog/data/csv/2024-10-20--0002-employee-data.csv +++ b/src/main/resources/db.changelog/data/csv/2024-10-20--0002-employee-data.csv @@ -1,5 +1,5 @@ -login;password;name;photo_url;position -pivanov;$2a$10$Jzb9I5eeHC0UIn/q5Rhq..wkI7KicBEZKB2u5BvnH8.n12d4alTOK;Иванов Петр Федорович;https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg;Разработчик -ipetrov;$2a$10$Jzb9I5eeHC0UIn/q5Rhq..wkI7KicBEZKB2u5BvnH8.n12d4alTOK;Петров Иван Константинович;https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg;Аналитик -asemenov;$2a$10$Jzb9I5eeHC0UIn/q5Rhq..wkI7KicBEZKB2u5BvnH8.n12d4alTOK;Семенов Анатолий Анатольевич;https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg;Разработчик -afedorov;$2a$10$Jzb9I5eeHC0UIn/q5Rhq..wkI7KicBEZKB2u5BvnH8.n12d4alTOK;Федоров Александр Сергеевич;https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg;Тестировщик \ No newline at end of file +login;password;name;photo_url;position;is_enabled +pivanov;$2a$10$Jzb9I5eeHC0UIn/q5Rhq..wkI7KicBEZKB2u5BvnH8.n12d4alTOK;Иванов Петр Федорович;https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg;Разработчик;true +ipetrov;$2a$10$Jzb9I5eeHC0UIn/q5Rhq..wkI7KicBEZKB2u5BvnH8.n12d4alTOK;Петров Иван Константинович;https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg;Аналитик;false +asemenov;$2a$10$Jzb9I5eeHC0UIn/q5Rhq..wkI7KicBEZKB2u5BvnH8.n12d4alTOK;Семенов Анатолий Анатольевич;https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg;Разработчик;true +afedorov;$2a$10$Jzb9I5eeHC0UIn/q5Rhq..wkI7KicBEZKB2u5BvnH8.n12d4alTOK;Федоров Александр Сергеевич;https://funnyducks.ru/upload/iblock/0cd/0cdeb7ec3ed6fddda0f90fccee05557d.jpg;Тестировщик;true \ No newline at end of file diff --git a/src/main/resources/db.changelog/data/csv/2025-02-18--0004-employee-authorities-data.csv b/src/main/resources/db.changelog/data/csv/2025-02-18--0004-employee-authorities-data.csv index e5329ab..3cb2443 100644 --- a/src/main/resources/db.changelog/data/csv/2025-02-18--0004-employee-authorities-data.csv +++ b/src/main/resources/db.changelog/data/csv/2025-02-18--0004-employee-authorities-data.csv @@ -1,5 +1,5 @@ employee_id;authorities_id -1;1 -2;2 -3;2 -4;2 \ No newline at end of file +1;2 +2;1 +3;1 +4;1 \ No newline at end of file diff --git a/src/main/resources/db.changelog/data/csv/2025-02-18--0005-employee-entrances-data.csv b/src/main/resources/db.changelog/data/csv/2025-02-18--0005-employee-entrances-data.csv new file mode 100644 index 0000000..57aedb0 --- /dev/null +++ b/src/main/resources/db.changelog/data/csv/2025-02-18--0005-employee-entrances-data.csv @@ -0,0 +1,2 @@ +employee_id;visit_time;reader;type +1;2024-02-12T08:30:00;1;smartphone \ No newline at end of file diff --git a/src/main/resources/db.changelog/data/csv/2025-02-18--0005-employee-visits-data.csv b/src/main/resources/db.changelog/data/csv/2025-02-18--0005-employee-visits-data.csv deleted file mode 100644 index 9430089..0000000 --- a/src/main/resources/db.changelog/data/csv/2025-02-18--0005-employee-visits-data.csv +++ /dev/null @@ -1,2 +0,0 @@ -user_id;visit_time;reader;type -1;2024-02-12T08:30:00;1;smartphone \ No newline at end of file diff --git a/src/main/resources/db.changelog/db.changelog-master.xml b/src/main/resources/db.changelog/db.changelog-master.xml index d6c56ba..5df2d13 100644 --- a/src/main/resources/db.changelog/db.changelog-master.xml +++ b/src/main/resources/db.changelog/db.changelog-master.xml @@ -8,12 +8,12 @@ - + - + \ No newline at end of file