rustigram_types/
business.rs1use serde::{Deserialize, Serialize};
2
3use crate::chat::Location;
4use crate::sticker::Sticker;
5
6#[derive(Debug, Clone, Default, Serialize, Deserialize)]
8#[non_exhaustive]
9pub struct BusinessIntro {
10 #[serde(skip_serializing_if = "Option::is_none")]
12 pub title: Option<String>,
13 #[serde(skip_serializing_if = "Option::is_none")]
15 pub message: Option<String>,
16 #[serde(skip_serializing_if = "Option::is_none")]
18 pub sticker: Option<Sticker>,
19}
20
21#[derive(Debug, Clone, Default, Serialize, Deserialize)]
23#[non_exhaustive]
24pub struct BusinessLocation {
25 pub address: String,
27 #[serde(skip_serializing_if = "Option::is_none")]
29 pub location: Option<Location>,
30}
31
32#[derive(Debug, Clone, Default, Serialize, Deserialize)]
37#[non_exhaustive]
38pub struct BusinessOpeningHoursInterval {
39 pub opening_minute: u32,
41 pub closing_minute: u32,
43}
44
45#[derive(Debug, Clone, Default, Serialize, Deserialize)]
47#[non_exhaustive]
48pub struct BusinessOpeningHours {
49 pub time_zone_name: String,
51 pub opening_hours: Vec<BusinessOpeningHoursInterval>,
53}
54
55#[derive(Debug, Clone, Default, Serialize, Deserialize)]
57#[non_exhaustive]
58pub struct Birthdate {
59 pub day: u8,
61 pub month: u8,
63 #[serde(skip_serializing_if = "Option::is_none")]
65 pub year: Option<u16>,
66}
67
68#[derive(Debug, Clone, Default, Serialize, Deserialize)]
70#[non_exhaustive]
71pub struct UserRating {
72 pub level: i64,
74 pub rating: i64,
76 pub current_level_rating: i64,
78 #[serde(skip_serializing_if = "Option::is_none")]
80 pub next_level_rating: Option<i64>,
81}