use serde::{Deserialize, Serialize};
use crate::{
AndaDBSchema, ByteArrayB64, ByteBufB64, FieldEntry, FieldKey, FieldType, FieldTyped, Json, Map,
Schema, SchemaError,
};
#[derive(Debug, Default, Clone, Serialize, Deserialize, FieldTyped, PartialEq, AndaDBSchema)]
pub struct Resource {
pub _id: u64,
pub tags: Vec<String>,
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub uri: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub mime_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub blob: Option<ByteBufB64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub size: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[unique]
pub hash: Option<ByteArrayB64<32>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub metadata: Option<Map<String, Json>>,
}
#[cfg(test)]
mod tests {}