feat: relocate remaining dtos

This commit is contained in:
Tim
2025-08-04 20:51:33 +08:00
parent a22967fc0c
commit 2db998a9d9
51 changed files with 532 additions and 543 deletions

View File

@@ -12,5 +12,6 @@ public class CategoryDto {
private String description;
private String icon;
private String smallIcon;
private Long count;
}

View File

@@ -0,0 +1,12 @@
package com.openisle.dto;
import lombok.Data;
/** Request body for creating or updating a category. */
@Data
public class CategoryRequest {
private String name;
private String description;
private String icon;
private String smallIcon;
}

View File

@@ -0,0 +1,15 @@
package com.openisle.dto;
import lombok.Data;
import java.time.LocalDateTime;
/** DTO for comment information in user profiles. */
@Data
public class CommentInfoDto {
private Long id;
private String content;
private LocalDateTime createdAt;
private PostMetaDto post;
private ParentCommentDto parentComment;
}

View File

@@ -0,0 +1,10 @@
package com.openisle.dto;
import lombok.Data;
/** Request body for creating or replying to a comment. */
@Data
public class CommentRequest {
private String content;
private String captcha;
}

View File

@@ -0,0 +1,15 @@
package com.openisle.dto;
import com.openisle.model.PasswordStrength;
import com.openisle.model.PublishMode;
import com.openisle.model.RegisterMode;
import lombok.Data;
/** DTO for site configuration. */
@Data
public class ConfigDto {
private PublishMode publishMode;
private PasswordStrength passwordStrength;
private Integer aiFormatLimit;
private RegisterMode registerMode;
}

View File

@@ -0,0 +1,10 @@
package com.openisle.dto;
import lombok.Data;
/** Request for Discord OAuth login. */
@Data
public class DiscordLoginRequest {
private String code;
private String redirectUri;
}

View File

@@ -0,0 +1,15 @@
package com.openisle.dto;
import lombok.Data;
import java.util.List;
/** DTO representing a saved draft. */
@Data
public class DraftDto {
private Long id;
private String title;
private String content;
private Long categoryId;
private List<Long> tagIds;
}

View File

@@ -0,0 +1,14 @@
package com.openisle.dto;
import lombok.Data;
import java.util.List;
/** Request body for saving a draft. */
@Data
public class DraftRequest {
private String title;
private String content;
private Long categoryId;
private List<Long> tagIds;
}

View File

@@ -0,0 +1,9 @@
package com.openisle.dto;
import lombok.Data;
/** Request to trigger a forgot password email. */
@Data
public class ForgotPasswordRequest {
private String email;
}

View File

@@ -0,0 +1,10 @@
package com.openisle.dto;
import lombok.Data;
/** Request for GitHub OAuth login. */
@Data
public class GithubLoginRequest {
private String code;
private String redirectUri;
}

View File

@@ -0,0 +1,9 @@
package com.openisle.dto;
import lombok.Data;
/** Request for Google OAuth login. */
@Data
public class GoogleLoginRequest {
private String idToken;
}

View File

@@ -0,0 +1,11 @@
package com.openisle.dto;
import lombok.Data;
/** Request to login. */
@Data
public class LoginRequest {
private String username;
private String password;
private String captcha;
}

View File

@@ -0,0 +1,10 @@
package com.openisle.dto;
import lombok.Data;
/** Request to submit a reason (e.g., for moderation). */
@Data
public class MakeReasonRequest {
private String token;
private String reason;
}

View File

@@ -0,0 +1,10 @@
package com.openisle.dto;
import lombok.Data;
/** Info about the milk tea activity. */
@Data
public class MilkTeaInfoDto {
private long redeemCount;
private boolean ended;
}

View File

@@ -0,0 +1,9 @@
package com.openisle.dto;
import lombok.Data;
/** Request to redeem the milk tea activity. */
@Data
public class MilkTeaRedeemRequest {
private String contact;
}

View File

@@ -0,0 +1,23 @@
package com.openisle.dto;
import com.openisle.model.NotificationType;
import com.openisle.model.ReactionType;
import lombok.Data;
import java.time.LocalDateTime;
/** DTO representing a user notification. */
@Data
public class NotificationDto {
private Long id;
private NotificationType type;
private PostSummaryDto post;
private CommentDto comment;
private CommentDto parentComment;
private AuthorDto fromUser;
private ReactionType reactionType;
private String content;
private Boolean approved;
private boolean read;
private LocalDateTime createdAt;
}

View File

@@ -0,0 +1,11 @@
package com.openisle.dto;
import lombok.Data;
import java.util.List;
/** Request to mark notifications as read. */
@Data
public class NotificationMarkReadRequest {
private List<Long> ids;
}

View File

@@ -0,0 +1,9 @@
package com.openisle.dto;
import lombok.Data;
/** DTO representing unread notification count. */
@Data
public class NotificationUnreadCountDto {
private long count;
}

