|
|
@@ -1,5 +1,6 @@
|
|
|
package com.adealink.weparty.joinus.data
|
|
|
|
|
|
+import android.os.Parcelable
|
|
|
import com.adealink.frame.base.Rlt
|
|
|
import com.adealink.frame.data.json.froJsonErrorNull
|
|
|
import com.adealink.frame.data.json.toJsonErrorNull
|
|
|
@@ -13,9 +14,11 @@ import com.google.gson.JsonSerializer
|
|
|
import com.google.gson.annotations.GsonNullable
|
|
|
import com.google.gson.annotations.JsonAdapter
|
|
|
import com.google.gson.annotations.SerializedName
|
|
|
+import kotlinx.parcelize.Parcelize
|
|
|
import java.lang.reflect.Type
|
|
|
|
|
|
@JsonAdapter(StepFieldParser::class)
|
|
|
+@Parcelize
|
|
|
sealed class StepField<T>(
|
|
|
@SerializedName("fieldCode") val fieldCode: String = "", //字段编码
|
|
|
@SerializedName("fieldName") val fieldName: String = "", //字段名称
|
|
|
@@ -29,7 +32,7 @@ sealed class StepField<T>(
|
|
|
@SerializedName("validate") val validate: StepFieldValidate? = null, //校验器
|
|
|
@GsonNullable
|
|
|
@SerializedName("example") val example: StepFieldExample? = null //示例
|
|
|
-) {
|
|
|
+) : Parcelable {
|
|
|
|
|
|
open fun validate(inputValue: T?): Rlt<Any> {
|
|
|
return Rlt.Success(Unit)
|
|
|
@@ -314,11 +317,13 @@ data class DoubleArrayStepFieldValue(
|
|
|
) : StepFieldValue()
|
|
|
|
|
|
|
|
|
+@Parcelize
|
|
|
data class StepFieldConstant(
|
|
|
@SerializedName("key") val key: String,
|
|
|
@SerializedName("value") val value: String,
|
|
|
-)
|
|
|
+) : Parcelable
|
|
|
|
|
|
+@Parcelize
|
|
|
data class StepFieldValidate(
|
|
|
@GsonNullable
|
|
|
@SerializedName("required") val required: Boolean?, //是否必填
|
|
|
@@ -330,30 +335,33 @@ data class StepFieldValidate(
|
|
|
@SerializedName("arraySize") val arraySize: StepFieldArraySize?, //数组长度(多选)
|
|
|
@GsonNullable
|
|
|
@SerializedName("regex") val desc: String?, //正则
|
|
|
-)
|
|
|
+) : Parcelable
|
|
|
|
|
|
+@Parcelize
|
|
|
data class StepFieldValueSize(
|
|
|
@SerializedName("min") val min: Int, //最小长度
|
|
|
@SerializedName("max") val max: Int, //最大长度
|
|
|
-) {
|
|
|
+) : Parcelable {
|
|
|
fun isValid(): Boolean {
|
|
|
return min < max && max > 0
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+@Parcelize
|
|
|
data class StepFieldNumLimit(
|
|
|
@SerializedName("min") val min: Double, //最小数字
|
|
|
@SerializedName("max") val max: Double, //最大数字
|
|
|
-) {
|
|
|
+) : Parcelable {
|
|
|
fun isValid(): Boolean {
|
|
|
return min < max && max > 0
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+@Parcelize
|
|
|
data class StepFieldArraySize(
|
|
|
@SerializedName("min") val min: Int, //最小数字
|
|
|
@SerializedName("max") val max: Int, //最大数字
|
|
|
-) {
|
|
|
+) : Parcelable {
|
|
|
fun isValid(): Boolean {
|
|
|
return min < max && max > 0
|
|
|
}
|
|
|
@@ -375,6 +383,7 @@ enum class ExampleType(val type: Int) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+@Parcelize
|
|
|
data class StepFieldExample(
|
|
|
@SerializedName("type") val type: Int, //0:图片,1:声音,2:视频,3:url
|
|
|
@SerializedName("value") val value: String, //数值
|
|
|
@@ -382,4 +391,4 @@ data class StepFieldExample(
|
|
|
@SerializedName("title") val title: String?, //标题
|
|
|
@GsonNullable
|
|
|
@SerializedName("desc") val desc: String?, //描述
|
|
|
-)
|
|
|
+) : Parcelable
|