From 8f178eb6f3cee1d0dab2e43b7ae16f10a96765ff Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Pokorn=C3=BD?= <xpokorn8@fi.muni.cz>
Date: Sat, 29 Apr 2023 23:26:50 +0200
Subject: [PATCH] Adding DTO Schema examples

---
 .../model/dto/course/CourseCreateDto.java     |  9 ++++++++
 .../fuseri/model/dto/course/CourseDto.java    | 11 ++++++++++
 .../model/dto/lecture/LectureCreateDto.java   | 10 +++++++++
 .../fuseri/model/dto/lecture/LectureDto.java  | 15 +++++++++++++
 .../model/dto/user/UserAddLanguageDto.java    |  7 +++++++
 .../fuseri/model/dto/user/UserCreateDto.java  | 21 +++++++++++++++++++
 .../org/fuseri/model/dto/user/UserDto.java    | 21 +++++++++++++++++++
 .../fuseri/model/dto/user/UserLoginDto.java   |  7 +++++++
 8 files changed, 101 insertions(+)

diff --git a/application/model/src/main/java/org/fuseri/model/dto/course/CourseCreateDto.java b/application/model/src/main/java/org/fuseri/model/dto/course/CourseCreateDto.java
index 2ba3673e..c7548adb 100644
--- a/application/model/src/main/java/org/fuseri/model/dto/course/CourseCreateDto.java
+++ b/application/model/src/main/java/org/fuseri/model/dto/course/CourseCreateDto.java
@@ -1,5 +1,6 @@
 package org.fuseri.model.dto.course;
 
+import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.Valid;
 import jakarta.validation.constraints.Min;
 import jakarta.validation.constraints.NotBlank;
@@ -14,6 +15,14 @@ import lombok.Setter;
  * This class represents a Data Transfer Object (DTO) for Course entities.
  * It is used to create a new Course with the init data.
  */
+@Schema(example = """
+        {
+          "name": "english a1",
+          "capacity": 10,
+          "language": "ENGLISH",
+          "proficiency": "A1"
+        }
+        """)
 @Getter
 @Setter
 @AllArgsConstructor
diff --git a/application/model/src/main/java/org/fuseri/model/dto/course/CourseDto.java b/application/model/src/main/java/org/fuseri/model/dto/course/CourseDto.java
index 2bb3eb99..15588e7e 100644
--- a/application/model/src/main/java/org/fuseri/model/dto/course/CourseDto.java
+++ b/application/model/src/main/java/org/fuseri/model/dto/course/CourseDto.java
@@ -1,5 +1,6 @@
 package org.fuseri.model.dto.course;
 
+import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.Valid;
 import jakarta.validation.constraints.Min;
 import jakarta.validation.constraints.NotBlank;
@@ -19,6 +20,16 @@ import java.util.List;
  * It is used to transfer Course data between different layers of the application.
  * It extends the DomainObjectDto class and includes additional Course-specific fields.
  */
+@Schema(example = """
+{
+  "id": 1,
+  "name": "english a1",
+  "capacity": 10,
+  "language": "ENGLISH",
+  "proficiency": "A1",
+  "students": []
+}
+        """)
 @Getter
 @Setter
 @EqualsAndHashCode(callSuper = false)
diff --git a/application/model/src/main/java/org/fuseri/model/dto/lecture/LectureCreateDto.java b/application/model/src/main/java/org/fuseri/model/dto/lecture/LectureCreateDto.java
index b7ec0926..b54ff018 100644
--- a/application/model/src/main/java/org/fuseri/model/dto/lecture/LectureCreateDto.java
+++ b/application/model/src/main/java/org/fuseri/model/dto/lecture/LectureCreateDto.java
@@ -1,11 +1,21 @@
 package org.fuseri.model.dto.lecture;
 
+import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.*;
 import lombok.Getter;
 import lombok.Setter;
 
 import java.time.LocalDateTime;
 
