import visit
import lib.datamanagement as datamanagement

#GUI: Setting up the sequence of visit - must be done prior to anything else  
#setup the VisitSetup instances to match the study visit sequence
#the visitdata of each instance will serve to populate individual Visit() instances
#TODO visitlabels MUST start with a letter - ADD regex
#TODO visitlabels MUST be unique

studydb = {}
studyvisit = visit.VisitSetup(1, 'V0')
studydb[studyvisit.uid] = studyvisit

studyvisit = visit.VisitSetup(2, 'V1', 'V0', 10, 2)
studydb[studyvisit.uid] = studyvisit

studyvisit = visit.VisitSetup(3, 'V2', 'V1', 20, 10)
studydb[studyvisit.uid] = studyvisit


datamanagement.save_study_data(studydb)

#TESTED
import visit
import candidate
import lib.datamanagement as DataManagement
import lib.utilities as Utilities

# create studysetup
# saving (DataManagement.save_study_data(studydb)) after each visit is really not necessary
# but this mimics the way the application will work
# rank, visitlabel, previousvisit=None, visitwindow = None, visitmargin = None, mandatory = 'Yes, actions = None, uid=None
#
studydb = {}
studyvisit = visit.VisitSetup(1, "V0", None)
studydb[studyvisit.uid] = studyvisit
Utilities.print_object(studyvisit)
DataManagement.save_study_data(studydb)
studyvisit = visit.VisitSetup(2, "V1", "V0", 10, 2)
studydb[studyvisit.uid] = studyvisit
DataManagement.save_study_data(studydb)
studyvisit = visit.VisitSetup(3, "V2", "V1", 20, 10)
studydb[studyvisit.uid] = studyvisit
DataManagement.save_study_data(studydb)

# create a list of candidate
# saving (DataManagement.save_candidate_data(candidatedb)) after each candidate is really not necessary
# firstname, lastname, phone, uid=None, visitset = None, status = None, pscid=None, **kwargs
# but this mimics the way the application wil work
candidatedb = {}
candidatedata = candidate.Candidate("Billy", "Roberts", "451-784-9856", otherphone="514-874-9658")
candidatedb[candidatedata.uid] = candidatedata
DataManagement.save_candidate_data(candidatedb)