const todos = [ 
	{ 
		id : 1, 
		text : "apprendre le javascript",
		done : false

	},
	{ 
		id : 2, 
		text : "Faire des maths",
		done : false

	}]

export default class Model {
	constructor() {
		//this.todos = JSON.parse(localStorage.getItem('todos')) || []
		this.todos = JSON.parse(localStorage.getItem('todos')) || todos 
	}

	_commit(todos) {
		localStorage.setItem('todos', JSON.stringify(todos))
	}

	getTodos(filter){
		if (filter == "active")
			return this.todos.filter(todo => !todo.done)
		if (filter == "done")
			return this.todos.filter(todo => todo.done)

		return this.todos
	}

	add(todoText) {
		const todo = {
			id: this.todos.length > 0 ? this.todos[this.todos.length - 1].id + 1 : 1,
			text: todoText,
			done : false,
		}

		this.todos.push(todo)
		this._commit(this.todos)
		return todo 
	}

	edit(id, updatedText) {
	let todo = this.todos.find(t => t.id === id)
	todo.text = updatedText
	//	this.todos = this.todos.map(todo =>
	//		todo.id === id ? { id: todo.id, text: updatedText, done: todo.done} : todo
	//	)

		this._commit(this.todos)
	}

	delete(id) {
		this.todos = this.todos.filter(todo => todo.id !== id)

		this._commit(this.todos)
	}

	toggle(id) {
		let todo = this.todos.find(t => t.id === id)
		todo.done = !todo.done
		//this.todos = this.todos.map(todo =>
		//	todo.id === id ? { id: todo.id, text: todo.text, done: !todo.done } : todo
		//)
		this._commit(this.todos)
	}
}