feat: 复刻小程序四大主页面与底部导航(UI 优先,本地 mock)
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
package com.mingyuan.android_client.core.model
|
||||
|
||||
enum class CheckinStatus(val label: String) {
|
||||
NORMAL("正常"),
|
||||
LATE("迟到"),
|
||||
LEAVE("请假"),
|
||||
ABSENT("不参加讨论"),
|
||||
EARLY_LEAVE("早退"),
|
||||
}
|
||||
|
||||
data class GroupMember(
|
||||
val id: String,
|
||||
val name: String,
|
||||
val checkedIn: Boolean,
|
||||
val checkinTime: String?,
|
||||
val status: CheckinStatus?,
|
||||
)
|
||||
|
||||
data class PersonalCheckinRecord(
|
||||
val date: String,
|
||||
val status: CheckinStatus,
|
||||
val time: String,
|
||||
)
|
||||
|
||||
data class CheckinRecord(
|
||||
val classDate: String,
|
||||
val weekday: String,
|
||||
val dayNum: Int,
|
||||
val checked: Boolean,
|
||||
val status: CheckinStatus?,
|
||||
val groupName: String,
|
||||
val groupMembers: List<GroupMember>,
|
||||
val personalHistory: List<PersonalCheckinRecord>,
|
||||
)
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.mingyuan.android_client.core.model
|
||||
|
||||
enum class ModuleDestination {
|
||||
CHECKIN,
|
||||
PLAN,
|
||||
ABOUT,
|
||||
}
|
||||
|
||||
data class HomeModule(
|
||||
val id: String,
|
||||
val emoji: String,
|
||||
val title: String,
|
||||
val description: String,
|
||||
val destination: ModuleDestination,
|
||||
)
|
||||
|
||||
data class IntroCard(
|
||||
val title: String,
|
||||
val body: String,
|
||||
)
|
||||
|
||||
data class HomeData(
|
||||
val greeting: String,
|
||||
val displayName: String,
|
||||
val encouragement: String,
|
||||
val modules: List<HomeModule>,
|
||||
val intros: List<IntroCard>,
|
||||
)
|
||||
@@ -0,0 +1,48 @@
|
||||
package com.mingyuan.android_client.core.model
|
||||
|
||||
enum class PlanType(val label: String) {
|
||||
WEEKLY("周计划"),
|
||||
MONTHLY("月计划"),
|
||||
YEARLY("年计划"),
|
||||
}
|
||||
|
||||
data class MyPlanRecord(
|
||||
val status: String,
|
||||
val submittedTime: String,
|
||||
val content: String,
|
||||
val attachments: List<String>,
|
||||
)
|
||||
|
||||
data class PlanMember(
|
||||
val id: String,
|
||||
val name: String,
|
||||
val filled: Boolean,
|
||||
)
|
||||
|
||||
data class PlanGroup(
|
||||
val id: String,
|
||||
val name: String,
|
||||
val checkedCount: Int,
|
||||
val memberCount: Int,
|
||||
val members: List<PlanMember>,
|
||||
)
|
||||
|
||||
data class PlanRecord(
|
||||
val type: PlanType,
|
||||
val periodKey: String,
|
||||
val canSubmit: Boolean,
|
||||
val message: String?,
|
||||
val myChecked: Boolean,
|
||||
val myRecord: MyPlanRecord?,
|
||||
val groups: List<PlanGroup>,
|
||||
val unassignedCount: Int,
|
||||
)
|
||||
|
||||
data class PlanSubmitData(
|
||||
val content: String,
|
||||
val attachments: List<String>,
|
||||
val checked: Boolean,
|
||||
val canSubmit: Boolean,
|
||||
val message: String?,
|
||||
val history: List<MyPlanRecord>,
|
||||
)
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.mingyuan.android_client.core.model
|
||||
|
||||
data class ClassGroup(
|
||||
val period: String,
|
||||
val group: String,
|
||||
val role: String,
|
||||
)
|
||||
|
||||
data class UserProfile(
|
||||
val displayName: String,
|
||||
val name: String,
|
||||
val studentId: String,
|
||||
val phone: String?,
|
||||
val role: String,
|
||||
val group: String?,
|
||||
val loginType: String,
|
||||
val avatarUrl: String?,
|
||||
val classGroups: List<ClassGroup>,
|
||||
)
|
||||
Reference in New Issue
Block a user