View File

@@ -0,0 +1,11 @@
package com.openisle.dto;
import lombok.Data;
/** DTO representing a parent comment. */
@Data
public class ParentCommentDto {
private Long id;
private String author;
private String content;
}

View File

@@ -0,0 +1,16 @@
package com.openisle.dto;
import lombok.Data;
import java.time.LocalDateTime;
/** Lightweight post metadata used in user profile lists. */
@Data
public class PostMetaDto {
private Long id;
private String title;
private String snippet;
private LocalDateTime createdAt;
private String category;
private long views;
}

View File

@@ -0,0 +1,9 @@
package com.openisle.dto;
import lombok.Data;
/** Public key response for web push. */
@Data
public class PushPublicKeyDto {
private String key;
}

View File

@@ -0,0 +1,11 @@
package com.openisle.dto;
import lombok.Data;
/** Request body for saving a push subscription. */
@Data
public class PushSubscriptionRequest {
private String endpoint;
private String p256dh;
private String auth;
}

View File

@@ -0,0 +1,10 @@
package com.openisle.dto;
import com.openisle.model.ReactionType;
import lombok.Data;
/** Request for reacting to a post or comment. */
@Data
public class ReactionRequest {
private ReactionType type;
}

View File

@@ -0,0 +1,12 @@
package com.openisle.dto;
import lombok.Data;
/** Request to register a new user. */
@Data
public class RegisterRequest {
private String username;
private String email;
private String password;
private String captcha;
}

View File

@@ -0,0 +1,10 @@
package com.openisle.dto;
import lombok.Data;
/** Request to reset password. */
@Data
public class ResetPasswordRequest {
private String token;
private String password;
}

View File

@@ -0,0 +1,14 @@
package com.openisle.dto;
import lombok.Data;
/** DTO representing a search result entry. */
@Data
public class SearchResultDto {
private String type;
private Long id;
private String text;
private String subText;
private String extra;
private Long postId;
}

View File

@@ -0,0 +1,16 @@
package com.openisle.dto;
import com.openisle.model.RegisterMode;
import lombok.Data;
/** Public site configuration values. */
@Data
public class SiteConfigDto {
private boolean captchaEnabled;
private boolean registerCaptchaEnabled;
private boolean loginCaptchaEnabled;
private boolean postCaptchaEnabled;
private boolean commentCaptchaEnabled;
private int aiFormatLimit;
private RegisterMode registerMode;
}

View File

@@ -2,6 +2,8 @@ package com.openisle.dto;
import lombok.Data;
import java.time.LocalDateTime;
/**
* DTO representing a tag.
*/
@@ -12,5 +14,7 @@ public class TagDto {
private String description;
private String icon;
private String smallIcon;
private LocalDateTime createdAt;
private Long count;
}

View File

@@ -0,0 +1,12 @@
package com.openisle.dto;
import lombok.Data;
/** Request body for creating or updating a tag. */
@Data
public class TagRequest {
private String name;
private String description;
private String icon;
private String smallIcon;
}

View File

@@ -0,0 +1,11 @@
package com.openisle.dto;
import lombok.Data;
/** Request for Twitter OAuth login. */
@Data
public class TwitterLoginRequest {
private String code;
private String redirectUri;
private String codeVerifier;
}

View File

@@ -0,0 +1,10 @@
package com.openisle.dto;
import lombok.Data;
/** Request body for updating user profile. */
@Data
public class UpdateProfileDto {
private String username;
private String introduction;
}

View File

@@ -0,0 +1,13 @@
package com.openisle.dto;
import lombok.Data;
import java.util.List;
/** Aggregated user data including posts and replies. */
@Data
public class UserAggregateDto {
private UserDto user;
private List<PostMetaDto> posts;
private List<CommentInfoDto> replies;
}

View File

@@ -0,0 +1,30 @@
package com.openisle.dto;
import lombok.Data;
import java.time.LocalDateTime;
/** Detailed user information. */
@Data
public class UserDto {
private Long id;
private String username;
private String email;
private String avatar;
private String role;
private String introduction;
private long followers;
private long following;
private LocalDateTime createdAt;
private LocalDateTime lastPostTime;
private LocalDateTime lastCommentTime;
private long totalViews;
private long visitedDays;
private long readPosts;
private long likesSent;
private long likesReceived;
private boolean subscribed;
private int experience;
private int currentLevel;
private int nextLevelExp;
}

View File

@@ -0,0 +1,10 @@
package com.openisle.dto;
import lombok.Data;
/** Request to verify a forgot password code. */
@Data
public class VerifyForgotRequest {
private String email;
private String code;
}

View File

@@ -0,0 +1,10 @@
package com.openisle.dto;
import lombok.Data;
/** Request to verify a user registration. */
@Data
public class VerifyRequest {
private String username;
private String code;
}