cronback-api-model 0.1.0

A set of API models for [cronback](https://cronback.me) API protocol. Cronback provides developers a reliable and flexible solution to schedule one-time, recurring cron, and on-demand webhooks.
Documentation
use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
#[cfg(feature = "validation")]
use validator::Validate;

#[derive(Serialize, Deserialize, Debug)]
#[cfg_attr(feature = "validation", derive(Validate))]
#[serde(deny_unknown_fields)]
pub struct CreateAPIkeyRequest {
    #[cfg_attr(
        feature = "validation",
        validate(length(
            min = 2,
            max = 30,
            message = "name must be between 2 and 30 characters"
        ))
    )]
    pub key_name: String,
    #[serde(flatten)]
    pub metadata: APIKeyMetaData,
}

#[derive(Serialize, Deserialize)]
pub struct CreateAPIKeyResponse {
    pub key: String,
}

#[derive(Serialize, Deserialize)]
pub struct ApiKey {
    pub id: String,
    pub name: String,
    pub created_at: DateTime<Utc>,
    #[serde(flatten)]
    pub metadata: APIKeyMetaData,
}

#[derive(Debug, Serialize, Deserialize, Default)]
#[serde(deny_unknown_fields)]
pub struct APIKeyMetaData {
    pub creator_user_id: Option<String>,
}