Files
2026-07-24 23:11:20 +08:00

28 lines
1.8 KiB
C#

namespace MiaoJiZhang.Api.Contracts;
// ---- Auth(当前仅用户名密码;快捷登录接口预留不实现)----
public record RegisterRequest(string Username, string Password, bool AgreedToTerms = false);
public record LoginRequest(string Username, string Password);
public record AuthResponse(long UserId, string Username, string Token, DateTime ExpiresAt, bool AccountClosureCancelled = false);
// ---- Onboarding ----
public record OnboardingRequest(string AppMode, string AvatarKey, string PersonaKey, string? CustomName);
public record SwitchModeRequest(string AppMode);
public record UpdateCompanionRequest(string? AvatarKey, string? PersonaKey, string? CustomName, int? RoastLevel, int? StickerFrequency, int? ProactiveLevel);
// ---- User profile ----
public record AiCompanionDto(string AvatarKey, string PersonaKey, string? CustomName, int RoastLevel, int StickerFrequency, int ProactiveLevel);
public record UserPermissionsDto(bool Ai);
public record AiChatQuotaDto(int Limit, int Used, int Remaining, string Period, DateTime ResetAt);
public record UserProfileResponse(long UserId, string Username, string? Nickname, string AppMode, AiCompanionDto? AiCompanion, bool OnboardingDone, UserPermissionsDto Permissions, AiChatQuotaDto AiChatQuota);
public record UpdateProfileRequest(string? Nickname);
public record ChangePasswordRequest(string CurrentPassword, string NewPassword);
public record DeleteAccountRequest(string Password, string? ConfirmationText = null);
public record AccountClosureResponse(DateTime RequestedAt, DateTime ScheduledAt);
public record UpdateUserPermissionsRequest(bool Ai);
public record UpdateAiChatQuotaRequest(int Limit, string Period, bool ResetUsage = false);
// ---- 通用 ----
public record ApiError(string Code, string Message);