melvin_ob/objective/
secret_img_objective.rs

1use crate::imaging::CameraAngle;
2use chrono::{DateTime, Utc};
3
4/// Represents an objective focused on capturing a secret image.
5#[derive(Debug, Clone)]
6pub struct SecretImgObjective {
7    id: usize,
8    name: String,
9    start: DateTime<Utc>,
10    end: DateTime<Utc>,
11    optic_required: CameraAngle,
12    coverage_required: f32,
13}
14
15impl SecretImgObjective {
16    /// Creates a new [`SecretImgObjective`].
17    ///
18    /// # Arguments
19    /// - `id`: The unique identifier for the objective.
20    /// - `name`: The name of the objective.
21    /// - `start`: The start time of the objective, specified as a `DateTime<Utc>`.
22    /// - `end`: The end time of the objective, specified as a `DateTime<Utc>`.
23    /// - `optic_required`: The required camera angle for capturing the image.
24    /// - `coverage_required`: The required coverage area for image processing.
25    ///
26    /// # Returns
27    /// A new [`SecretImgObjective`] instance.
28    pub fn new(
29        id: usize,
30        name: String,
31        start: DateTime<Utc>,
32        end: DateTime<Utc>,
33        optic_required: CameraAngle,
34        coverage_required: f32,
35    ) -> Self {
36        Self { id, name, start, end, optic_required, coverage_required }
37    }
38}