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:
@@ -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 {
|
||||
/**
|
||||
+1
-1
@@ -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;
|
||||
+1
-1
@@ -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;
|
||||
+1
-1
@@ -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;
|
||||
+1
-1
@@ -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;
|
||||
+1
-1
@@ -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;
|
||||
+1
-1
@@ -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;
|
||||
+1
-1
@@ -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 {
|
||||
+1
-1
@@ -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;
|
||||
+1
-1
@@ -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;
|
||||
+1
-1
@@ -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;
|
||||
+1
-1
@@ -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;
|
||||
+1
-1
@@ -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;
|
||||
+1
-1
@@ -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;
|
||||
+1
-1
@@ -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;
|
||||
+1
-1
@@ -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 {
|
||||
+1
-1
@@ -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 {
|
||||
// 静态常量
|
||||
+1
-1
@@ -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;
|
||||
+1
-1
@@ -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;
|
||||
+1
-1
@@ -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>[];
|
||||
+1
-1
@@ -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;
|
||||
+1
-1
@@ -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 {
|
||||
+1
-1
@@ -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";
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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>>;
|
||||
|
||||
@@ -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>>;
|
||||
|
||||
@@ -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";
|
||||
|
||||
Reference in New Issue
Block a user