diff --git a/core/pom.xml b/core/pom.xml index d7d561c2d823a2610faeca705190015161c26a71..6bb308682acd979bbb40c1ac857390da9efaaddf 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -4,17 +4,55 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>smart-energy-management-system</artifactId> - <groupId>cz.fi.muni.pa165</groupId> + <groupId>cz.muni.fi.pa165</groupId> <version>0.0.1-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> - <artifactId>core</artifactId> - + <name>core</name> + <description>Core application for smart energy management system</description> + <dependencies> + <dependency> + <groupId>cz.muni.fi.pa165</groupId> + <artifactId>model</artifactId> + <version>0.0.1-SNAPSHOT</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>com.h2database</groupId> + <artifactId>h2</artifactId> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-web</artifactId> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-data-jpa</artifactId> + </dependency> + <dependency> + <groupId>org.mapstruct</groupId> + <artifactId>mapstruct</artifactId> + <version>1.5.3.Final</version> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-test</artifactId> + <scope>test</scope> + </dependency> + </dependencies> <properties> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> - + <build> + <plugins> + <plugin> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-maven-plugin</artifactId> + </plugin> + </plugins> + </build> </project> \ No newline at end of file diff --git a/core/src/main/java/cz/fi/muni/pa165/core/user/.gitkeep b/core/src/main/java/cz/fi/muni/pa165/core/user/.gitkeep deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/core/src/main/java/cz/fi/muni/pa165/core/CoreApplication.java b/core/src/main/java/cz/muni/fi/pa165/core/CoreApplication.java similarity index 90% rename from core/src/main/java/cz/fi/muni/pa165/core/CoreApplication.java rename to core/src/main/java/cz/muni/fi/pa165/core/CoreApplication.java index 8d64445ba5b8251297cd4b9d6e938f19ab97acc1..f76cdbebeff0bbff160603daf449394bbaa0a5be 100644 --- a/core/src/main/java/cz/fi/muni/pa165/core/CoreApplication.java +++ b/core/src/main/java/cz/muni/fi/pa165/core/CoreApplication.java @@ -1,4 +1,4 @@ -package cz.fi.muni.pa165.core; +package cz.muni.fi.pa165.core; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; diff --git a/core/src/main/java/cz/muni/fi/pa165/core/DataInitializer.java b/core/src/main/java/cz/muni/fi/pa165/core/DataInitializer.java new file mode 100644 index 0000000000000000000000000000000000000000..8a13146a76d4e0c8feb1334556f7b0311d67c032 --- /dev/null +++ b/core/src/main/java/cz/muni/fi/pa165/core/DataInitializer.java @@ -0,0 +1,29 @@ +package cz.muni.fi.pa165.core; + +import cz.muni.fi.pa165.core.user.User; +import cz.muni.fi.pa165.core.user.UserService; +import cz.muni.fi.pa165.core.user.UserType; +import lombok.RequiredArgsConstructor; +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; +import org.springframework.stereotype.Component; + +@RequiredArgsConstructor +@Component +public class DataInitializer implements ApplicationRunner { + private final UserService userService; + + @Override + public void run(ApplicationArguments args) throws Exception { + User user = User.builder() + .email("test@email.com") + .firstName("John") + .lastName("Doe") + .username("johnD") + .password("password") + .userType(UserType.ADMIN) + .build(); + userService.create(user); + + } +} diff --git a/core/src/main/java/cz/muni/fi/pa165/core/common/DomainMapper.java b/core/src/main/java/cz/muni/fi/pa165/core/common/DomainMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..099ae1a88796b382d0e571899f3faea7375eeb37 --- /dev/null +++ b/core/src/main/java/cz/muni/fi/pa165/core/common/DomainMapper.java @@ -0,0 +1,24 @@ +package cz.muni.fi.pa165.core.common; + +import cz.muni.fi.pa165.model.dto.common.DomainObjectDto; + +import java.util.List; + +public interface DomainMapper<T extends DomainObject, S extends DomainObjectDto> { + + T fromDto(S dto); + + S toDto(T entity); + + List<S> toDtoList(List<T> entities); + + /* + @Mappings({ + @Mapping(target = "total", expression = "java(source.getTotalElements())"), + @Mapping(target = "page", expression = "java(source.getNumber())"), + @Mapping(target = "pageSize", expression = "java(source.getSize())"), + @Mapping(target = "items", expression = "java(toDtoList(source.getContent()))") + }) + Result<S> toResult(Page<T> source); + */ +} diff --git a/core/src/main/java/cz/muni/fi/pa165/core/common/DomainObject.java b/core/src/main/java/cz/muni/fi/pa165/core/common/DomainObject.java new file mode 100644 index 0000000000000000000000000000000000000000..f49c03554e7f5d895dadb8f3683c73c5d72d2d88 --- /dev/null +++ b/core/src/main/java/cz/muni/fi/pa165/core/common/DomainObject.java @@ -0,0 +1,17 @@ +package cz.muni.fi.pa165.core.common; + +import jakarta.persistence.Id; +import jakarta.persistence.MappedSuperclass; +import lombok.Getter; +import lombok.Setter; + +import java.util.UUID; + +@Getter +@Setter +@MappedSuperclass +public abstract class DomainObject { + + @Id + private String id = UUID.randomUUID().toString(); +} diff --git a/core/src/main/java/cz/muni/fi/pa165/core/common/DomainService.java b/core/src/main/java/cz/muni/fi/pa165/core/common/DomainService.java new file mode 100644 index 0000000000000000000000000000000000000000..2d094024cdfc6f863685f1d332e5e3613a4a4908 --- /dev/null +++ b/core/src/main/java/cz/muni/fi/pa165/core/common/DomainService.java @@ -0,0 +1,30 @@ +package cz.muni.fi.pa165.core.common; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.transaction.annotation.Transactional; + +public abstract class DomainService<T extends DomainObject> { + + public static final int DEFAULT_PAGE_SIZE = 10; + + public abstract JpaRepository<T, String> getRepository(); + + @Transactional + public T create(T entity) { + return getRepository().save(entity); + } + + @Transactional(readOnly = true) + public Page<T> findAll(Pageable pageable) { + return getRepository().findAll(pageable); + } + + @Transactional(readOnly = true) + public Page<T> findAll(int page) { + return getRepository().findAll(PageRequest.of(page, DEFAULT_PAGE_SIZE)); + } +} + diff --git a/core/src/main/java/cz/fi/muni/pa165/core/company/.gitkeep b/core/src/main/java/cz/muni/fi/pa165/core/company/.gitkeep similarity index 100% rename from core/src/main/java/cz/fi/muni/pa165/core/company/.gitkeep rename to core/src/main/java/cz/muni/fi/pa165/core/company/.gitkeep diff --git a/core/src/main/java/cz/fi/muni/pa165/core/device/.gitkeep b/core/src/main/java/cz/muni/fi/pa165/core/device/.gitkeep similarity index 100% rename from core/src/main/java/cz/fi/muni/pa165/core/device/.gitkeep rename to core/src/main/java/cz/muni/fi/pa165/core/device/.gitkeep diff --git a/core/src/main/java/cz/fi/muni/pa165/core/house/.gitkeep b/core/src/main/java/cz/muni/fi/pa165/core/house/.gitkeep similarity index 100% rename from core/src/main/java/cz/fi/muni/pa165/core/house/.gitkeep rename to core/src/main/java/cz/muni/fi/pa165/core/house/.gitkeep diff --git a/core/src/main/java/cz/fi/muni/pa165/core/smartmeter/.gitkeep b/core/src/main/java/cz/muni/fi/pa165/core/smartmeter/.gitkeep similarity index 100% rename from core/src/main/java/cz/fi/muni/pa165/core/smartmeter/.gitkeep rename to core/src/main/java/cz/muni/fi/pa165/core/smartmeter/.gitkeep diff --git a/core/src/main/java/cz/muni/fi/pa165/core/user/User.java b/core/src/main/java/cz/muni/fi/pa165/core/user/User.java new file mode 100644 index 0000000000000000000000000000000000000000..6ae1b425ca00d266094b38a271ae9ac585c621c5 --- /dev/null +++ b/core/src/main/java/cz/muni/fi/pa165/core/user/User.java @@ -0,0 +1,36 @@ +package cz.muni.fi.pa165.core.user; + +import cz.muni.fi.pa165.core.common.DomainObject; +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.Table; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Getter +@Setter +@Entity +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table(name = "domain_user") +public class User extends DomainObject { + + private String username; + + @Enumerated(EnumType.STRING) + private UserType userType; + + private String password; + + private String email; + + private String firstName; + + private String lastName; + +} diff --git a/core/src/main/java/cz/muni/fi/pa165/core/user/UserController.java b/core/src/main/java/cz/muni/fi/pa165/core/user/UserController.java new file mode 100644 index 0000000000000000000000000000000000000000..b143a7cb2f2b903cdce728d6240822ed52fa32ca --- /dev/null +++ b/core/src/main/java/cz/muni/fi/pa165/core/user/UserController.java @@ -0,0 +1,48 @@ +package cz.muni.fi.pa165.core.user; + +import cz.muni.fi.pa165.model.dto.user.UserCreateDto; +import cz.muni.fi.pa165.model.dto.user.UserDto; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@RequestMapping("/users") +public class UserController { + + private final UserService service; + + private final UserMapper mapper; + + @Autowired + public UserController(UserService service, UserMapper mapper) { + this.service = service; + this.mapper = mapper; + } + + @GetMapping + public List<UserDto> findAll() { + return service.findAll().stream().map(mapper::toDto).toList(); + } + + @GetMapping("/{id}") + public UserDto find(@PathVariable String id) { + return mapper.toDto(service.find(id)); + } + + @PostMapping + public UserDto create(@RequestBody UserCreateDto dto) { + return mapper.toDto(service.create(mapper.fromCreateDto(dto))); + } + + // @GetMapping + // public Result<UserDto> findAll(@RequestParam int page) { + // return mapper.toResult(service.findAll(page)); + // } +} diff --git a/core/src/main/java/cz/muni/fi/pa165/core/user/UserMapper.java b/core/src/main/java/cz/muni/fi/pa165/core/user/UserMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..ce1a629f2507eea30681e6914f0348ff646a1fb3 --- /dev/null +++ b/core/src/main/java/cz/muni/fi/pa165/core/user/UserMapper.java @@ -0,0 +1,13 @@ +package cz.muni.fi.pa165.core.user; + +import cz.muni.fi.pa165.core.common.DomainMapper; +import cz.muni.fi.pa165.model.dto.user.UserCreateDto; +import cz.muni.fi.pa165.model.dto.user.UserDto; +import org.mapstruct.Mapper; + +@Mapper +public interface UserMapper extends DomainMapper<User, UserDto> { + + User fromCreateDto(UserCreateDto dto); +} + diff --git a/core/src/main/java/cz/muni/fi/pa165/core/user/UserRepository.java b/core/src/main/java/cz/muni/fi/pa165/core/user/UserRepository.java new file mode 100644 index 0000000000000000000000000000000000000000..58f12b1aa2bad06755c670eaa267cb69df59e72f --- /dev/null +++ b/core/src/main/java/cz/muni/fi/pa165/core/user/UserRepository.java @@ -0,0 +1,9 @@ +package cz.muni.fi.pa165.core.user; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface UserRepository extends JpaRepository<User, String> { +} + diff --git a/core/src/main/java/cz/muni/fi/pa165/core/user/UserService.java b/core/src/main/java/cz/muni/fi/pa165/core/user/UserService.java new file mode 100644 index 0000000000000000000000000000000000000000..1411527886277ed59b23d6ba335e80d74f0cee7e --- /dev/null +++ b/core/src/main/java/cz/muni/fi/pa165/core/user/UserService.java @@ -0,0 +1,35 @@ +package cz.muni.fi.pa165.core.user; + +import cz.muni.fi.pa165.core.common.DomainService; +import jakarta.persistence.EntityNotFoundException; +import lombok.Getter; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@Service +public class UserService extends DomainService<User> { + + @Getter + private final UserRepository repository; + + @Autowired + public UserService(UserRepository repository) { + this.repository = repository; + } + + @Transactional(readOnly = true) + public User find(String id) { + return repository.findById(id) + .orElseThrow(() -> new EntityNotFoundException("User '" + id + "' not found.")); + } + + @Transactional(readOnly = true) + public List<User> findAll() { + return repository.findAll(); + } + +} + diff --git a/core/src/main/java/cz/muni/fi/pa165/core/user/UserType.java b/core/src/main/java/cz/muni/fi/pa165/core/user/UserType.java new file mode 100644 index 0000000000000000000000000000000000000000..3208d51f80846f081add1faba4bcd9a8bf9ac61a --- /dev/null +++ b/core/src/main/java/cz/muni/fi/pa165/core/user/UserType.java @@ -0,0 +1,7 @@ +package cz.muni.fi.pa165.core.user; + +public enum UserType { + NORMAL, + EMPLOYEE, + ADMIN +} diff --git a/core/src/test/java/cz/fi/muni/pa165/core/CoreApplicationTest.java b/core/src/test/java/cz/muni/fi/pa165/core/CoreApplicationTest.java similarity index 85% rename from core/src/test/java/cz/fi/muni/pa165/core/CoreApplicationTest.java rename to core/src/test/java/cz/muni/fi/pa165/core/CoreApplicationTest.java index e658bb4ef2f501ff9f57c27fda086e133a1fb6ce..9b7b7c0d57e7a12f34081e7656bcb9b21b33f3bd 100644 --- a/core/src/test/java/cz/fi/muni/pa165/core/CoreApplicationTest.java +++ b/core/src/test/java/cz/muni/fi/pa165/core/CoreApplicationTest.java @@ -1,4 +1,4 @@ -package cz.fi.muni.pa165.core; +package cz.muni.fi.pa165.core; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; diff --git a/microservice3/pom.xml b/microservice3/pom.xml index ef83ff9fbf8a08cd8691d78fce5547065a1f1459..d5559ef22d81e3ad4fc2e2486ca8236c99063d73 100644 --- a/microservice3/pom.xml +++ b/microservice3/pom.xml @@ -4,7 +4,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>smart-energy-management-system</artifactId> - <groupId>cz.fi.muni.pa165</groupId> + <groupId>cz.muni.fi.pa165</groupId> <version>0.0.1-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> diff --git a/microservice3/src/main/java/cz/fi/muni/pa165/microservice3/App.java b/microservice3/src/main/java/cz/muni/fi/pa165/microservice3/App.java similarity index 86% rename from microservice3/src/main/java/cz/fi/muni/pa165/microservice3/App.java rename to microservice3/src/main/java/cz/muni/fi/pa165/microservice3/App.java index 6882ed9f862921bb0b4c1043664929aaaf2998f8..8b3f7ae17947df72d5abbbebc2c35c6f78cf26e2 100644 --- a/microservice3/src/main/java/cz/fi/muni/pa165/microservice3/App.java +++ b/microservice3/src/main/java/cz/muni/fi/pa165/microservice3/App.java @@ -1,4 +1,4 @@ -package cz.fi.muni.pa165.microservice3; +package cz.muni.fi.pa165.microservice3; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; diff --git a/microservice3/src/test/java/cz/fi/muni/pa165/microservice3/AppTest.java b/microservice3/src/test/java/cz/muni/fi/pa165/microservice3/AppTest.java similarity index 81% rename from microservice3/src/test/java/cz/fi/muni/pa165/microservice3/AppTest.java rename to microservice3/src/test/java/cz/muni/fi/pa165/microservice3/AppTest.java index b5fed3c2bd68a93aa3cca9ddb9c36337376cbe86..927c9db533809664f7bb116442b93015fb07b864 100644 --- a/microservice3/src/test/java/cz/fi/muni/pa165/microservice3/AppTest.java +++ b/microservice3/src/test/java/cz/muni/fi/pa165/microservice3/AppTest.java @@ -1,4 +1,4 @@ -package cz.fi.muni.pa165.microservice3; +package cz.muni.fi.pa165.microservice3; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; diff --git a/microservice4/pom.xml b/microservice4/pom.xml index 8dd8d7bc886297be07d46cf51d931b512d083f8c..388b2d43771b635dbc901048d6636a387d006929 100644 --- a/microservice4/pom.xml +++ b/microservice4/pom.xml @@ -4,7 +4,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>smart-energy-management-system</artifactId> - <groupId>cz.fi.muni.pa165</groupId> + <groupId>cz.muni.fi.pa165</groupId> <version>0.0.1-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> diff --git a/microservice4/src/main/java/cz/fi/muni/pa165/microservice4/App.java b/microservice4/src/main/java/cz/muni/fi/pa165/microservice4/App.java similarity index 86% rename from microservice4/src/main/java/cz/fi/muni/pa165/microservice4/App.java rename to microservice4/src/main/java/cz/muni/fi/pa165/microservice4/App.java index 1a72bee879fb75d494102d2d835cae33e908f82a..9044aa6836c9db6ca18db423a2496d3cc829deb2 100644 --- a/microservice4/src/main/java/cz/fi/muni/pa165/microservice4/App.java +++ b/microservice4/src/main/java/cz/muni/fi/pa165/microservice4/App.java @@ -1,4 +1,4 @@ -package cz.fi.muni.pa165.microservice4; +package cz.muni.fi.pa165.microservice4; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; diff --git a/microservice4/src/test/java/cz/fi/muni/pa165/microservice4/AppTest.java b/microservice4/src/test/java/cz/muni/fi/pa165/microservice4/AppTest.java similarity index 81% rename from microservice4/src/test/java/cz/fi/muni/pa165/microservice4/AppTest.java rename to microservice4/src/test/java/cz/muni/fi/pa165/microservice4/AppTest.java index 992adf0bb98a1d3a6eed8b74b6e3ba3019a122a5..3a9a025da2d45eb03d3615bb2714abc2f5a75cd3 100644 --- a/microservice4/src/test/java/cz/fi/muni/pa165/microservice4/AppTest.java +++ b/microservice4/src/test/java/cz/muni/fi/pa165/microservice4/AppTest.java @@ -1,4 +1,4 @@ -package cz.fi.muni.pa165.microservice4; +package cz.muni.fi.pa165.microservice4; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; diff --git a/model/pom.xml b/model/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..c5662a97f9ff213bdba277f6649839dcfb5fac85 --- /dev/null +++ b/model/pom.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <parent> + <artifactId>smart-energy-management-system</artifactId> + <groupId>cz.muni.fi.pa165</groupId> + <version>0.0.1-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <artifactId>model</artifactId> + <name>models</name> + <description>Library for smart energy management system with domain model objects</description> + <properties> + <maven.compiler.source>17</maven.compiler.source> + <maven.compiler.target>17</maven.compiler.target> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <spring-boot.repackage.skip>true</spring-boot.repackage.skip> + </properties> +</project> \ No newline at end of file diff --git a/model/src/main/java/cz/muni/fi/pa165/model/dto/common/DomainObjectDto.java b/model/src/main/java/cz/muni/fi/pa165/model/dto/common/DomainObjectDto.java new file mode 100644 index 0000000000000000000000000000000000000000..f99c4d29aad4bd029500006c83e933325cef4838 --- /dev/null +++ b/model/src/main/java/cz/muni/fi/pa165/model/dto/common/DomainObjectDto.java @@ -0,0 +1,11 @@ +package cz.muni.fi.pa165.model.dto.common; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public abstract class DomainObjectDto { + + private String id; +} \ No newline at end of file diff --git a/model/src/main/java/cz/muni/fi/pa165/model/dto/user/UserCreateDto.java b/model/src/main/java/cz/muni/fi/pa165/model/dto/user/UserCreateDto.java new file mode 100644 index 0000000000000000000000000000000000000000..8221a4866056513ea5ccd926bbd226c6fe08d14c --- /dev/null +++ b/model/src/main/java/cz/muni/fi/pa165/model/dto/user/UserCreateDto.java @@ -0,0 +1,22 @@ +package cz.muni.fi.pa165.model.dto.user; + +import cz.muni.fi.pa165.model.dto.common.DomainObjectDto; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class UserCreateDto extends DomainObjectDto { + + private String username; + + private String password; + + private String email; + + private String firstName; + + private String lastName; + +} + diff --git a/model/src/main/java/cz/muni/fi/pa165/model/dto/user/UserDto.java b/model/src/main/java/cz/muni/fi/pa165/model/dto/user/UserDto.java new file mode 100644 index 0000000000000000000000000000000000000000..ede86aca9100f2ee3b287685ae93beb1a65f1e36 --- /dev/null +++ b/model/src/main/java/cz/muni/fi/pa165/model/dto/user/UserDto.java @@ -0,0 +1,20 @@ +package cz.muni.fi.pa165.model.dto.user; + +import cz.muni.fi.pa165.model.dto.common.DomainObjectDto; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class UserDto extends DomainObjectDto { + + private String username; + + private String email; + + private String firstName; + + private String lastName; + + +} diff --git a/pom.xml b/pom.xml index 95710e817322cf42b48fe9ced146b96021089c39..46c7101bb2338f173a272109a15b24b823a0da38 100644 --- a/pom.xml +++ b/pom.xml @@ -8,6 +8,7 @@ <module>statistics</module> <module>microservice3</module> <module>microservice4</module> + <module>model</module> </modules> <parent> <groupId>org.springframework.boot</groupId> @@ -15,13 +16,18 @@ <version>3.0.4</version> <relativePath/> <!-- lookup parent from repository --> </parent> - <groupId>cz.fi.muni.pa165</groupId> + <groupId>cz.muni.fi.pa165</groupId> <artifactId>smart-energy-management-system</artifactId> <version>0.0.1-SNAPSHOT</version> <name>smart-energy-management-system</name> <description>Demo project for Spring Boot</description> <properties> <java.version>17</java.version> + <maven.compiler.source>17</maven.compiler.source> + <maven.compiler.target>17</maven.compiler.target> + <lombok.version>1.18.26</lombok.version> + <org.mapstruct.version>1.5.3.Final</org.mapstruct.version> + <example.version>0.0.1-SNAPSHOT</example.version> </properties> <dependencies> <dependency> @@ -34,15 +40,62 @@ <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> + + <dependency> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + <version>${lombok.version}</version> + </dependency> + </dependencies> <build> <plugins> <plugin> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-maven-plugin</artifactId> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.8.1</version> + <configuration> + <source>17</source> <!-- depending on your project --> + <target>17</target> <!-- depending on your project --> + <annotationProcessorPaths> + <!-- Order is IMPORTANT! Lombok needs to go first --> + <path> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + <version>${lombok.version}</version> + </path> + <path> + <groupId>org.mapstruct</groupId> + <artifactId>mapstruct-processor</artifactId> + <version>${org.mapstruct.version}</version> + </path> + <!-- other annotation processors --> + </annotationProcessorPaths> + <compilerArgs> + <compilerArg> + -Amapstruct.defaultComponentModel=spring + </compilerArg> + </compilerArgs> + </configuration> </plugin> </plugins> + <pluginManagement> + <plugins> + <plugin> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-maven-plugin</artifactId> + <configuration> + <excludes> + <exclude> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + </exclude> + </excludes> + </configuration> + </plugin> + </plugins> + </pluginManagement> </build> </project> diff --git a/statistics/pom.xml b/statistics/pom.xml index f0121295fa359ce8c56c0a25cbab559a45085399..eb661fce761f0ef4769edc76ad1c3ad285230be8 100644 --- a/statistics/pom.xml +++ b/statistics/pom.xml @@ -4,7 +4,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>smart-energy-management-system</artifactId> - <groupId>cz.fi.muni.pa165</groupId> + <groupId>cz.muni.fi.pa165</groupId> <version>0.0.1-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> diff --git a/statistics/src/main/java/cz/fi/muni/pa165/statistics/StatisticsApplication.java b/statistics/src/main/java/cz/muni/fi/pa165/statistics/StatisticsApplication.java similarity index 88% rename from statistics/src/main/java/cz/fi/muni/pa165/statistics/StatisticsApplication.java rename to statistics/src/main/java/cz/muni/fi/pa165/statistics/StatisticsApplication.java index 588560d48800b5f928fc2272674db5c3d3c6b747..f73b192563f145e934a607c405d973ba013a4a9b 100644 --- a/statistics/src/main/java/cz/fi/muni/pa165/statistics/StatisticsApplication.java +++ b/statistics/src/main/java/cz/muni/fi/pa165/statistics/StatisticsApplication.java @@ -1,4 +1,4 @@ -package cz.fi.muni.pa165.statistics; +package cz.muni.fi.pa165.statistics; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; diff --git a/statistics/src/test/java/cz/fi/muni/pa165/statistics/StatisticsApplicationTest.java b/statistics/src/test/java/cz/muni/fi/pa165/statistics/StatisticsApplicationTest.java similarity index 83% rename from statistics/src/test/java/cz/fi/muni/pa165/statistics/StatisticsApplicationTest.java rename to statistics/src/test/java/cz/muni/fi/pa165/statistics/StatisticsApplicationTest.java index ebce479fd93c76a0ce693365bda79cd9ae0ceeca..07c0c264f9e2f672839e1775d10648f89b475364 100644 --- a/statistics/src/test/java/cz/fi/muni/pa165/statistics/StatisticsApplicationTest.java +++ b/statistics/src/test/java/cz/muni/fi/pa165/statistics/StatisticsApplicationTest.java @@ -1,4 +1,4 @@ -package cz.fi.muni.pa165.statistics; +package cz.muni.fi.pa165.statistics; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest;