use std::{borrow::Cow, net::IpAddr};
use chrono::{serde::ts_seconds, DateTime, Utc};
use serde::Deserialize;
use super::Captcha;
pub enum Status {
Correct,
Incorrect,
}
#[derive(Deserialize, PartialEq, Eq, Debug)]
#[serde(rename_all = "camelCase")]
#[must_use]
pub struct Solution<'a, T>
where
T: Captcha,
{
#[serde(default = "Default::default")]
pub(crate) task_id: u64,
pub solution: T::Solution,
pub cost: Cow<'a, str>,
#[serde(with = "ts_seconds")]
pub create_time: DateTime<Utc>,
#[serde(with = "ts_seconds")]
pub end_time: DateTime<Utc>,
pub solve_count: u8,
pub ip: IpAddr,
}