+@Schema(example = """
+        {
+          "lectureFrom": "2069-04-20T22:24:33.038Z",
+          "lectureTo": "2069-04-20T23:24:33.038Z",
+          "topic": "pronouns",
+          "capacity": 10,
+          "courseId": 1
+        }
+        """)
 @Getter
 @Setter
 public class LectureCreateDto {
diff --git a/application/model/src/main/java/org/fuseri/model/dto/lecture/LectureDto.java b/application/model/src/main/java/org/fuseri/model/dto/lecture/LectureDto.java
index 73820adc..f60d220b 100644
--- a/application/model/src/main/java/org/fuseri/model/dto/lecture/LectureDto.java
+++ b/application/model/src/main/java/org/fuseri/model/dto/lecture/LectureDto.java
@@ -1,5 +1,6 @@
 package org.fuseri.model.dto.lecture;
 
+import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.*;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
@@ -9,6 +10,20 @@ import org.fuseri.model.dto.common.DomainObjectDto;
 import java.time.LocalDateTime;
 import java.util.List;
 
+@Schema(example = """
+        {
+          "id": 1,
+          "lectureFrom": "2069-04-20T22:24:33.038Z",
+          "lectureTo": "2069-04-20T23:24:33.038Z",
+          "topic": "pronouns",
+          "capacity": 10,
+          "lecturerId": 1,
+          "courseId": 1,
+          "students": [
+            0
+          ]
+        }
+        """)
 @Getter
 @Setter
 @EqualsAndHashCode(callSuper = false)
diff --git a/application/model/src/main/java/org/fuseri/model/dto/user/UserAddLanguageDto.java b/application/model/src/main/java/org/fuseri/model/dto/user/UserAddLanguageDto.java
index 271ce643..d4456bcd 100644
--- a/application/model/src/main/java/org/fuseri/model/dto/user/UserAddLanguageDto.java
+++ b/application/model/src/main/java/org/fuseri/model/dto/user/UserAddLanguageDto.java
@@ -1,5 +1,6 @@
 package org.fuseri.model.dto.user;
 
+import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.Valid;
 import jakarta.validation.constraints.NotNull;
 import lombok.AllArgsConstructor;
@@ -8,6 +9,12 @@ import lombok.Setter;
 import org.fuseri.model.dto.course.LanguageTypeDto;
 import org.fuseri.model.dto.course.ProficiencyLevelDto;
 
+@Schema(example = """
+        {
+          "language": "ENGLISH",
+          "proficiency": "A1"
+        }
+        """)
 @Getter
 @Setter
 @AllArgsConstructor
diff --git a/application/model/src/main/java/org/fuseri/model/dto/user/UserCreateDto.java b/application/model/src/main/java/org/fuseri/model/dto/user/UserCreateDto.java
index 2336e937..69dbdba2 100644
--- a/application/model/src/main/java/org/fuseri/model/dto/user/UserCreateDto.java
+++ b/application/model/src/main/java/org/fuseri/model/dto/user/UserCreateDto.java
@@ -1,5 +1,6 @@
 package org.fuseri.model.dto.user;
 
+import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.Valid;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
@@ -12,6 +13,26 @@ import org.fuseri.model.dto.course.ProficiencyLevelDto;
 
 import java.util.Map;
 
+@Schema(example = """
+        {
+          "username": "adelkaxxx",
+          "password": "123456",
+          "email": "adelkaxxx@muni.mail.cz",
+          "firstName": "Adéla",
+          "lastName": "Pulcová",
+          "address": {
+            "country": "Czechia",
+            "city": "Praha",
+            "street": "Bubenské nábřeží",
+            "houseNumber": "306/13",
+            "zip": "170 00"
+          },
+          "userType": "STUDENT",
+          "languageProficiency": {
+            "CZECH": "A2"
+          }
+        }
+        """)
 @Getter
 @Setter
 @AllArgsConstructor
diff --git a/application/model/src/main/java/org/fuseri/model/dto/user/UserDto.java b/application/model/src/main/java/org/fuseri/model/dto/user/UserDto.java
index 0e3ebf02..711217d5 100644
--- a/application/model/src/main/java/org/fuseri/model/dto/user/UserDto.java
+++ b/application/model/src/main/java/org/fuseri/model/dto/user/UserDto.java
@@ -1,5 +1,6 @@
 package org.fuseri.model.dto.user;
 
+import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.Valid;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
@@ -12,6 +13,26 @@ import org.fuseri.model.dto.course.ProficiencyLevelDto;
 
 import java.util.Map;
 
+@Schema(example = """
+        {
+          "id": 1,
+          "username": "adelkaxxx",
+          "email": "adelkaxxx@muni.mail.cz",
+          "firstName": "Adéla",
+          "lastName": "Pulcová",
+          "address": {
+            "country": "Czechia",
+            "city": "Praha",
+            "street": "Bubenské nábřeží",
+            "houseNumber": "306/13",
+            "zip": "170 00"
+          },
+          "userType": "STUDENT",
+          "languageProficiency": {
+            "CZECH": "A2"
+          }
+        }
+        """)
 @Getter
 @Setter
 @EqualsAndHashCode(callSuper = false)
diff --git a/application/model/src/main/java/org/fuseri/model/dto/user/UserLoginDto.java b/application/model/src/main/java/org/fuseri/model/dto/user/UserLoginDto.java
index 45ed8e25..d3e93a57 100644
--- a/application/model/src/main/java/org/fuseri/model/dto/user/UserLoginDto.java
+++ b/application/model/src/main/java/org/fuseri/model/dto/user/UserLoginDto.java
@@ -1,10 +1,17 @@
 package org.fuseri.model.dto.user;
 
+import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 import lombok.Setter;
 
+@Schema(example = """
+        {
+          "username": "adelkaxxx",
+          "password": "123456"
+        }
+        """)
 @Getter
 @Setter
 @AllArgsConstructor
-- 
GitLab