use crate::utils::seeder;
use wasm_bindgen::prelude::*;
pub const YEAR_MIN: i32 = 1971;
pub const YEAR_MAX: i32 = 2037;
pub const MONTH_MIN: i32 = 1;
pub const MONTH_MAX: i32 = 12;
pub const DAYS_MIN: i32 = 1;
pub const DAYS_MAX: i32 = 28;
pub const HOURS_MIN: i32 = 0;
pub const HOURS_MAX: i32 = 23;
pub const MINUTES_MIN: i32 = 0;
pub const MINUTES_MAX: i32 = 59;
pub const SECONDS_MIN: i32 = 0;
pub const SECONDS_MAX: i32 = 59;
pub const NANO_MIN: i32 = 0;
pub const NANO_MAX: i32 = 23;
fn zero_pad_string(arg: i32) -> String {
if arg < 10 {
format!("0{}",arg)
} else {
arg.to_string()
}
}
#[wasm_bindgen]
pub fn sql_time() -> String {
format!(
"{}:{}:{}",
zero_pad_string(seeder::gen_range(HOURS_MIN..=HOURS_MAX)),
zero_pad_string(seeder::gen_range(MINUTES_MIN..=MINUTES_MAX)),
zero_pad_string(seeder::gen_range(SECONDS_MIN..=SECONDS_MAX))
)
}
#[wasm_bindgen]
pub fn sql_server_time() -> String {
format!(
"{}:{}:{}.{}{}{}{}{}{}{}",
zero_pad_string(seeder::gen_range(HOURS_MIN..=HOURS_MAX)),
zero_pad_string(seeder::gen_range(MINUTES_MIN..=MINUTES_MAX)),
zero_pad_string(seeder::gen_range(SECONDS_MIN..=SECONDS_MAX)),
seeder::gen_range(0..=9),
seeder::gen_range(0..=9),
seeder::gen_range(0..=9),
seeder::gen_range(0..=9),
seeder::gen_range(0..=9),
seeder::gen_range(0..=9),
seeder::gen_range(0..=9)
)
}
#[wasm_bindgen]
pub fn sql_date() -> String {
format!(
"{}-{}-{}",
zero_pad_string(seeder::gen_range(YEAR_MIN..=YEAR_MAX)),
zero_pad_string(seeder::gen_range(MONTH_MIN..=MONTH_MAX)),
zero_pad_string(seeder::gen_range(DAYS_MIN..=DAYS_MAX))
)
}
#[wasm_bindgen]
pub fn sql_datetime() -> String {
format!(
"{}-{}-{} {}:{}:{}.{}{}{}{}{}",
zero_pad_string(seeder::gen_range(YEAR_MIN..=YEAR_MAX)),
zero_pad_string(seeder::gen_range(MONTH_MIN..=MONTH_MAX)),
zero_pad_string(seeder::gen_range(DAYS_MIN..=DAYS_MAX)),
zero_pad_string(seeder::gen_range(HOURS_MIN..=HOURS_MAX)),
zero_pad_string(seeder::gen_range(MINUTES_MIN..=MINUTES_MAX)),
zero_pad_string(seeder::gen_range(SECONDS_MIN..=SECONDS_MAX)),
seeder::gen_range(0..=9),
seeder::gen_range(0..=9),
seeder::gen_range(0..=9),
seeder::gen_range(0..=9),
seeder::gen_range(0..=9)
)
}
#[wasm_bindgen]
pub fn sql_server_datetime() -> String {
format!(
"{}-{}-{} {}:{}:{}.{}{}{}",
zero_pad_string(seeder::gen_range(YEAR_MIN..=YEAR_MAX)),
zero_pad_string(seeder::gen_range(MONTH_MIN..=MONTH_MAX)),
zero_pad_string(seeder::gen_range(DAYS_MIN..=DAYS_MAX)),
zero_pad_string(seeder::gen_range(HOURS_MIN..=HOURS_MAX)),
zero_pad_string(seeder::gen_range(MINUTES_MIN..=MINUTES_MAX)),
zero_pad_string(seeder::gen_range(SECONDS_MIN..=SECONDS_MAX)),
seeder::gen_range(0..=9),
seeder::gen_range(0..=9),
seeder::gen_range(0..=9)
)
}
#[wasm_bindgen]
pub fn sql_server_datetime2() -> String {
format!(
"{}-{}-{} {}:{}:{}.{}{}{}{}{}{}{}",
zero_pad_string(seeder::gen_range(YEAR_MIN..=YEAR_MAX)),
zero_pad_string(seeder::gen_range(MONTH_MIN..=MONTH_MAX)),
zero_pad_string(seeder::gen_range(DAYS_MIN..=DAYS_MAX)),
zero_pad_string(seeder::gen_range(HOURS_MIN..=HOURS_MAX)),
zero_pad_string(seeder::gen_range(MINUTES_MIN..=MINUTES_MAX)),
zero_pad_string(seeder::gen_range(SECONDS_MIN..=SECONDS_MAX)),
seeder::gen_range(0..=9),
seeder::gen_range(0..=9),
seeder::gen_range(0..=9),
seeder::gen_range(0..=9),
seeder::gen_range(0..=9),
seeder::gen_range(0..=9),
seeder::gen_range(0..=9)
)
}