1616
1717package models .authOfficials
1818
19- import models .{ Enumerable , WithName }
19+ import models .Enumerable
2020import play .api .data .Form
2121import play .api .i18n .Messages
2222import uk .gov .hmrc .govukfrontend .views .viewmodels .content .Text
2323import uk .gov .hmrc .govukfrontend .views .viewmodels .radios .RadioItem
2424import play .api .libs .json ._
2525
26- sealed trait OfficialsPosition
26+ enum OfficialsPosition (val code : String ) {
27+ override def toString : String = code
2728
28- object OfficialsPosition extends Enumerable .Implicits {
29-
30- case object BoardMember extends WithName (" 01" ) with OfficialsPosition
31- case object Bursar extends WithName (" 02" ) with OfficialsPosition
32- private case object Chairman extends WithName (" 03" ) with OfficialsPosition
33- private case object ChiefExecutive extends WithName (" 04" ) with OfficialsPosition
34- case object Director extends WithName (" 05" ) with OfficialsPosition
35- private case object Employee extends WithName (" 06" ) with OfficialsPosition
36- private case object FinanceManager extends WithName (" 07" ) with OfficialsPosition
37- private case object FinancialAccountant extends WithName (" 08" ) with OfficialsPosition
38- private case object GiftAidSecretary extends WithName (" 09" ) with OfficialsPosition
39- private case object Governor extends WithName (" 10" ) with OfficialsPosition
40- private case object HeadTeacher extends WithName (" 11" ) with OfficialsPosition
41- private case object AssistantHeadTeacher extends WithName (" 12" ) with OfficialsPosition
42- private case object HumanResourcesManager extends WithName (" 13" ) with OfficialsPosition
43- private case object InformationOfficer extends WithName (" 14" ) with OfficialsPosition
44- private case object MinisterOfReligion extends WithName (" 15" ) with OfficialsPosition
45- private case object Principal extends WithName (" 16" ) with OfficialsPosition
46- private case object Secretary extends WithName (" 17" ) with OfficialsPosition
47- private case object AssistantSecretary extends WithName (" 18" ) with OfficialsPosition
48- private case object Teacher extends WithName (" 19" ) with OfficialsPosition
49- private case object Treasurer extends WithName (" 20" ) with OfficialsPosition
50- private case object AssistantTreasurer extends WithName (" 21" ) with OfficialsPosition
51- private case object Trustee extends WithName (" 22" ) with OfficialsPosition
52- case object UKAgent extends WithName (" 23" ) with OfficialsPosition
29+ case BoardMember extends OfficialsPosition (" 01" )
30+ case Bursar extends OfficialsPosition (" 02" )
31+ private case Chairman extends OfficialsPosition (" 03" )
32+ private case ChiefExecutive extends OfficialsPosition (" 04" )
33+ case Director extends OfficialsPosition (" 05" )
34+ private case Employee extends OfficialsPosition (" 06" )
35+ private case FinanceManager extends OfficialsPosition (" 07" )
36+ private case FinancialAccountant extends OfficialsPosition (" 08" )
37+ private case GiftAidSecretary extends OfficialsPosition (" 09" )
38+ private case Governor extends OfficialsPosition (" 10" )
39+ private case HeadTeacher extends OfficialsPosition (" 11" )
40+ private case AssistantHeadTeacher extends OfficialsPosition (" 12" )
41+ private case HumanResourcesManager extends OfficialsPosition (" 13" )
42+ private case InformationOfficer extends OfficialsPosition (" 14" )
43+ private case MinisterOfReligion extends OfficialsPosition (" 15" )
44+ private case Principal extends OfficialsPosition (" 16" )
45+ private case Secretary extends OfficialsPosition (" 17" )
46+ private case AssistantSecretary extends OfficialsPosition (" 18" )
47+ private case Teacher extends OfficialsPosition (" 19" )
48+ private case Treasurer extends OfficialsPosition (" 20" )
49+ private case AssistantTreasurer extends OfficialsPosition (" 21" )
50+ private case Trustee extends OfficialsPosition (" 22" )
51+ case UKAgent extends OfficialsPosition (" 23" )
52+ }
5353
54- val values : Seq [OfficialsPosition ] = Seq (
55- BoardMember ,
56- Bursar ,
57- Chairman ,
58- ChiefExecutive ,
59- Director ,
60- Employee ,
61- FinanceManager ,
62- FinancialAccountant ,
63- GiftAidSecretary ,
64- Governor ,
65- HeadTeacher ,
66- AssistantHeadTeacher ,
67- HumanResourcesManager ,
68- InformationOfficer ,
69- MinisterOfReligion ,
70- Principal ,
71- Secretary ,
72- AssistantSecretary ,
73- Teacher ,
74- Treasurer ,
75- AssistantTreasurer ,
76- Trustee ,
77- UKAgent
78- )
7954
80- def options (form : Form [? ])(implicit messages : Messages ): Seq [RadioItem ] = values.map { value =>
55+ object OfficialsPosition extends Enumerable .Implicits {
56+
57+ def options (form : Form [? ])(implicit messages : Messages ): Seq [RadioItem ] = values.toIndexedSeq.map { value =>
8158 RadioItem (
8259 value = Some (value.toString),
8360 content = Text (messages(s " officialsPosition. ${value.toString}" )),
@@ -89,29 +66,29 @@ object OfficialsPosition extends Enumerable.Implicits {
8966 Enumerable (values.map(v => v.toString -> v)* )
9067
9168 implicit def reads : Reads [OfficialsPosition ] = Reads [OfficialsPosition ] {
92- case JsString (BoardMember .toString ) => JsSuccess (BoardMember )
93- case JsString (Bursar .toString ) => JsSuccess (Bursar )
94- case JsString (Chairman .toString ) => JsSuccess (Chairman )
95- case JsString (ChiefExecutive .toString ) => JsSuccess (ChiefExecutive )
96- case JsString (Director .toString ) => JsSuccess (Director )
97- case JsString (Employee .toString ) => JsSuccess (Employee )
98- case JsString (FinanceManager .toString ) => JsSuccess (FinanceManager )
99- case JsString (FinancialAccountant .toString ) => JsSuccess (FinancialAccountant )
100- case JsString (GiftAidSecretary .toString ) => JsSuccess (GiftAidSecretary )
101- case JsString (Governor .toString ) => JsSuccess (Governor )
102- case JsString (HeadTeacher .toString ) => JsSuccess (HeadTeacher )
103- case JsString (AssistantHeadTeacher .toString ) => JsSuccess (AssistantHeadTeacher )
104- case JsString (HumanResourcesManager .toString ) => JsSuccess (HumanResourcesManager )
105- case JsString (InformationOfficer .toString ) => JsSuccess (InformationOfficer )
106- case JsString (MinisterOfReligion .toString ) => JsSuccess (MinisterOfReligion )
107- case JsString (Principal .toString ) => JsSuccess (Principal )
108- case JsString (Secretary .toString ) => JsSuccess (Secretary )
109- case JsString (AssistantSecretary .toString ) => JsSuccess (AssistantSecretary )
110- case JsString (Teacher .toString ) => JsSuccess (Teacher )
111- case JsString (Treasurer .toString ) => JsSuccess (Treasurer )
112- case JsString (AssistantTreasurer .toString ) => JsSuccess (AssistantTreasurer )
113- case JsString (Trustee .toString ) => JsSuccess (Trustee )
114- case JsString (UKAgent .toString ) => JsSuccess (UKAgent )
69+ case JsString (BoardMember .code ) => JsSuccess (BoardMember )
70+ case JsString (Bursar .code ) => JsSuccess (Bursar )
71+ case JsString (Chairman .code ) => JsSuccess (Chairman )
72+ case JsString (ChiefExecutive .code ) => JsSuccess (ChiefExecutive )
73+ case JsString (Director .code ) => JsSuccess (Director )
74+ case JsString (Employee .code ) => JsSuccess (Employee )
75+ case JsString (FinanceManager .code ) => JsSuccess (FinanceManager )
76+ case JsString (FinancialAccountant .code ) => JsSuccess (FinancialAccountant )
77+ case JsString (GiftAidSecretary .code ) => JsSuccess (GiftAidSecretary )
78+ case JsString (Governor .code ) => JsSuccess (Governor )
79+ case JsString (HeadTeacher .code ) => JsSuccess (HeadTeacher )
80+ case JsString (AssistantHeadTeacher .code ) => JsSuccess (AssistantHeadTeacher )
81+ case JsString (HumanResourcesManager .code ) => JsSuccess (HumanResourcesManager )
82+ case JsString (InformationOfficer .code ) => JsSuccess (InformationOfficer )
83+ case JsString (MinisterOfReligion .code ) => JsSuccess (MinisterOfReligion )
84+ case JsString (Principal .code ) => JsSuccess (Principal )
85+ case JsString (Secretary .code ) => JsSuccess (Secretary )
86+ case JsString (AssistantSecretary .code ) => JsSuccess (AssistantSecretary )
87+ case JsString (Teacher .code ) => JsSuccess (Teacher )
88+ case JsString (Treasurer .code ) => JsSuccess (Treasurer )
89+ case JsString (AssistantTreasurer .code ) => JsSuccess (AssistantTreasurer )
90+ case JsString (Trustee .code ) => JsSuccess (Trustee )
91+ case JsString (UKAgent .code ) => JsSuccess (UKAgent )
11592 case _ => JsError (" error.invalid" )
11693 }
11794
0 commit comments