1use chrono::NaiveDateTime;
2use serde::{Deserialize, Serialize};
3
4use crate::Phrases;
5
6#[derive(Clone, Debug, Serialize, Deserialize)]
7pub struct Clip {
8 pub ulid: ulid::Ulid,
10 pub created_on: NaiveDateTime,
12 pub last_played: NaiveDateTime,
14 pub plays: i64,
16 pub speech_detected: String,
18 pub description: String,
20 pub audio_file: String,
22 pub phrases: Option<Phrases>,
24}
25
26#[derive(Debug, Deserialize, Serialize)]
27pub struct Clips {
28 pub items: u64,
29 pub clips: Vec<Clip>,
30}
31
32#[derive(Debug, Deserialize, Serialize)]
33pub struct ClipUpload {
34 pub description: String,
35 pub phrases: Option<Vec<String>>,
36}
37
38#[derive(Clone, Debug, Deserialize, Serialize)]
39pub struct ClipUpdated {
40 pub new_clip: Clip,
42 pub old_clip: Clip,
44}