From a68c5a2e52a62600d3baf579afa484f85d51efb9 Mon Sep 17 00:00:00 2001 From: Vidhu Kant Sharma Date: Wed, 30 Aug 2023 13:18:41 +0530 Subject: added clients list --- src/models/client.rs | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 src/models/client.rs (limited to 'src/models/client.rs') diff --git a/src/models/client.rs b/src/models/client.rs new file mode 100644 index 0000000..a76af70 --- /dev/null +++ b/src/models/client.rs @@ -0,0 +1,83 @@ +/* openbills-web - Web client for Libre Billing Software + * Copyright (C) 2023 Vidhu Kant Sharma + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#[derive(Clone, PartialEq)] +pub struct Address { + pub address_text: String, + pub city: String, + pub state: String, + pub postal_code: String, + pub country: String, +} + +impl Address { + pub fn new() -> Address { + Address { + address_text: String::new(), + city: String::new(), + state: String::new(), + postal_code: String::new(), + country: String::new(), + } + } +} + +#[derive(Clone, PartialEq)] +pub struct Contact { + pub contact_name: String, + pub phone_number: String, + pub email_address: String, + pub website: String, +} + +impl Contact { + pub fn new() -> Contact { + Contact { + contact_name: String::new(), + phone_number: String::new(), + email_address: String::new(), + website: String::new(), + } + } +} + +#[derive(Clone, PartialEq)] +pub struct Client { + pub id: u64, + pub name: String, + pub contact: Contact, + pub gstin: String, + pub billing_address: Address, + pub shipping_addresses: Vec
, +} + +impl Client { + pub fn new() -> Client { + Client { + id: 0, + name: String::new(), + contact: Contact::new(), + gstin: String::new(), + billing_address: Address::new(), + shipping_addresses: Vec::new(), + } + } + + pub fn add_shipping_address(&mut self, address: Address) { + self.shipping_addresses.push(address); + } +} -- cgit v1.2.3