Initial project
This commit is contained in:
28
apps/im_app/lib/domain/entities/user.dart
Normal file
28
apps/im_app/lib/domain/entities/user.dart
Normal file
@@ -0,0 +1,28 @@
|
||||
/// 用户 Domain 实体
|
||||
///
|
||||
/// 全局共享实体,被 auth / chat / contact 等多个 Feature 共用。
|
||||
/// 纯 Dart 类,零 Flutter / 零网络 / 零 DB 依赖。
|
||||
///
|
||||
/// ## 数据流位置
|
||||
///
|
||||
/// ```
|
||||
/// 服务端 JSON
|
||||
/// → LoginData(Response DTO,data/remote/login_request.dart)
|
||||
/// → LoginData.toEntity()
|
||||
/// → ★ User ★ ← 你在这里
|
||||
/// → ViewModel.state
|
||||
/// → View 渲染
|
||||
/// ```
|
||||
class User {
|
||||
final String id;
|
||||
final String email;
|
||||
final String? nickname;
|
||||
final String? avatar;
|
||||
|
||||
const User({
|
||||
required this.id,
|
||||
required this.email,
|
||||
this.nickname,
|
||||
this.avatar,
|
||||
});
|
||||
}
|
||||
26
apps/im_app/lib/domain/repositories/auth_repository.dart
Normal file
26
apps/im_app/lib/domain/repositories/auth_repository.dart
Normal file
@@ -0,0 +1,26 @@
|
||||
import '../entities/user.dart';
|
||||
|
||||
/// 认证 Repository 接口(依赖倒置)
|
||||
///
|
||||
/// Domain 层定义 What,Data 层实现 How。
|
||||
/// ViewModel 依赖此接口,不依赖具体实现 [AuthRepositoryImpl]。
|
||||
///
|
||||
/// ## 数据流位置
|
||||
///
|
||||
/// ```
|
||||
/// ViewModel
|
||||
/// → ★ AuthRepository.login() ★ ← 你在这里(接口)
|
||||
/// → AuthRepositoryImpl.login() ← data/repositories/(实现)
|
||||
/// → _client.executeRequest(LoginRequest)
|
||||
/// → 服务端
|
||||
/// ```
|
||||
abstract interface class AuthRepository {
|
||||
/// 登录,返回 Domain Entity [User]
|
||||
Future<User> login({required String email, required String password});
|
||||
|
||||
/// 获取当前登录用户信息
|
||||
Future<User?> getCurrentUser();
|
||||
|
||||
/// 退出登录
|
||||
Future<void> logout();
|
||||
}
|
||||
0
apps/im_app/lib/domain/value_objects/.gitkeep
Normal file
0
apps/im_app/lib/domain/value_objects/.gitkeep
Normal file
Reference in New Issue
Block a user