31 lines
804 B
TypeScript
31 lines
804 B
TypeScript
/**
|
|
* 私密消息解锁请求 DTO
|
|
*/
|
|
import {
|
|
UnlockPrivateRequestSchema,
|
|
type UnlockPrivateRequestData,
|
|
type UnlockPrivateRequestInput,
|
|
} from "@/data/schemas/chat/unlock_private_request";
|
|
|
|
export class UnlockPrivateRequest {
|
|
declare readonly messageId: string;
|
|
|
|
private constructor(input: UnlockPrivateRequestInput) {
|
|
const data = UnlockPrivateRequestSchema.parse(input);
|
|
Object.assign(this, data);
|
|
Object.freeze(this);
|
|
}
|
|
|
|
static from(input: UnlockPrivateRequestInput): UnlockPrivateRequest {
|
|
return new UnlockPrivateRequest(input);
|
|
}
|
|
|
|
static fromJson(json: unknown): UnlockPrivateRequest {
|
|
return UnlockPrivateRequest.from(json as UnlockPrivateRequestInput);
|
|
}
|
|
|
|
toJson(): UnlockPrivateRequestData {
|
|
return UnlockPrivateRequestSchema.parse(this);
|
|
}
|
|
}
|