//
//  LMNItem.m
//  LMNote
//
//  Created by littleMeaning on 2018/7/2.
//  Copyright © 2018年 littleMeaning. All rights reserved.
//

#import "LMNItem.h"
#import "LMNStore.h"
#import "LMNFolder.h"

@interface LMNItem ()

@end

@implementation LMNItem

- (instancetype)initWithUUID:(NSUUID *)uuid name:(NSString *)name date:(NSDate *)date
{
    self = [super init];
    if (self) {
        self.uuid = uuid;
        self.name = name;
        self.date = date;
    }
    return self;
}

- (void)setParent:(LMNFolder *)parent
{
    _parent = parent;
    self.store = parent.store;
}

- (void)save
{
    if ([self.parent.contents containsObject:self]) {
        [self.store save:self userInfo:nil];
    }
    else {
        [self.parent add:self];
    }
}

- (void)delete
{
    [self.parent remove:self];
}

- (void)encodeWithCoder:(NSCoder *)aCoder
{
    [aCoder encodeObject:self.uuid.UUIDString forKey:@"uuid"];
    [aCoder encodeObject:self.name forKey:@"name"];
    [aCoder encodeObject:self.date forKey:@"date"];
}

- (instancetype)initWithCoder:(NSCoder *)aDecoder
{
    self = [super init];
    if (self) {
        self.uuid = [[NSUUID alloc] initWithUUIDString:[aDecoder decodeObjectForKey:@"uuid"]];
        self.name = [aDecoder decodeObjectForKey:@"name"];
        self.date = [aDecoder decodeObjectForKey:@"date"];
    }
    return self;
}

@end