// Copyright (C) 2023 Aravinth Manivannan // SPDX-FileCopyrightText: 2023 Aravinth Manivannan // // SPDX-License-Identifier: MIT //! Milestone associated to a repository within a forge use serde::{Deserialize, Serialize}; use crate::OpenCloseState; /// Milestone associated to a repository within a forge #[derive(Clone, Debug, Serialize, Deserialize, Default, Eq, PartialEq)] pub struct Milestone { /// Unique identifier pub index: usize, /// Short description pub title: String, /// Long, multiline, description pub description: String, // TODO: add validation for format "date-time" /// Deadline after which the milestone is overdue pub deadline: Option, // TODO: add validation for format "date-time" /// Creating time pub created: String, // TODO: add validation for format "date-time" /// Last update time pub updated: String, // TODO: add validation for format "date-time" /// The last time 'state' changed to 'closed' pub closed: String, /// A 'closed' milestone will not see any activity in the future, otherwise it is 'open'. pub state: OpenCloseState, }