"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.HealthcareParty = void 0;
/**
 * This entity is a root level object. It represents a healthcare party. It is serialized in JSON and saved in the underlying icure-healthdata CouchDB database.
 */
const ModelHelper_1 = require("./ModelHelper");
class HealthcareParty {
    constructor(json) {
        let pictureData = {};
        if (!!(json === null || json === void 0 ? void 0 : json.picture)) {
            if (typeof json.picture === 'string') {
                pictureData.picture = (0, ModelHelper_1.b64_2ab)(json.picture);
            }
            else if (json.picture instanceof ArrayBuffer || ArrayBuffer.isView(json.picture)) {
                pictureData.picture = json.picture;
            }
            else {
                throw new Error(`Invalid type for picture: ${typeof json.picture}`);
            }
        }
        Object.assign(this, json, pictureData);
    }
}
exports.HealthcareParty = HealthcareParty;
(function (HealthcareParty) {
    HealthcareParty.GenderEnum = {
        Male: 'male',
        Female: 'female',
        Indeterminate: 'indeterminate',
        Changed: 'changed',
        ChangedToMale: 'changedToMale',
        ChangedToFemale: 'changedToFemale',
        Unknown: 'unknown',
    };
    HealthcareParty.StatusesEnum = {
        Trainee: 'trainee',
        Withconvention: 'withconvention',
        Accreditated: 'accreditated',
    };
})(HealthcareParty || (exports.HealthcareParty = HealthcareParty = {}));
//# sourceMappingURL=HealthcareParty.js.map