//
//  UserInfoBaseClass.h
//
//  Created by Z  on 16/5/11
//  Copyright (c) 2016 __MyCompanyName__. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "UserInfoOwnerOrg.h"
#import "UserInfoLastModifyInfo.h"
#import "UserInfoSocialContact.h"
#import "UserInfoCertificate.h"
#import "UserInfoPasswordControl.h"
#import "UserInfoRoles.h"
#import "UserInfoPostalAddresses.h"
#import "UserInfoIdCard.h"
#import "UserInfoReferrer.h"
#import "UserInfoShop.h"
#import "UserInfoCreateInfo.h"
#import "UserInfoLoginControl.h"
@class UserInfoOwnerOrg, UserInfoLastModifyInfo, UserInfoSocialContact, UserInfoCertificate, UserInfoPasswordControl, UserInfoPostalAddresses, UserInfoIdCard, UserInfoReferrer, UserInfoShop, UserInfoCreateInfo, UserInfoLoginControl;

@interface UserInfoBaseClass : NSObject <NSCoding, NSCopying>

@property (nonatomic, assign) double birthday;
@property (nonatomic, strong) NSString *portrait;
@property (nonatomic, strong) UserInfoOwnerOrg *ownerOrg;
@property (nonatomic, strong) NSString *code;
@property (nonatomic, strong) NSString *telephone;
@property (nonatomic, strong) NSString *mobilephone;
@property (nonatomic, strong) NSString *uuid;
@property (nonatomic, strong) UserInfoLastModifyInfo *lastModifyInfo;
@property (nonatomic, strong) UserInfoSocialContact *socialContact;
@property (nonatomic, strong) UserInfoCertificate *certificate;
@property (nonatomic, assign) double version;
@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSString *invitationCode;
@property (nonatomic, strong) NSString *state;
@property (nonatomic, strong) NSString *domain;
@property (nonatomic, strong) UserInfoPasswordControl *passwordControl;
@property (nonatomic, strong) NSString *gender;
@property (nonatomic, strong) NSArray *roles;
@property (nonatomic, strong) UserInfoPostalAddresses *postalAddresses;
@property (nonatomic, strong) UserInfoIdCard *idCard;
@property (nonatomic, strong) UserInfoReferrer *referrer;
@property (nonatomic, strong) UserInfoShop *shop;
@property (nonatomic, strong) UserInfoCreateInfo *createInfo;
@property (nonatomic, assign) double order;
@property (nonatomic, strong) UserInfoLoginControl *loginControl;
@property (nonatomic, strong) NSString *internalBaseClassDescription;

+ (instancetype)modelObjectWithDictionary:(NSDictionary *)dict;
- (instancetype)initWithDictionary:(NSDictionary *)dict;
- (instancetype)updateWithDictionary:(NSDictionary *)dict;
- (NSDictionary *)dictionaryRepresentation;

@end
