use std::collections::HashMap;

use serde::{Deserialize, Serialize};

use crate::ContentId;

/// Content metadata
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct ContentMetadata {
    /// Content identifier
    pub id: ContentId,
    /// Content title
    pub title: String,
    /// Content description/excerpt
    pub description: Option<String>,
    /// Content author
    pub author: Option<String>,
    /// Publication date (ISO 8601)
    pub published_date: Option<String>,
    /// Last modified date (ISO 8601)
    pub modified_date: Option<String>,
    /// Content tags
    pub tags: Vec<String>,
    /// Content category
    pub category: Option<String>,
    /// Language code
    pub language: String,
    /// Content type (blog, page, recipe, etc.)
    pub content_type: String,
    /// Whether content is published
    pub is_published: bool,
    /// Featured/highlighted status
    pub is_featured: bool,
    /// Custom metadata fields
    pub custom_fields: HashMap<String, String>,
}
