package Ġcom . a al z ate a . courses . linkedin learning . challenges . kotlin . exercise 2 Ċ Ċ private Ġenum Ġclass ĠSe at Type ( val Ġprice : ĠDouble , Ġval Ġdescription : ĠString ) Ġ{ ĊĠĠĠ ĠBACK _ ROW ( 1 4 . 5 0 , Ġ" Back Ġrow "), ĊĠĠĠ ĠCHE AP ER _ SE AT ( 1 4 . 5 0 , Ġ" Che aper Ġseat "), ĊĠĠĠ ĠRESTRICT ED _ VIEW ( 1 6 . 5 0 , Ġ" Restricted ĠView "), ĊĠĠĠ ĠB EST _ VIEW ( 2 1 . 0 0 , Ġ" Best Ġview "), ĊĠĠĠ ĠST AND ARD _ SE AT ( 1 8 . 0 0 , Ġ" Standard Ġseat "); Ċ } Ċ Ċ class ĠThe ater Ġ{ ĊĊĠĠĠ Ġ// ĠSE AT ĠPR ICES : ĊĠĠĠ Ġ// ĠSe ats Ġin Ġrows Ġ 1 4 Ġand Ġ 1 5 Ġcost Ġ 1 4 . 5 0 ĊĠĠĠ Ġ// ĠSe ats Ġin Ġrows Ġ 1 Ġto Ġ 1 3 Ġand Ġnumber ed Ġ 1 Ġto Ġ 3 Ġor Ġ 3 4 Ġto Ġ 3 6 Ġcost Ġ 1 6 . 5 0 ĊĠĠĠ Ġ// ĠAll Ġother Ġse ats Ġin Ġrow Ġ 1 Ġcost Ġ 2 1 . 0 0 ĊĠĠĠ Ġ// ĠAll Ġother Ġse ats Ġcost Ġ 1 8 . 0 0 ĊĊĠĠĠ Ġ// ĠSE AT ĠDESCRIPTION S : ĊĠĠĠ Ġ// ĠSe ats Ġin Ġrow Ġ 1 5 : Ġ" Back Ġrow " ĊĠĠĠ Ġ// ĠSe ats Ġin Ġrow Ġ 1 4 : Ġ" Che aper Ġseat " ĊĠĠĠ Ġ// ĠAll Ġother Ġrows , Ġse ats Ġ 1 Ġto Ġ 3 Ġand Ġ 3 4 Ġto Ġ 3 6 : Ġ" Restricted ĠView " ĊĠĠĠ Ġ// ĠAll Ġother Ġse ats Ġin Ġrows Ġ 1 Ġand Ġ 2 Ġ" Best Ġview " ĊĠĠĠ Ġ// ĠAll Ġother Ġse ats : Ġ" Standard Ġseat " ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠRO WS : ĠInt Ġ= Ġ 1 5 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠCOL UMNS : ĠInt Ġ= Ġ 3 6 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġhidden Se ats : ĠList < Seat >? Ġ= Ġnull ĊĊĠĠĠ Ġval Ġse ats ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġhidden Se ats Ġ?: ĠlistOf () // THIS ĠMUST ĠBE ĠAN ĠI MM UT ABLE ĠLIST ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġhidden Se ats Ġ= Ġfill Se ats () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfill Se ats (): ĠList < Seat > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġse ats Ġ= Ġmutable ListOf < Seat >() ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( row Ġin Ġ 1 .. ROWS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( column Ġin Ġ 1 .. COLUMNS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġseat Ġ= Ġcreate Seat ( row , Ġcolumn ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġse ats . add ( seat ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġse ats . toList () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Seat ( row : ĠInt , Ġcolumn : ĠInt ): ĠSe at Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġseat Type Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow Ġin Ġ 1 .. 2 Ġ&& Ġcolumn Ġin Ġ 4 .. 3 3 Ġ-> ĠSe at Type . BEST _ VIEW ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow Ġin Ġ 3 .. 1 3 Ġ&& Ġcolumn Ġin Ġ 4 .. 3 3 Ġ-> ĠSe at Type . STANDARD _ SE AT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow Ġin Ġ 1 .. 1 3 Ġ&& Ġ( column Ġin Ġ 1 .. 3 Ġ|| Ġcolumn Ġin Ġ 3 4 .. 3 6 ) Ġ-> ĠSe at Type . RE STRICT ED _ VIEW ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow Ġ== Ġ 1 4 Ġ-> ĠSe at Type . CHE AP ER _ SE AT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠSe at Type . BACK _ ROW ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠSe at ( row , Ġcolumn , Ġseat Type . price . to BigDecimal (), Ġseat Type . description ) ĊĠĠĠ Ġ} Ċ }