@vohoaian/datn-models
v1.3.3
Published
- [Gói `datn-models`: Các Mongoose models dựng sẵn cho đồ án cuối kỳ](#gói-datn-models-các-mongoose-models-dựng-sẵn-cho-đồ-án-cuối-kỳ) - [Các Models đang có sẵn:](#các-models-đang-có-sẵn) - [Lưu ý](#lưu-ý) - [AbstractUser (_abstract model - c
Readme
Gói datn-models: Các Mongoose models dựng sẵn cho đồ án cuối kỳ
- Gói
datn-models: Các Mongoose models dựng sẵn cho đồ án cuối kỳ- Các Models đang có sẵn:
- Lưu ý
- AbstractUser (abstract model - can't be used)
- User (mở rộng
AbstractUser) - Manager (mở rộng
AbstractUser) - Shipper (mở rộng
AbstractUser) - Admin (mở rộng
AbstractUser) - Restaurant
- RestaurantReview
- FoodCategory
- Food
- City
- DeliveryAddress
- Order
- ZaloTransaction
- ChatRoom
- ChatMessage
- Receipt
- Notification
- Image
- ShipperReview
- Complaint
- Withdraw
- Setting
- PromoCode (đang xây dựng)
- Các Models đang có sẵn:
Các Models đang có sẵn:
Lưu ý
Trước khi sử dụng được các Models trong gói này, cần gọi hàm
connect(connectionType, uri?). Hàm này nhận 1 hoặc 2 đối số:connectionTypenếu là"PRODUCTION"thì không cần đối số 2connectionTypenếu là"MYSELF"thì truyền vào đối số 2 là connection string (ví dụ:mongodb+srv://admin:123456@yourdomain/xxxx)
Tất cả các models đều có sẵn 2 trường:
CreatedAtUpdatedAt
AbstractUser (abstract model - can't be used)
- *FullName: string
- Phone: string - default = ""
- Email: string
- Gender: [0: UNKNOWN, 1 = MALE, 2 = FEMALE, 3 = OTHER] - default = 0
- DOB: Date
- Password: string - default = ""
- Status: number - default = 0
- Address: Object
- *Street: string
- *Ward: string;
- *District: string;
- *City: string;
- Avatar: string
User (mở rộng AbstractUser)
- GoogleID: string
- FacebookID: string
- Point: number - default = 0
Manager (mở rộng AbstractUser)
- Roles: Array
- PermissionLevel: number - default: 0
- AuthorizedTime: Date - default: now
- AuthorizedBy: ObjectId - ref Manager - must populate
- *Restaurant: ObjectId - ref Restaurant - must populate
Shipper (mở rộng AbstractUser)
- Point: number - default = 0
- Rating: number - min = 0 - max = 5
- Wallet: number - default = 0
- History: Object - default
- Skip: number - default = 0
- Cancel: number - default = 0
- Delivery: number - default = 0
- Setting: Object - default
- MaxOrder: number - default = 1
- MaxDistance: number - default = 3
- MaxAmount: number - default = 1000000
- MinAmount: number - default = 0
Admin (mở rộng AbstractUser)
Restaurant
- *Name: string
- *ContractID: string
- *Address: Object
- *Street: string
- *Ward: string;
- *District: string;
- *City: string;
- Location: Object
- type: string - default: "Point"
- coordinates: tuple[longitude, latitude] - default = [0, 0]
- *OpenAt: Date
- *CloseAt: Date
- *Type: number - default = 0
- Description: string
- Avatar: string
- Anouncement: string
- ParkingFee: number - default = 0
- Status: number - default = 0
- FoodCategories: Array - ref FoodCategory - must populate
- Reviews: Array - ref RestaurantReview - must populate
- Phone: string
- IsPartner: boolean - default = false
- *Categories: Array [0: Đồ ăn, 1: Đồ uống, 2: Ăn vặt, 3: Món chay, 4: Món lẩu, 5: Burger/Pizza, 6: Món gà]
- *City: number
- *District: number
- Rating: number - min = 0 - max = 5
- Wallet: number - default = 0
RestaurantReview
- *User: ObjectId - ref User - must populate
- *Order: ObjectId - ref Order - must populate
- *Restaurant: ObjectId - ref Restaurant - must populate
- *Content: string
- Images: Array;
- Status: number - default = 0
- *Point: number - min = 1 - max = 5
FoodCategory
- *Name: string
- *Restaurant: ObjectId - ref Restaurant
- Status: number - default = 0
- Foods: Array - ref Food - must populate
- Order: number - default = 0
Food
- *Name: string
- *FoodCategory: FoodCategory - ref FoodCategory - must populate
- *OriginalPrice: number
- Avatar: string
- Type: number - default = 0
- Status: number - default = 0
- Order: number - default = 0
- TotalOrder: number - default = 0
- Options: Objecy
- *id: number
- IsMandatory: boolean - default = false
- *Name: string
- MaxSelect: number - default = 1
- Items:
- *id: number
- IsDefault: boolean - default = false
- MaxQuantity: number - default = 1 - min = 1
- *Name: string
- OriginalPrice: string - default = 0
City
- *Id: number
- *Name: string
- *Districts: Array
- *Id: number
- *Name: string
- *Ward: Array
- *Id: number
- *Name: string
Phương thức tĩnh
- City.findAddress(cityId: number, districtId: number, wardId: number) => Promise<{ City: string, District: string, Ward: string, } | null>
- City.findCities() => Promise<Array<{ Id: number, Name: number }>>;
- City.findDistricts(cityId: number) => Promise<Array<{ Id: number, Name: number }>>;
- City.findWards(cityId: number, districtId: number) => Promise<Array<{ Id: number, Name: number }>>;
DeliveryAddress
- *Street: string
- *Ward: string;
- *District: string;
- *City: string;
- *Phone: string
- *User: Object - ref User - must populate
- *Location: Object
- type: string - default: "Point"
- coordinates: tuple[longitude, latitude] - default = [0, 0]
Order
*ShippingFee: number
*Subtotal: number
*Total: number
*Distance: number
*Address: string
*Coor: Object
- *longitude: number
- *latitude: number
*PaymentMethod: number
Note: string;
NoteCancel: string;
*Tool: boolean;
Foods: Array
- *Food: ObjectId - ref Food - must populate
- *Quantity: number
- *Price: number
- Options: Object
- *id: number
- *Items: Object
- *id: number
- *Quantity: number
- *Price: number
ZaloTransaction
- Description: string
- Sender: Object
- *Id: ObjectId
- *Role: number [0: CUSTOMER, 1 = SHIPPER, 2 = MERCHANT, 3 = ADMIN]
- Receiver: Object
- *Id: ObjectId
- *Role: Role [0: CUSTOMER, 1 = SHIPPER, 2 = MERCHANT, 3 = ADMIN]
- Order: ObjectId - ref Order - must populate
- *TransID: string
- *Amount: number
- *IsRefund: boolean
Phương thức trên đối tượng
- getSender(): Promise (trả về Object mà Sender.Id trỏ đến, nằm trong các collection: User, Shipper, Manager, Admin)
- getReceiver(): Promise (trả về Object mà Receiver.Id trỏ đến, nằm trong các collection: User, Shipper, Manager, Admin)
ChatRoom
- TotalChat: number - default = 0
- *Shipper: ObjectId - ref Shipper - must populate
- *User: ObjectId - ref User - must populate
- LastMessage: ObjectId - ref ChatMessage - must populate
ChatMessage
- *Content: string
- *Sender: number [SHIPPER = 1, CUSTOMER = 0]
- ChatRoom: ObjectId - ref ChatRoom - must populate
Receipt
- *PercentFee: number
- *FeeTotal: number
- *Payer: Object
- *Id: ObjectId
- *Role: number [0: CUSTOMER, 1 = SHIPPER, 2 = MERCHANT, 3 = ADMIN]
- Status: number - default = 0
- *DateStart: Date
- DateEnd: Date
Phương thức trên đối tượng
- getPayer(): Promise (trả về Object mà Payer.Id trỏ đến, nằm trong các collection: User, Shipper, Manager, Admin)
Notification
- *Title: string
- *Subtitle: string
- *Receiver: Object
- *Id: ObjectId
- *Role: number [0: CUSTOMER, 1 = SHIPPER, 2 = MERCHANT, 3 = ADMIN]
- Thumbnail: string
- Status: number - default = -1
Phương thức trên đối tượng
- getReceiver(): Promise (trả về Object mà Receiver.Id trỏ đến, nằm trong các collection: User, Shipper, Manager, Admin)
Image
- *Sender: Object
- *Id: ObjectId
- *Role: number [0: CUSTOMER, 1 = SHIPPER, 2 = MERCHANT, 3 = ADMIN]
- *Url: string
ShipperReview
- *User: Types.ObjectId - ref User - must populate
- *Order: Types.ObjectId - ref Order - must populate
- *Shipper: Types.ObjectId - ref Shipper - must populate
- Content: string
- Images: Array
- Status: number - default = 0
- *Point: number - min = 1 - max = 5
Complaint
- *Email: string
- *FullName: string
- *PhoneNumber: string
- *Reason: string
- *OrderID: Types.ObjectId - ref Order - must populate
- Images: Array
- Status: number - default = 0
Withdraw
- *User: Object
- *Id: ObjectId
- *Role: number [0: CUSTOMER, 1 = SHIPPER, 2 = MERCHANT, 3 = ADMIN]
- *Amount: number - min = 0
- Status: number - default = 0
Phương thức trên đối tượng
- getUser(): Promise (trả về Object mà Receiver.Id trỏ đến, nằm trong các collection: User, Shipper, Manager, Admin)
Setting
- PercentFeeShipper: number - default = 0 - min = 0
- PercentFeeMerchant: number - default = 0 - min = 0
- ShippingFee: Array
- *MaxDistance: number
- *Fee: number
- CustomerFee: number - default = 0 - min = 0
- MAX_DAY_DELAY_PAY_RECEIPT: number - default = 14
Phương thức tĩnh
- getSetting(): Promise
- getShippingFee(distanceInKm: number): Promise
