use chrono::datetime::DateTime;
use chrono::offset::utc::UTC;
use uuid::Uuid;
use rustorm::dao::Dao;
use rustorm::dao::IsDao;
use rustorm::table::IsTable;
use rustorm::table::Column;
use rustorm::table::Table;
#[derive(RustcDecodable, RustcEncodable)]
#[derive(Debug, Clone)]
pub struct Client {
pub client_id:Uuid,
pub active:bool,
pub created:DateTime<UTC>,
pub created_by:Option<Uuid>,
pub description:Option<String>,
pub help:Option<String>,
pub name:Option<String>,
pub organization_id:Option<Uuid>,
pub priority:Option<f64>,
pub updated:DateTime<UTC>,
pub updated_by:Option<Uuid>,
}
#[allow(non_upper_case_globals)]
#[allow(dead_code)]
pub static organization_id: &'static str = "client.organization_id";
#[allow(non_upper_case_globals)]
#[allow(dead_code)]
pub static client_id: &'static str = "client.client_id";
#[allow(non_upper_case_globals)]
#[allow(dead_code)]
pub static created: &'static str = "client.created";
#[allow(non_upper_case_globals)]
#[allow(dead_code)]
pub static created_by: &'static str = "client.created_by";
#[allow(non_upper_case_globals)]
#[allow(dead_code)]
pub static updated: &'static str = "client.updated";
#[allow(non_upper_case_globals)]
#[allow(dead_code)]
pub static updated_by: &'static str = "client.updated_by";
#[allow(non_upper_case_globals)]
#[allow(dead_code)]
pub static priority: &'static str = "client.priority";
#[allow(non_upper_case_globals)]
#[allow(dead_code)]
pub static name: &'static str = "client.name";
#[allow(non_upper_case_globals)]
#[allow(dead_code)]
pub static description: &'static str = "client.description";
#[allow(non_upper_case_globals)]
#[allow(dead_code)]
pub static help: &'static str = "client.help";
#[allow(non_upper_case_globals)]
#[allow(dead_code)]
pub static active: &'static str = "client.active";
impl IsDao for Client{
fn from_dao(dao:&Dao)->Self{
Client{
organization_id: dao.get_opt("organization_id"),
client_id: dao.get("client_id"),
created: dao.get("created"),
created_by: dao.get_opt("created_by"),
updated: dao.get("updated"),
updated_by: dao.get_opt("updated_by"),
priority: dao.get_opt("priority"),
name: dao.get_opt("name"),
description: dao.get_opt("description"),
help: dao.get_opt("help"),
active: dao.get("active"),
}
}
}
impl IsTable for Client{
fn table()->Table{
Table{
schema:"bazaar".to_string(),
name:"client".to_string(),
parent_table:Some("record".to_string()),
sub_table:vec![],
comment:None,
columns:
vec![
Column{
name:"organization_id".to_string(),
data_type:"Uuid".to_string(),
db_data_type:"uuid".to_string(),
is_primary:false, is_unique:false, not_null:false, is_inherited:true,
default:None,
comment:None,
foreign:None,
},
Column{
name:"client_id".to_string(),
data_type:"Uuid".to_string(),
db_data_type:"uuid".to_string(),
is_primary:true, is_unique:false, not_null:true, is_inherited:true,
default:Some("uuid_generate_v4()".to_string()),
comment:None,
foreign:None,
},
Column{
name:"created".to_string(),
data_type:"DateTime<UTC>".to_string(),
db_data_type:"timestamp with time zone".to_string(),
is_primary:false, is_unique:false, not_null:true, is_inherited:true,
default:Some("now()".to_string()),
comment:None,
foreign:None,
},
Column{
name:"created_by".to_string(),
data_type:"Uuid".to_string(),
db_data_type:"uuid".to_string(),
is_primary:false, is_unique:false, not_null:false, is_inherited:true,
default:None,
comment:None,
foreign:None,
},
Column{
name:"updated".to_string(),
data_type:"DateTime<UTC>".to_string(),
db_data_type:"timestamp with time zone".to_string(),
is_primary:false, is_unique:false, not_null:true, is_inherited:true,
default:Some("now()".to_string()),
comment:None,
foreign:None,
},
Column{
name:"updated_by".to_string(),
data_type:"Uuid".to_string(),
db_data_type:"uuid".to_string(),
is_primary:false, is_unique:false, not_null:false, is_inherited:true,
default:None,
comment:None,
foreign:None,
},
Column{
name:"priority".to_string(),
data_type:"f64".to_string(),
db_data_type:"numeric".to_string(),
is_primary:false, is_unique:false, not_null:false, is_inherited:true,
default:None,
comment:None,
foreign:None,
},
Column{
name:"name".to_string(),
data_type:"String".to_string(),
db_data_type:"character varying".to_string(),
is_primary:false, is_unique:false, not_null:false, is_inherited:true,
default:None,
comment:None,
foreign:None,
},
Column{
name:"description".to_string(),
data_type:"String".to_string(),
db_data_type:"character varying".to_string(),
is_primary:false, is_unique:false, not_null:false, is_inherited:true,
default:None,
comment:None,
foreign:None,
},
Column{
name:"help".to_string(),
data_type:"String".to_string(),
db_data_type:"text".to_string(),
is_primary:false, is_unique:false, not_null:false, is_inherited:true,
default:None,
comment:None,
foreign:None,
},
Column{
name:"active".to_string(),
data_type:"bool".to_string(),
db_data_type:"boolean".to_string(),
is_primary:false, is_unique:false, not_null:true, is_inherited:true,
default:Some("true".to_string()),
comment:None,
foreign:None,
},
],
}
}
}