# coding: utf-8

import os
import os.path
import codecs
import json

#----------------------------------------------------------
class Database_cl(object): 
#----------------------------------------------------------
	# da es hier nur darum geht, die Daten dauerhaft zu speichern,
	# wird ein sehr einfacher Ansatz verwendet:
	# - es können Daten zu genau 15 Teams gespeichert werden
	# - je Team werden 2 Teilnehmer mit Namen, Vornamen und Matrikelnummer
	#   berücksichtigt
	# - die Daten werden als eine JSON-Datei abgelegt
	

	#-------------------------------------------------------
	def __init__(self): 
	#-------------------------------------------------------
		self.data_o = None
		self.readData_p()


	#-------------------------------------------------------
	def create_px(self, data_opl): 
	#-------------------------------------------------------
		# Überprüfung der Daten müsste ergänzt werden!
		# 'freien' Platz suchen,
		# falls vorhanden: belegen und Nummer des Platzes als Id zurückgeben
		
		id_s = None
		for loop_i in range(0,15):
			if self.data_o[str(loop_i)][0] == '': 
				id_s = str(loop_i) 
				self.data_o[id_s] = data_opl 
				self.saveData_p()
				break 
		
		return id_s


	#-------------------------------------------------------
	def read_px(self, id_spl = None): 
	#-------------------------------------------------------
		# hier zur Vereinfachung:
		# Aufruf ohne id: alle Einträge liefern 

		data_o = None
		if id_spl == None:
			data_o = self.data_o 
		else:
			if id_spl in self.data_o: 
				data_o = self.data_o[id_spl]
		
		return data_o


	#-------------------------------------------------------
	def update_px(self, id_spl, data_opl): 
	#-------------------------------------------------------
		# Überprüfung der Daten müsste ergänzt werden!
		status_b = False
		if id_spl in self.data_o:
			self.data_o[id_spl] = data_opl
			self.saveData_p()
			status_b = True
		
		return status_b


	#-------------------------------------------------------
	def delete_px(self, id_spl): 
	#-------------------------------------------------------
		#print("\n---------------------- DELETE ---------------------")
		status_b = False
		if id_spl in self.data_o:
			pass
			# hier müssen Sie den Code ergänzen
			# Löschen als Zurücksetzen auf die Default-Werte implementieren
			# Ihre Ergänzung
			self.data_o[id_spl] = {}
			default_s = self.getDefault_px()
			self.data_o[id_spl] = default_s
			self.saveData_p()
		
		return status_b


	#-------------------------------------------------------
	def getDefault_px(self): 
	#-------------------------------------------------------
		return ['', '', '', '', '', '', '', ''] # HIER müssen Sie eine Ergänzung vornehmen


	#-------------------------------------------------------
	def readData_p(self): 
	#-------------------------------------------------------
		try:
			fp_o = codecs.open(os.path.join('data', 'webteams.json'), 'r', 'utf-8')	
		except:
			# Datei neu anlegen self.data_o = {}
			self.data_o = {}
			for loop_i in range(0,15):
				self.data_o[str(loop_i)] = ['', '', '', '', '', '', '', '']
				self.saveData_p() 
		else:
			with fp_o:
				self.data_o = json.load(fp_o)
		
		return


	#-------------------------------------------------------
	def saveData_p(self): 
	#-------------------------------------------------------
		with codecs.open(os.path.join('data', 'webteams.json'), 'w', 'utf-8') as fp_o: 
			json.dump(self.data_o, fp_o)

			
# EOF