From 0d7d20829623b14c8ea5284bc24e63f7c31d61b7 Mon Sep 17 00:00:00 2001 From: Vidhu Kant Sharma Date: Wed, 30 Aug 2023 15:15:31 +0530 Subject: renamed client to customer --- src/models/customer.rs | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 src/models/customer.rs (limited to 'src/models/customer.rs') diff --git a/src/models/customer.rs b/src/models/customer.rs new file mode 100644 index 0000000..65bd700 --- /dev/null +++ b/src/models/customer.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 Customer { + pub id: u64, + pub name: String, + pub contact: Contact, + pub gstin: String, + pub billing_address: Address, + pub shipping_addresses: Vec
, +} + +impl Customer { + pub fn new() -> Customer { + Customer { + 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