add allMethod #3
			
				
			
		
		
		
	| 
						 | 
				
			
			@ -11,14 +11,16 @@ import (
 | 
			
		|||
 | 
			
		||||
// CreateOptions ...
 | 
			
		||||
type CreateOptions struct {
 | 
			
		||||
	DeviceID   string
 | 
			
		||||
	UserID     string
 | 
			
		||||
	UserAgent  string
 | 
			
		||||
	AppVersion string
 | 
			
		||||
	IP         string
 | 
			
		||||
	FCMToken   string
 | 
			
		||||
	AuthToken  string
 | 
			
		||||
	Language   string
 | 
			
		||||
	DeviceID     string
 | 
			
		||||
	UserID       string
 | 
			
		||||
	UserAgent    string
 | 
			
		||||
	AppVersion   string
 | 
			
		||||
	IP           string
 | 
			
		||||
	FCMToken     string
 | 
			
		||||
	AuthToken    string
 | 
			
		||||
	Language     string
 | 
			
		||||
	Model        string
 | 
			
		||||
	Manufacturer string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Create ...
 | 
			
		||||
| 
						 | 
				
			
			@ -71,6 +73,8 @@ func (payload CreateOptions) newDevice() (result Device, err error) {
 | 
			
		|||
		LastActivatedAt: timeNow,
 | 
			
		||||
		CreatedAt:       timeNow,
 | 
			
		||||
		FCMToken:        payload.FCMToken,
 | 
			
		||||
		Model:           payload.Model,
 | 
			
		||||
		Manufacturer:    payload.Manufacturer,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// App version
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,52 @@
 | 
			
		|||
| 
					
 | 
			||||
package devicemngmt
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
import (
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
	"context"
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
	"github.com/Selly-Modules/mongodb"
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
	"go.mongodb.org/mongo-driver/bson"
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
)
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
// FindAllDevicesByUserID ...
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
func (s Service) FindAllDevicesByUserID(userID string) []ResponseDevice {
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
	var (
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
		ctx    = context.Background()
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
		col    = s.getDeviceCollection()
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
		docs   = make([]Device, 0)
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
		result = make([]ResponseDevice, 0)
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
		cond   = bson.M{
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
			"userID": mongodb.NewIDFromString(userID),
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
		}
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
	)
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
	// Find
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
	cursor, err := col.Find(ctx, cond)
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
	if err != nil {
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
		return result
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
	}
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
	defer cursor.Close(ctx)
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
	cursor.All(ctx, &docs)
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
	// Get response data
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
	for _, doc := range docs {
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
		result = append(result, ResponseDevice{
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
			ID:       doc.ID,
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
			DeviceID: doc.DeviceID,
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
			IP:       doc.IP,
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
			OS: ResponseOS{
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
				Name:    doc.OSName,
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
				Version: doc.OSVersion,
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
			},
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
			AppVersion:      doc.AppVersion,
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
			Language:        doc.Language,
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
			IsMobile:        doc.IsMobile,
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
			FCMToken:        doc.FCMToken,
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
			Model:           doc.Model,
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
			Manufacturer:    doc.Manufacturer,
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
			LastActivatedAt: doc.LastActivatedAt,
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
			CreatedAt:       doc.CreatedAt,
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
		})
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
	}
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
	return result
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
}
 | 
			
		||||
| 
					
 dùng 1 model để public ra thôi. Dùng cái Device luôn đi dùng 1 model để public ra thôi. Dùng cái Device luôn đi 
			
		cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi 
			
		done done 
			
		done done  
			
		 | 
			||||
							
								
								
									
										24
									
								
								model.go
								
								
								
								
							
							
						
						| 
						 | 
				
			
			@ -20,5 +20,29 @@ type Device struct {
 | 
			
		|||
	UserID          primitive.ObjectID `bson:"userID" json:"userId"`
 | 
			
		||||
	AuthToken       string             `bson:"authToken" json:"authToken"`
 | 
			
		||||
	FCMToken        string             `bson:"fcmToken" json:"fcmToken"`
 | 
			
		||||
	Model           string             `bson:"model,omitempty" json:"model,omitempty"`
 | 
			
		||||
	Manufacturer    string             `bson:"manufacturer,omitempty" json:"manufacturer,omitempty"`
 | 
			
		||||
	CreatedAt       time.Time          `bson:"createdAt" json:"createdAt"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ResponseOS ...
 | 
			
		||||
type ResponseOS struct {
 | 
			
		||||
	Name    string `json:"name"`
 | 
			
		||||
	Version string `json:"version"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ResponseDevice ...
 | 
			
		||||
type ResponseDevice struct {
 | 
			
		||||
	ID              primitive.ObjectID `json:"_id"`
 | 
			
		||||
	DeviceID        string             `json:"deviceId"`
 | 
			
		||||
	IP              string             `json:"ip"`
 | 
			
		||||
	OS              ResponseOS         `json:"os"`
 | 
			
		||||
	AppVersion      string             `json:"appVersion"`
 | 
			
		||||
	Language        string             `json:"language"`
 | 
			
		||||
	IsMobile        bool               `json:"isMobile"`
 | 
			
		||||
	FCMToken        string             `json:"fcmToken"`
 | 
			
		||||
	Model           string             `json:"model,omitempty"`
 | 
			
		||||
	Manufacturer    string             `json:"manufacturer,omitempty"`
 | 
			
		||||
	LastActivatedAt time.Time          `json:"lastActivatedAt"`
 | 
			
		||||
	CreatedAt       time.Time          `json:"createdAt"`
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,7 +6,7 @@ import (
 | 
			
		|||
	"github.com/Selly-Modules/logger"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func (co CreateOptions) validate() error{
 | 
			
		||||
func (co CreateOptions) validate() error {
 | 
			
		||||
	// DeviceID
 | 
			
		||||
	if co.DeviceID == "" {
 | 
			
		||||
		logger.Error("devicemngt - Create: no deviceID data", logger.LogData{
 | 
			
		||||
| 
						 | 
				
			
			@ -20,7 +20,7 @@ func (co CreateOptions) validate() error{
 | 
			
		|||
		logger.Error("devicemngt - Create: no userAgent data", logger.LogData{
 | 
			
		||||
			"payload": co,
 | 
			
		||||
		})
 | 
			
		||||
		return  errors.New("no userAgent data")
 | 
			
		||||
		return errors.New("no userAgent data")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// IP
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
dùng 1 model để public ra thôi. Dùng cái Device luôn đi
dùng 1 model để public ra thôi. Dùng cái Device luôn đi
cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi
cái user id sao phải đưa qua mongo id, nó chỉ là string thôi mà, đã note ở PR cũ rồi
done
done
done
done