mirror of https://github.com/4xmen/xshop.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
132 lines
5.6 KiB
Markdown
132 lines
5.6 KiB
Markdown
2 weeks ago
|
# Customer Model
|
||
|
|
||
|
The `Customer` model is designed to manage customer information in your application. It stores essential personal information and enables various functionalities related to customer accounts.
|
||
|
|
||
|
## Fields Description
|
||
|
|
||
|
### 1. `id`
|
||
|
- **Type:** Integer
|
||
|
- **Description:** A unique identifier for each customer. This field is automatically generated and serves as the primary key for the model.
|
||
|
|
||
|
### 2. `name`
|
||
|
- **Type:** String (Max Length: 255) (Nullable)
|
||
|
- **Description:** The full name of the customer. This field is optional and can be left blank.
|
||
|
|
||
|
### 3. `email`
|
||
|
- **Type:** String (Unique) (Nullable)
|
||
|
- **Description:** The email address of the customer. This field must be unique and is used for authentication and communication purposes.
|
||
|
|
||
|
### 4. `email_verified_at`
|
||
|
- **Type:** Timestamp (Nullable)
|
||
|
- **Description:** This field stores the timestamp when the customer's email address was verified. It can be `NULL` until verified.
|
||
|
|
||
|
### 5. `password`
|
||
|
- **Type:** String (Nullable)
|
||
|
- **Description:** The customer's hashed password for authentication. This field is optional and can be set during account creation.
|
||
|
|
||
|
### 6. `mobile`
|
||
|
- **Type:** String (Max Length: 15) (Unique) (Nullable)
|
||
|
- **Description:** The mobile phone number of the customer. This field must be unique and is optional.
|
||
|
|
||
|
### 7. `dob`
|
||
|
- **Type:** Date (Nullable)
|
||
|
- **Description:** The date of birth of the customer. This field is optional and can be left blank.
|
||
|
|
||
|
### 8. `sms`
|
||
|
- **Type:** String (Max Length: 10) (Nullable)
|
||
|
- **Description:** This field stores the last authentication code sent via SMS for verification purposes.
|
||
|
|
||
|
### 9. `code`
|
||
|
- **Type:** String (Max Length: 10) (Nullable)
|
||
|
- **Description:** A field that can be used for various purposes, including managing verification codes or promotions.
|
||
|
|
||
|
### 10. `colleague`
|
||
|
- **Type:** Boolean
|
||
|
- **Description:** Indicates whether the customer is a colleague (true/false). The default value is `false`.
|
||
|
|
||
|
### 11. `description`
|
||
|
- **Type:** Text (Nullable)
|
||
|
- **Description:** Additional details about the customer, meant for administrative purposes.
|
||
|
|
||
|
### 12. `credit`
|
||
|
- **Type:** Big Integer
|
||
|
- **Description:** This field tracks the customer's credit balance within the system. It allows for dynamic credit management based on orders and refunds. The default value is `0`.
|
||
|
|
||
|
### 13. `sex`
|
||
|
- **Type:** Enum (Options: `MALE`, `FEMALE`) (Nullable)
|
||
|
- **Description:** The gender of the customer. This field is optional.
|
||
|
|
||
|
### 14. `height`
|
||
|
- **Type:** Integer (Nullable)
|
||
|
- **Description:** The height of the customer in centimeters. This field is optional.
|
||
|
|
||
|
### 15. `weight`
|
||
|
- **Type:** Decimal (Nullable)
|
||
|
- **Description:** The weight of the customer in kilograms. This field is optional.
|
||
|
|
||
|
### 16. `avatar`
|
||
|
- **Type:** String (Nullable)
|
||
|
- **Description:** The file path or URL to the customer's avatar image. This field is optional.
|
||
|
|
||
|
### 17. `card`
|
||
|
- **Type:** JSON (Nullable)
|
||
|
- **Description:** This field stores the customer's bank card number and related information in a JSON format. It is optional.
|
||
|
|
||
|
### 18. `rememberToken`
|
||
|
- **Type:** String
|
||
|
- **Description:** This field is used for "remember me" functionality during authentication, storing a token for persistent login.
|
||
|
|
||
|
## Summary
|
||
|
|
||
|
The `Customer` model provides a detailed and organized structure for managing customer information, including personal details, login credentials, and financial data. It supports functionalities such as credit management and SMS verification.
|
||
|
|
||
|
---
|
||
|
|
||
|
## Address Model
|
||
|
|
||
|
The `Address` model is designed to manage multiple addresses associated with each customer. It allows for the storage of detailed address information, including geographical coordinates and postal codes.
|
||
|
|
||
|
## Fields Description
|
||
|
|
||
|
### 1. `id`
|
||
|
- **Type:** Integer
|
||
|
- **Description:** A unique identifier for each address. This field is automatically generated and serves as the primary key for the model.
|
||
|
|
||
|
### 2. `address`
|
||
|
- **Type:** Text
|
||
|
- **Description:** The full address of the customer. This field is required and stores detailed address information.
|
||
|
|
||
|
### 3. `customer_id`
|
||
|
- **Type:** Unsigned Big Integer
|
||
|
- **Description:** The ID of the customer associated with this address. This establishes a relationship between the `Address` and `Customer` models.
|
||
|
|
||
|
### 4. `lat`
|
||
|
- **Type:** Double (Nullable)
|
||
|
- **Description:** The latitude coordinate of the address, useful for map integrations. This field is optional.
|
||
|
|
||
|
### 5. `lng`
|
||
|
- **Type:** Double (Nullable)
|
||
|
- **Description:** The longitude coordinate of the address, useful for map integrations. This field is optional.
|
||
|
|
||
|
### 6. `state_id`
|
||
|
- **Type:** Unsigned Big Integer (Nullable)
|
||
|
- **Description:** The ID of the state associated with the address. This field can be set to `NULL` if not applicable.
|
||
|
|
||
|
### 7. `city_id`
|
||
|
- **Type:** Unsigned Big Integer (Nullable)
|
||
|
- **Description:** The ID of the city associated with the address. This field can also be set to `NULL`.
|
||
|
|
||
|
### 8. `data`
|
||
|
- **Type:** JSON (Nullable)
|
||
|
- **Description:** This field can store any additional, custom data related to the address in JSON format, providing flexibility in data management.
|
||
|
|
||
|
### 9. `zip`
|
||
|
- **Type:** String (Nullable)
|
||
|
- **Description:** The postal code for the address. This field is optional and can be used for shipping and verification purposes.
|
||
|
|
||
|
## Summary
|
||
|
|
||
|
The `Address` model enhances the `Customer` model by allowing customers to store multiple addresses with detailed information. This setup supports various functionalities such as shipping and billing address management, which can be crucial for e-commerce applications.
|
||
|
|
||
|
---
|
||
|
By integrating the `Customer` and `Address` models into your application, you can establish comprehensive customer management, ensuring efficient handling of personal and logistical information.
|