const excludeAttributes = [ "password", "otp_code", "otp_expires_at", "personal_info.name.given_name", "personal_info.name.middle_name", "personal_info.name.last_name", "personal_info.name.extension_name", "personal_info.addresses[].city", "personal_info.addresses[].country", "personal_info.addresses[].street", "personal_info.addresses[].zip", "personal_info.addresses[].address_type", "personal_info.addresses[].state", "personal_info.phone_number[].country_code", "personal_info.phone_number[].number", "personal_info.phone_number[].phone_type", ]; const jsonbSchemas = { personal_info: { name: { full_name: { type: "text", label: "Full Name" }, }, date_of_birth: { type: "date", label: "Date of Birth" }, occupation: { type: "text", label: "Occupation" }, addresses: { full_address: { type: "text", label: "Full Address" }, }, phone_number: { full_number: { type: "text", label: "Phone Number" }, }, }, }; // Different exclude sets per role const adminExclude = [ ...excludeAttributes, // admins can see audit fields, so nothing extra excluded ]; const userExclude = [ ...excludeAttributes, // regular users cannot see audit trails "created_by", "updated_by", "deleted_by", "deleted_at", ]; module.exports = { excludeAttributes, adminExclude, userExclude, jsonbSchemas };