//
//  KWMUserModel.m
//  iCemarose
//
//  Created by 陈荣科 on 16/9/12.
//  Copyright © 2016年 kollway. All rights reserved.
//

#import "KWMUserModel.h"
#import <SAMKeychain/SAMKeychain.h>


@implementation KWMUserModel

static KWMUserModel *_shareUser;

+ (instancetype)shareUser{
    
    static dispatch_once_t predicate;
    dispatch_once(&predicate, ^{
        _shareUser = [[self alloc] init];
        
        NSDictionary * dict = [[NSUserDefaults standardUserDefaults] objectForKey:@"customer"];
        //    BUYCustomer *customer = [[BUYModelManager alloc] insertCustomerWithJSONDictionary:dict];
        if (dict != nil) {
            _shareUser.status = 1;
            NSString *phoneNum = [[NSUserDefaults standardUserDefaults] objectForKey:@"PhoneNum"];
            if (phoneNum != nil) {
                _shareUser.name = phoneNum;
            }else{
                _shareUser.name = [dict objectForKey:@"email"];
            }
            if ([dict objectForKey:@"email"] != nil) {
                _shareUser.email = [dict objectForKey:@"email"];
            }
            _shareUser.customerJSON = dict;
        }
        
    });
    return  _shareUser;
}

+ (instancetype)allocWithZone:(struct _NSZone *)zone{
    static dispatch_once_t predicate;
    dispatch_once(&predicate, ^{
        _shareUser = [super allocWithZone:zone];
    });
    return _shareUser;
}

+ (instancetype)copyWithZone:(struct _NSZone *)zone{
    static dispatch_once_t predicate;
    dispatch_once(&predicate, ^{
        _shareUser = [super copyWithZone:zone];
    });
    return _shareUser;
}

- (void)login{
    self.status = 1;
    [self saveUser];
}

- (void)logout{
    self.status = 0;
    [self deleteUser];
}

+ (void) saveAccountByCredentials:(BUYAccountCredentials *) credentials {
    NSString *account = nil,*password = nil;
    for (BUYAccountCredentialItem *item in credentials.items) {
        if ([item.key isEqualToString:BUYAccountEmailKey]) {
            account = item.value.lowercaseString;
        } else if ([item.key isEqualToString:BUYAccountPasswordKey]) {
            password = item.value;
        }
    }
    [SAMKeychain setPassword:password forService:@"cemarose.account" account:account];
}

- (void)deleteUser{
    [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"KeyUser"];
    [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"customer"];
    [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"token"];
    [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"PhoneNum"];
    NSString * path = NSHomeDirectory();
    NSLog(@"path = %@",path);
}

- (void)saveUser{
    NSDictionary *userDict = self.toDictionary;
    NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];
    [defaults setObject:userDict forKey:@"KeyUser"];
    [defaults synchronize];
    NSString * path = NSHomeDirectory();
    NSLog(@"path = %@",path);
}
@end