/*
 * Clerk Backend API
 *
 * The Clerk REST Backend API, meant to be accessed by backend servers. Please see https://clerk.com/docs for more information.
 *
 * The version of the OpenAPI document: v1
 * Contact: support@clerk.com
 * Generated by: https://openapi-generator.tech
 */

#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct OrganizationMembershipPublicUserData {
	#[serde(rename = "user_id", skip_serializing_if = "Option::is_none")]
	pub user_id: Option<String>,
	#[serde(
		rename = "first_name",
		default,
		with = "::serde_with::rust::double_option",
		skip_serializing_if = "Option::is_none"
	)]
	pub first_name: Option<Option<String>>,
	#[serde(
		rename = "last_name",
		default,
		with = "::serde_with::rust::double_option",
		skip_serializing_if = "Option::is_none"
	)]
	pub last_name: Option<Option<String>>,
	#[serde(
		rename = "profile_image_url",
		default,
		with = "::serde_with::rust::double_option",
		skip_serializing_if = "Option::is_none"
	)]
	pub profile_image_url: Option<Option<String>>,
	#[serde(
		rename = "identifier",
		default,
		with = "::serde_with::rust::double_option",
		skip_serializing_if = "Option::is_none"
	)]
	pub identifier: Option<Option<String>>,
}

impl OrganizationMembershipPublicUserData {
	pub fn new() -> OrganizationMembershipPublicUserData {
		OrganizationMembershipPublicUserData {
			user_id: None,
			first_name: None,
			last_name: None,
			profile_image_url: None,
			identifier: None,
		}
	}
}
