use chrono::*;
use reqwest;
#[derive(Debug, Clone, PartialOrd, Ord, PartialEq, Eq, Hash, Default)]
#[derive(Serialize, Deserialize)]
pub struct ApiError {
pub code: String,
pub errors: Vec<Error>,
}
#[derive(Debug, Clone, PartialOrd, Ord, PartialEq, Eq, Hash, Default)]
#[derive(Serialize, Deserialize)]
pub struct Error {
pub message: String,
}
#[derive(Debug, Clone, PartialOrd, Ord, PartialEq, Eq, Hash, Default)]
#[derive(Serialize, Deserialize)]
pub struct Office {
pub name: String,
pub zip: String,
pub prefecture: String,
pub address1: String,
pub address2: String,
pub tel: String,
pub fax: String,
}
#[derive(Debug, Clone, PartialOrd, Ord, PartialEq, Eq, Hash, Default)]
#[derive(Serialize, Deserialize)]
pub struct UpdateOffice {
pub name: Option<String>,
pub zip: Option<String>,
pub prefecture: Option<String>,
pub address1: Option<String>,
pub address2: Option<String>,
pub tel: Option<String>,
pub fax: Option<String>,
}
#[derive(Debug, Clone, PartialOrd, Ord, PartialEq, Eq, Hash, Default)]
#[derive(Serialize, Deserialize)]
pub struct Partners {
pub meta: Meta,
pub partners: Vec<Partner>,
}
#[derive(Debug, Clone, PartialOrd, Ord, PartialEq, Eq, Hash, Default)]
#[derive(Serialize, Deserialize)]
pub struct Meta {
pub total_count: u32,
pub total_pages: u32,
pub current_page: String,
pub per_page: String,
}
#[derive(Debug, Clone, PartialOrd, Ord, PartialEq, Eq, Hash)]
#[derive(Serialize, Deserialize)]
pub struct Partner {
pub id: String,
pub code: Option<String>,
pub name: String,
pub name_kana: Option<String>,
pub name_suffix: String,
pub memo: Option<String>,
pub departments: Vec<Department>,
pub created_at: DateTime<FixedOffset>,
pub updated_at: DateTime<FixedOffset>,
}
#[derive(Debug, Clone, PartialOrd, Ord, PartialEq, Eq, Hash, Default)]
#[derive(Serialize, Deserialize)]
pub struct Department {
pub id: String,
pub zip: Option<String>,
pub tel: Option<String>,
pub prefecture: String,
pub address1: Option<String>,
pub address2: Option<String>,
pub person_name: Option<String>,
pub person_title: Option<String>,
pub name: Option<String>,
pub email: Option<String>,
pub cc_emails: Option<String>,
}
#[derive(Debug, Clone, PartialOrd, Ord, PartialEq, Eq, Hash, Default)]
#[derive(Serialize, Deserialize)]
pub struct NewPartner {
pub code: Option<String>,
pub name: String,
pub name_kana: Option<String>,
pub name_suffix: Option<String>,
pub memo: Option<String>,
pub zip: Option<String>,
pub tel: Option<String>,
pub prefecture: Option<String>,
pub address1: Option<String>,
pub address2: Option<String>,
pub person_name: Option<String>,
pub person_title: Option<String>,
pub department_name: Option<String>,
pub email: Option<String>,
pub cc_emails: Option<String>,
}
#[derive(Debug, Clone, PartialOrd, Ord, PartialEq, Eq, Hash, Default)]
#[derive(Serialize, Deserialize)]
pub struct UpdatePartner {
pub code: Option<String>,
pub name: Option<String>,
pub name_kana: Option<String>,
pub name_suffix: Option<String>,
pub memo: Option<String>,
pub departments: Vec<UpdateDepartmentInfo>,
}
#[derive(Debug, Clone, PartialOrd, Ord, PartialEq, Eq, Hash, Default)]
#[derive(Serialize, Deserialize)]
pub struct UpdateDepartmentInfo {
pub id: Option<String>,
pub zip: Option<String>,
pub tel: Option<String>,
pub prefecture: Option<String>,
pub address1: Option<String>,
pub address2: Option<String>,
pub person_name: Option<String>,
pub person_title: Option<String>,
pub name: Option<String>,
pub email: Option<String>,
pub cc_emails: Option<String>,
}
#[derive(Debug, Clone, PartialOrd, PartialEq, Hash, Default)]
#[derive(Serialize, Deserialize)]
pub struct Billings {
pub meta: Meta,
pub billings: Vec<Billing>,
}
#[derive(Debug, Clone, PartialOrd, Ord, PartialEq, Eq, Hash)]
#[derive(Serialize, Deserialize)]
pub struct Billing {
pub id: String,
pub partner_id: String,
pub department_id: String,
pub partner_name: String,
pub partner_name_suffix: String,
pub partner_detail: String,
pub member_id: String,
pub member_name: Option<String>,
pub office_name: String,
pub office_detail: String,
pub title: Option<String>,
pub excise_price: String,
pub subtotal: String,
pub memo: Option<String>,
pub payment_condition: Option<String>,
pub total_price: String,
pub billing_date: NaiveDate,
pub due_date: NaiveDate,
pub sales_date: NaiveDate,
pub created_at: DateTime<FixedOffset>,
pub updated_at: DateTime<FixedOffset>,
pub billing_number: String,
pub note: Option<String>,
pub document_name: String,
pub tags: Vec<String>,
pub status: Status,
pub items: Vec<BillingItem>,
}
#[derive(Debug, Clone, PartialOrd, Ord, PartialEq, Eq, Hash, Default)]
#[derive(Serialize, Deserialize)]
pub struct Status {
pub posting: String,
pub email: String,
pub download: String,
pub payment: String,
}
#[derive(Debug, Clone, PartialOrd, Ord, PartialEq, Eq, Hash)]
#[derive(Serialize, Deserialize)]
pub struct BillingItem {
pub id: String,
pub code: Option<String>,
pub name: Option<String>,
pub detail: Option<String>,
pub quantity: Option<u32>,
pub unit_price: Option<u32>,
pub unit: Option<String>,
pub price: Option<u32>,
pub display_order: u32,
pub excise: bool,
pub created_at: DateTime<FixedOffset>,
pub updated_at: DateTime<FixedOffset>,
}
#[derive(Debug)]
pub struct BillingPdf(pub(crate) reqwest::Response);
impl ::std::io::Read for BillingPdf {
fn read(&mut self, buf: &mut [u8]) -> ::std::io::Result<usize> {
self.0.read(buf)
}
}
#[derive(Debug, Clone, PartialOrd, Ord, PartialEq, Eq, Hash)]
#[derive(Serialize, Deserialize)]
pub struct BillingQueryResponse {
pub meta: BillingQueryMeta,
pub billings: Vec<Billing>,
}
#[derive(Debug, Clone, PartialOrd, Ord, PartialEq, Eq, Hash)]
#[derive(Serialize, Deserialize)]
pub struct BillingQueryMeta {
pub total_count: u32,
pub total_pages: u32,
pub current_page: String,
pub per_page: String,
pub condition: Condition,
}
#[derive(Debug, Clone, PartialOrd, Ord, PartialEq, Eq, Hash)]
#[derive(Serialize, Deserialize)]
pub struct Condition {
pub query: String,
pub range_key: String,
pub from: NaiveDate,
pub to: NaiveDate,
}
#[derive(Debug, Clone, PartialOrd, Ord, PartialEq, Eq, Hash, Default)]
#[derive(Serialize, Deserialize)]
pub struct NewBilling {
pub department_id: String,
pub title: Option<String>,
pub billing_number: Option<String>,
pub payment_condition: Option<String>,
pub note: Option<String>,
pub billing_date: Option<NaiveDate>,
pub due_date: Option<NaiveDate>,
pub sales_date: Option<NaiveDate>,
pub memo: Option<String>,
pub document_name: Option<String>,
pub tags: Option<String>,
pub items: Vec<NewBillingItem>,
}
#[derive(Debug, Clone, PartialOrd, Ord, PartialEq, Eq, Hash, Default)]
#[derive(Serialize, Deserialize)]
pub struct NewBillingItem {
pub id: Option<String>,
pub name: Option<String>,
pub code: Option<String>,
pub detail: Option<String>,
pub quantity: Option<String>,
pub unit_price: Option<String>,
pub unit: Option<String>,
pub excise: bool,
}
#[derive(Debug, Clone, PartialOrd, Ord, PartialEq, Eq, Hash, Default)]
#[derive(Serialize, Deserialize)]
pub struct UpdateBilling {
pub department_id: String,
pub title: Option<String>,
pub billing_number: Option<String>,
pub payment_condition: Option<String>,
pub note: Option<String>,
pub billing_date: Option<NaiveDate>,
pub due_date: Option<NaiveDate>,
pub sales_date: Option<NaiveDate>,
pub memo: Option<String>,
pub document_name: Option<String>,
pub tags: Option<String>,
pub items: Vec<UpdateBillingItem>,
}
#[derive(Debug, Clone, PartialOrd, Ord, PartialEq, Eq, Hash, Default)]
#[derive(Serialize, Deserialize)]
pub struct UpdateBillingItem {
pub id: Option<String>,
pub name: Option<String>,
pub code: Option<String>,
pub detail: Option<String>,
pub quantity: Option<String>,
pub unit_price: Option<String>,
pub unit: Option<u32>,
pub excise: bool,
pub _destroy: bool,
}
#[derive(Debug, Clone, PartialOrd, Ord, PartialEq, Eq, Hash, Default)]
#[derive(Serialize, Deserialize)]
pub struct Items {
pub meta: ItemsMeta,
pub items: Vec<Item>,
}
#[derive(Debug, Clone, PartialOrd, Ord, PartialEq, Eq, Hash, Default)]
#[derive(Serialize, Deserialize)]
pub struct ItemsMeta {
pub total_count: u32,
pub total_pages: u32,
pub current_page: u32,
pub per_page: u32,
}
#[derive(Debug, Clone, PartialOrd, Ord, PartialEq, Eq, Hash)]
#[derive(Serialize, Deserialize)]
pub struct Item {
pub id: String,
pub code: Option<String>,
pub name: String,
pub detail: Option<String>,
pub quantity: Option<u32>,
pub unit_price: Option<u32>,
pub unit: Option<String>,
pub price: String,
pub excise: bool,
pub created_at: DateTime<FixedOffset>,
pub updated_at: DateTime<FixedOffset>,
}
#[derive(Debug, Clone, PartialOrd, Ord, PartialEq, Eq, Hash, Default)]
#[derive(Serialize, Deserialize)]
pub struct NewItem {
pub name: String,
pub code: Option<String>,
pub detail: Option<String>,
pub unit_price: Option<u32>,
pub unit: Option<String>,
pub quantity: Option<u32>,
pub excise: Option<bool>,
}
#[derive(Debug, Clone, PartialOrd, Ord, PartialEq, Eq, Hash, Default)]
#[derive(Serialize, Deserialize)]
pub struct UpdateItem {
pub name: Option<String>,
pub code: Option<String>,
pub detail: Option<String>,
pub unit_price: Option<u32>,
pub unit: Option<String>,
pub quantity: Option<u32>,
pub excise: Option<bool>,
}
#[derive(Debug, Clone, PartialOrd, Ord, PartialEq, Eq, Hash, Default)]
#[derive(Serialize, Deserialize)]
pub struct SentHistories {
pub meta: Meta,
pub sent_history_list: Vec<SentHistory>,
}
#[derive(Debug, Clone, PartialOrd, Ord, PartialEq, Eq, Hash, Default)]
#[derive(Serialize, Deserialize)]
pub struct SentHistory {
pub operator_id: String,
#[serde(rename = "type")]
pub type_: String,
pub document_type: String,
pub document_id: String,
pub from: String,
pub to: String,
pub cc: String,
pub sent_at: String,
}