@upv/ushi-shared
Version:
Shared DTOs, types, and utilities for the USHI platform (LMS, Trials, Social, Wallet).
69 lines (68 loc) • 2.09 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const BaseDto_1 = __importDefault(require("../base/BaseDto"));
/**
* IdentityProfileDto
*
* DTO for structured legal identity associated with a user.
* Useful for secure trials, identity verification, or eConsent.
*/
class IdentityProfileDto extends BaseDto_1.default {
constructor(data) {
super(data);
this._userId = data.userId;
this._firstName = data.firstName;
this._middleName = data.middleName;
this._lastName = data.lastName;
this._suffix = data.suffix;
this._preferredName = data.preferredName;
this._motherMaidenName = data.motherMaidenName;
this._documentId = data.documentId;
this._identityProvider = data.identityProvider;
}
async serialize() {
return {
...(await this.serializeBase()),
userId: this._userId,
firstName: this._firstName,
middleName: this._middleName ?? null,
lastName: this._lastName,
suffix: this._suffix ?? null,
preferredName: this._preferredName ?? null,
motherMaidenName: this._motherMaidenName ?? null,
documentId: this._documentId ?? null,
identityProvider: this._identityProvider ?? null,
};
}
get userId() {
return this._userId;
}
get firstName() {
return this._firstName;
}
get middleName() {
return this._middleName;
}
get lastName() {
return this._lastName;
}
get suffix() {
return this._suffix;
}
get preferredName() {
return this._preferredName;
}
get motherMaidenName() {
return this._motherMaidenName;
}
get documentId() {
return this._documentId;
}
get identityProvider() {
return this._identityProvider;
}
}
exports.default = IdentityProfileDto;