refactor(data): consolidate data layer under services namespace

- Move src/data/{api,dto,schemas} directories to src/data/services/*
- Update all relative imports across the codebase to reference new paths
- Use CSS color tokens for splash button gradient in splash-button.module.css
- Add responsive sizes attribute to splash background image
- Add JSDoc documentation to splash-background component referencing original Dart implementation
This commit is contained in:
2026-06-09 16:44:05 +08:00
parent 763bec4e74
commit 661e417619
98 changed files with 57 additions and 44 deletions
@@ -21,7 +21,7 @@ import { RefreshTokenResponse } from "@/data/dto/auth/refresh_token_response";
import { RegisterRequest } from "@/data/dto/auth/register_request";
import { SendCodeRequest } from "@/data/dto/auth/send_code_request";
import { User } from "@/data/dto/user/user";
import type { UserData } from "@/data/schemas/user/user";
import type { UserData } from "@/data/services/schemas/user/user";
export class AuthApi {
/**
@@ -12,7 +12,7 @@ import { CreditsHistoryData } from "@/data/dto/user/credits_history_data";
import { UpdateProfileRequest } from "@/data/dto/user/update_profile_request";
import { User } from "@/data/dto/user/user";
import { UserStatsResponse } from "@/data/dto/user/user_stats_response";
import type { UserData } from "@/data/schemas/user/user";
import type { UserData } from "@/data/services/schemas/user/user";
export class UserApi {
/**
@@ -5,7 +5,7 @@ import {
AppleLoginRequestSchema,
type AppleLoginRequestInput,
type AppleLoginRequestData,
} from "@/data/schemas/auth/apple_login_request";
} from "@/data/services/schemas/auth/apple_login_request";
export class AppleLoginRequest {
declare readonly identityToken: string;
@@ -5,7 +5,7 @@ import {
FacebookLoginRequestSchema,
type FacebookLoginRequestInput,
type FacebookLoginRequestData,
} from "@/data/schemas/auth/facebook_login_request";
} from "@/data/services/schemas/auth/facebook_login_request";
export class FacebookLoginRequest {
declare readonly accessToken: string;
@@ -7,7 +7,7 @@ import {
FacebookUserDataSchema,
type FacebookUserDataInput,
type FacebookUserDataData,
} from "@/data/schemas/auth/facebook_user_data";
} from "@/data/services/schemas/auth/facebook_user_data";
export class FacebookUserData {
declare readonly id: string | null;
@@ -5,7 +5,7 @@ import {
FbIdLoginRequestSchema,
type FbIdLoginRequestInput,
type FbIdLoginRequestData,
} from "@/data/schemas/auth/fb_id_login_request";
} from "@/data/services/schemas/auth/fb_id_login_request";
export class FbIdLoginRequest {
declare readonly fbId: string;
@@ -5,7 +5,7 @@ import {
GoogleLoginRequestSchema,
type GoogleLoginRequestInput,
type GoogleLoginRequestData,
} from "@/data/schemas/auth/google_login_request";
} from "@/data/services/schemas/auth/google_login_request";
export class GoogleLoginRequest {
declare readonly idToken: string;
@@ -5,7 +5,7 @@ import {
GuestLoginRequestSchema,
type GuestLoginRequestInput,
type GuestLoginRequestData,
} from "@/data/schemas/auth/guest_login_request";
} from "@/data/services/schemas/auth/guest_login_request";
export class GuestLoginRequest {
declare readonly deviceId: string;
@@ -5,7 +5,7 @@ import {
GuestLoginResponseSchema,
type GuestLoginResponseInput,
type GuestLoginResponseData,
} from "@/data/schemas/auth/guest_login_response";
} from "@/data/services/schemas/auth/guest_login_response";
import { User } from "@/data/dto/user/user";
export class GuestLoginResponse {
@@ -5,7 +5,7 @@ import {
LoginRequestSchema,
type LoginRequestInput,
type LoginRequestData,
} from "@/data/schemas/auth/login_request";
} from "@/data/services/schemas/auth/login_request";
export class LoginRequest {
declare readonly email: string;
@@ -5,7 +5,7 @@ import {
LoginResponseSchema,
type LoginResponseInput,
type LoginResponseData,
} from "@/data/schemas/auth/login_response";
} from "@/data/services/schemas/auth/login_response";
import { User } from "@/data/dto/user/user";
export class LoginResponse {
@@ -5,7 +5,7 @@ import {
LogoutResponseSchema,
type LogoutResponseInput,
type LogoutResponseData,
} from "@/data/schemas/auth/logout_response";
} from "@/data/services/schemas/auth/logout_response";
export class LogoutResponse {
declare readonly success: boolean;
@@ -5,7 +5,7 @@ import {
RefreshTokenRequestSchema,
type RefreshTokenRequestInput,
type RefreshTokenRequestData,
} from "@/data/schemas/auth/refresh_token_request";
} from "@/data/services/schemas/auth/refresh_token_request";
export class RefreshTokenRequest {
declare readonly refreshToken: string;
@@ -5,7 +5,7 @@ import {
RefreshTokenResponseSchema,
type RefreshTokenResponseInput,
type RefreshTokenResponseData,
} from "@/data/schemas/auth/refresh_token_response";
} from "@/data/services/schemas/auth/refresh_token_response";
export class RefreshTokenResponse {
declare readonly token: string;
@@ -5,7 +5,7 @@ import {
RegisterRequestSchema,
type RegisterRequestInput,
type RegisterRequestData,
} from "@/data/schemas/auth/register_request";
} from "@/data/services/schemas/auth/register_request";
export class RegisterRequest {
declare readonly username: string;
@@ -5,7 +5,7 @@ import {
SendCodeRequestSchema,
type SendCodeRequestInput,
type SendCodeRequestData,
} from "@/data/schemas/auth/send_code_request";
} from "@/data/services/schemas/auth/send_code_request";
export class SendCodeRequest {
declare readonly email: string;
@@ -5,7 +5,7 @@ import {
ChatHistoryResponseSchema,
type ChatHistoryResponseInput,
type ChatHistoryResponseData,
} from "@/data/schemas/chat/chat_history_response";
} from "@/data/services/schemas/chat/chat_history_response";
import { ChatMessage } from "./chat_message";
export class ChatHistoryResponse {
@@ -5,7 +5,7 @@ import {
ChatMessageSchema,
type ChatMessageInput,
type ChatMessageData,
} from "@/data/schemas/chat/chat_message";
} from "@/data/services/schemas/chat/chat_message";
export class ChatMessage {
declare readonly role: string;
@@ -5,7 +5,7 @@ import {
ChatSendResponseSchema,
type ChatSendResponseInput,
type ChatSendResponseData,
} from "@/data/schemas/chat/chat_send_response";
} from "@/data/services/schemas/chat/chat_send_response";
export class ChatSendResponse {
declare readonly mode: string;
@@ -5,7 +5,7 @@ import {
ChatSyncDataSchema,
type ChatSyncDataInput,
type ChatSyncDataData,
} from "@/data/schemas/chat/chat_sync_data";
} from "@/data/services/schemas/chat/chat_sync_data";
export class ChatSyncData {
declare readonly syncedCount: number;
@@ -5,7 +5,7 @@ import {
ChatSyncRequestSchema,
type ChatSyncRequestInput,
type ChatSyncRequestData,
} from "@/data/schemas/chat/chat_sync_request";
} from "@/data/services/schemas/chat/chat_sync_request";
import { SyncMessage } from "./sync_message";
export class ChatSyncRequest {
@@ -5,7 +5,7 @@ import {
GuestChatQuotaSchema,
type GuestChatQuotaInput,
type GuestChatQuotaData,
} from "@/data/schemas/chat/guest_chat_quota";
} from "@/data/services/schemas/chat/guest_chat_quota";
export class GuestChatQuota {
// 静态常量
@@ -5,7 +5,7 @@ import {
ImageUploadResponseSchema,
type ImageUploadResponseInput,
type ImageUploadResponseData,
} from "@/data/schemas/chat/image_upload_response";
} from "@/data/services/schemas/chat/image_upload_response";
export class ImageUploadResponse {
declare readonly success: boolean;
@@ -5,7 +5,7 @@ import {
SendMessageRequestSchema,
type SendMessageRequestInput,
type SendMessageRequestData,
} from "@/data/schemas/chat/send_message_request";
} from "@/data/services/schemas/chat/send_message_request";
export class SendMessageRequest {
declare readonly message: string;
@@ -5,7 +5,7 @@ import {
SttDataSchema,
type SttDataInput,
type SttDataData,
} from "@/data/schemas/chat/stt_data";
} from "@/data/services/schemas/chat/stt_data";
export class SttData {
declare readonly text: string;
@@ -5,7 +5,7 @@ import {
SyncMessageSchema,
type SyncMessageInput,
type SyncMessageData,
} from "@/data/schemas/chat/sync_message";
} from "@/data/services/schemas/chat/sync_message";
export class SyncMessage {
declare readonly role: string;
@@ -5,7 +5,7 @@ import {
AppEventSchema,
type AppEventInput,
type AppEventData,
} from "@/data/schemas/metrics/app_event";
} from "@/data/services/schemas/metrics/app_event";
export class AppEvent {
declare readonly userId: string;
@@ -5,7 +5,7 @@ import {
PwaEventSchema,
type PwaEventInput,
type PwaEventData,
} from "@/data/schemas/metrics/pwa_event";
} from "@/data/services/schemas/metrics/pwa_event";
export class PwaEvent {
declare readonly deviceId: string;
@@ -5,7 +5,7 @@ import {
AvatarDataSchema,
type AvatarDataInput,
type AvatarDataData,
} from "@/data/schemas/user/avatar_data";
} from "@/data/services/schemas/user/avatar_data";
export class AvatarData {
declare readonly avatarUrl: string;
@@ -5,7 +5,7 @@ import {
CreditsDataSchema,
type CreditsDataInput,
type CreditsDataData,
} from "@/data/schemas/user/credits_data";
} from "@/data/services/schemas/user/credits_data";
export class CreditsData {
declare readonly userId: string;
@@ -5,7 +5,7 @@ import {
CreditsHistoryDataSchema,
type CreditsHistoryDataInput,
type CreditsHistoryDataData,
} from "@/data/schemas/user/credits_history_data";
} from "@/data/services/schemas/user/credits_history_data";
export class CreditsHistoryData {
declare readonly records: Record<string, unknown>[];
@@ -5,7 +5,7 @@ import {
PersonalityTraitsSchema,
type PersonalityTraitsInput,
type PersonalityTraitsData,
} from "@/data/schemas/user/personality_traits";
} from "@/data/services/schemas/user/personality_traits";
export class PersonalityTraits {
declare readonly cheerful: number;
@@ -5,7 +5,7 @@ import {
RecentMemorySchema,
type RecentMemoryInput,
type RecentMemoryData,
} from "@/data/schemas/user/recent_memory";
} from "@/data/services/schemas/user/recent_memory";
export class RecentMemory {
declare readonly type: string;
@@ -5,7 +5,7 @@ import {
UpdateProfileRequestSchema,
type UpdateProfileRequestInput,
type UpdateProfileRequestData,
} from "@/data/schemas/user/update_profile_request";
} from "@/data/services/schemas/user/update_profile_request";
export class UpdateProfileRequest {
declare readonly username: string;
@@ -5,7 +5,7 @@ import {
UserSchema,
type UserInput,
type UserData,
} from "@/data/schemas/user/user";
} from "@/data/services/schemas/user/user";
import { PersonalityTraits } from "./personality_traits";
export class User {
@@ -5,7 +5,7 @@ import {
UserStatsResponseSchema,
type UserStatsResponseInput,
type UserStatsResponseData,
} from "@/data/schemas/user/user_stats_response";
} from "@/data/services/schemas/user/user_stats_response";
import { PersonalityTraits } from "./personality_traits";
import { RecentMemory } from "./recent_memory";
+1 -1
View File
@@ -18,7 +18,7 @@
import {
GuestChatQuotaSchema,
type GuestChatQuotaData,
} from "@/data/schemas/chat/guest_chat_quota";
} from "@/data/services/schemas/chat/guest_chat_quota";
import { z } from "zod";
import { LocalStorage } from "../local_storage";
+1 -1
View File
@@ -12,7 +12,7 @@
*/
import type { Result } from "@/utils/result";
import type { GuestChatQuotaData } from "@/data/schemas/chat/guest_chat_quota";
import type { GuestChatQuotaData } from "@/data/services/schemas/chat/guest_chat_quota";
export interface IChatStorage {
getGuestDailyChatQuota(): Promise<Result<GuestChatQuotaData | null>>;
+1 -1
View File
@@ -12,7 +12,7 @@
*/
import type { Result } from "@/utils/result";
import type { UserData } from "@/data/schemas/user/user";
import type { UserData } from "@/data/services/schemas/user/user";
export interface IUserStorage {
getUser(): Promise<Result<UserData | null>>;
+1 -1
View File
@@ -15,7 +15,7 @@
* - 单例挂在 class 静态字段,HMR 复用安全
*/
import { UserSchema, type UserData } from "@/data/schemas/user/user";
import { UserSchema, type UserData } from "@/data/services/schemas/user/user";
import { LocalStorage } from "../local_storage";
import { type Result as ResultT } from "@/utils/result";
import { StorageKeys } from "../storage_keys";