use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ExtraUserObjectPermission {
    #[serde(rename = "id")]
    pub id: i32,
    #[serde(rename = "codename")]
    pub codename: String,
    #[serde(rename = "model")]
    pub model: String,
    #[serde(rename = "app_label")]
    pub app_label: String,
    #[serde(rename = "object_pk")]
    pub object_pk: String,
    #[serde(rename = "name")]
    pub name: String,
        #[serde(rename = "app_label_verbose")]
    pub app_label_verbose: String,
        #[serde(rename = "model_verbose")]
    pub model_verbose: String,
        #[serde(rename = "object_description", deserialize_with = "Option::deserialize")]
    pub object_description: Option<String>,
}
impl ExtraUserObjectPermission {
        pub fn new(
        id: i32,
        codename: String,
        model: String,
        app_label: String,
        object_pk: String,
        name: String,
        app_label_verbose: String,
        model_verbose: String,
        object_description: Option<String>,
    ) -> ExtraUserObjectPermission {
        ExtraUserObjectPermission {
            id,
            codename,
            model,
            app_label,
            object_pk,
            name,
            app_label_verbose,
            model_verbose,
            object_description,
        }
    }
}