5.6 KiB
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
andCustomer
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.