﻿/****************************************************************
        _________  __           __ __   __          
        \_   ___ \|  |_________|__|  | |  |   ____  
        /    \  \/|  |  \_  __ \  |  | |  | _/ __ \ 
        \     \___|   Y  \  | \/  |  |_|  |_\  ___/ 
         \______  /___|  /__|  |__|____/____/\___  >
                \/     \/                        \/ 

                     .ed"""" """$$$$be.
                   -"           ^""**$$$e.  
                 ."                   '$$$c    
                /                      "4$$b   
               d  3                      $$$$   
               $  *                   .$$$$$$    
              .$  ^c           $$$$$e$$$$$$$$.
              d$L  4.         4$$$$$$$$$$$$$$b    
              $$$$b ^ceeeee.  4$$ECL.F*$$$$$$$   
  e$""=.      $$$$P d$$$$F $ $$$$$$$$$- $$$$$$  
 z$$b. ^c     3$$$F "$$$$b   $"$$$$$$$  $$$$*"      .=""$c
4$$$$L         $$P"  "$$b   .$ $$$$$...e$$         .=  e$$$.    
^*$$$$$c  %..   *c    ..    $$ 3$$$$$$$$$$eF     zP  d$$$$$     
  "**$$$ec   "   %ce""    $$$  $$$$$$$$$$*    .r" =$$$$P""
        "*$b.  "c  *$e.    *** d$$$$$"L$$    .d"  e$$***"
          ^*$$c ^$c $$$      4J$$$$$% $$$ .e*".eeP"
             "$$$$$$"'$=e....$*$$**$cz$$" "..d$*"
               "*$$$  *=%4.$ L L$ P3$$$F $$$P"
                  "$   "%*ebJLzb$e$$$$$b $P"
                    %..      4$$$$$$$$$$ "
                     $$$e   z$$$$$$$$$$%
                      "*$c  "$$$$$$$P"
                       ."""*$$$$$$$$bc
                    .-"    .$***$$$"""*e.
                 .-"    .e$"     "*$c  ^*b.
          .=*""""    .e$*"          "*bc  "*$e..
        .$"        .z*"               ^*$e.   "*****e.
        $$ee$c   .d"                     "*$.        3.
        ^*$E")$..$"                         *   .ee==d%
           $.d$$$*                           *  J$$$e*
            """""                              "$$$"

****************************************************************/

	Changelog:
	[+]		New functionality
	[-]		Removed functionality
	[!]		Bug fixed
	[#]		Changed behavior

	0.9.2
			Initial 
	
	1.0.0	First official release (2022-08-31)
		[#]	Implemented new database format from FSManager 1.6.7 (more fields....)
		[#]	New behaviour in FSM: Assistant TS is now TS2 and TS is TS1 (with indexes)
		[!]	Halftime in FSM represented as 01:20 (hour:min) instead of normal 00:01:20. Fixed.
		[#] New Environment variable for FSManager, "StListtool". Used to determine masterdata folder
		[#] Create/Insert db gui: Default is "Insert". "Create" only enabled if elementversions in fsmanageremptydb.sql and Fsm/Masterdata is same
		[!] Exception when trying to insert to empty db

    1.0.1
        [!] Bugg crash: when database name contains "illegal chars", e.g. '-', it crashes. Quote table with ` (not ' or ")
        [!] Duplicate key error: New unique key field 'SortOrder' is built from "sortorder-compid-level-type". If 2 classes with same Level/Tyep ==> crash
            Changed to always keep track on all categories for same level/type and increment "SortOrder"

    1.0.2
        [+] Write club name and club shortname to table 'additionalnamesperson' as TelevisionNamesGenerator. Used for PT3
        [!] Bugg when 'SKD+PD'
        [!] Bugg!! Judges never drawed. Always the same order as they were in IndTAWizards list-view!!! (even when they were drawed...)
        [!] Bugg. Number of judges included SKD

    1.0.3
        [!] Even when there is only one TS (no ATS) it must have judge ID 1, not 0. If there are 2 TS they get ID 1 and ID 2 (that worked before!!!)
        [!] fsSeg.schedule.FirstSkaterInWarmupGroup set to 20 sec (hardcoded) but IndTAWizard calculates with 30 sec. Changed to 30 sec
        [!] Took warmup-time from map file not from "TIM_WARMUP" in timeschedule from IndTAWizard
        [!] Took performance-time from map file not from "TIM_PERFOR" in timeschedule from IndTAWizard
        [!] If only one segment in category ==> it must have SegmentType = 1 (FS). (Not as it was in IsuCalcFS where segment always was indexed from 0)
        [#] If Minior A/B class (SIF or SRF) ==> AllowedMixedGender = true

    1.0.4
        [#] Bugg in FSM: All the judges must be in order in DB or else the judges shows up with wrong number on website
            All judges are now added in "officialinsegment" according to: Ref, judge 1, judge 2 etc, TC, TS1, TS2, DO, VO
        [#] Better checks when try to read old databases. More try-catch
        [+] EVT_EXTDT (EventID/TävlingsID/Arrangörsförening) now written to OdfCompetition.CompetitionCode
        [#] If input json contains 2 TS (NOT TS + ATS) they got JudgeID 1 and 2 (1=TS, 2=ATS)

    1.0.5
        [!] Bugg when judges did exist but was not drawed
        [#] Start implementing Syncro

    1.1.0 (First Syncro version)
        [!] Bugg syncro: Should be 'IntroductionPerformance' not 'IntroductionWarmupGroup'
        [#] Due to the fact that a timeschedule cannot be created in IndTAWiz for syncro, all switches in timeschedule must be set to AUTO

    1.1.1
        [#] New FSM version 1.6.14
        [#] Colors when judges/skaters drawn

    1.1.2
        [#] New fields in FSM DB: 
                Category.CodeIndex ==> set to '0'. If Same 'Type' & 'Level' ==> increment
                Category.CustomLevelName ==> leave 'NULL'
                Competition.CustomSetupName ==> leave 'NULL'

    1.1.3
        [#] Field was removed in FSM DB:
                Segment.IsOffiocial

    1.1.4
        [#] Masterdata-files renamed in version 1.8.3

    1.1.5
        [#] New fields in FSM DB:
            club.Name2
            competitionsettings.AdditionalLanguage
            competitionsettings.PdfShowNation
            competitionsettings.PdfShowClub
            entry.SortOrder
            person.FirstName2
            person.LastName2
            (Collation also changed from 'utf8_unicode_ci' to 'utf8mb4_unicode_ci'. Shouldn't be any problem....)

	TODO:


