
    ih&                         d dl m Z d dlmZ d dlmZmZmZmZm	Z	m
Z
mZmZmZmZ d dlmZ d dlmZmZmZ d dlmZmZmZmZmZ  G d deeee      Z G d	 d
e      Z G d de      Z G d de      Zy)    )gettext)_CustomIslamicHolidays)
GREGORIAN_CALENDARFEBMARJUNJULAUGSEPOCTNOVDEC)JULIAN_CALENDAR)ChristianHolidaysIslamicHolidaysInternationalHolidays)ObservedHolidayBaseSAT_TO_NEXT_MONSUN_TO_NEXT_MONSUN_TO_NEXT_TUESAT_SUN_TO_NEXT_MON_TUEc                        e Zd ZdZdZdZ ed      Z ed      Z ed      Z	dZ
ddd	d	d
d
dZdZdddef fdZd Z fdZd Zd Zd Z xZS )BosniaAndHerzegovinaa  Bosnia and Herzegovina holidays.

    References:
        * <https://en.wikipedia.org/wiki/Public_holidays_in_Bosnia_and_Herzegovina>
        * <https://web.archive.org/web/20250415045455/https://www.paragraf.ba/neradni-dani-fbih.html>
        * <https://web.archive.org/web/20250415085409/https://www.paragraf.ba/neradni-dani-republike-srpske.html>
        * <https://web.archive.org/web/20250414212923/https://www.paragraf.ba/neradni-dani-brcko.html>

    Observed holidays rules:
        * BIH: if first day of New Year's Day and Labor Day fall on Sunday, observed on Tuesday.
        * BRC: if holiday fall on Sunday, observed on next working day.
        * SRP: if second day of New Year's Day and Labor Day fall on Sunday, observed on Monday.
    BAbsz%s (procijenjeno)z%s (slobodan dan, procijenjeno)z%s (slobodan dan))BIHBRCSRPr   r   r   )zFederacija Bosne i HercegovineFBiHu   Brčko distriktBDzRepublika SrpskaRS)r   en_USsrukT)islamic_show_estimatedr%   c                    t        j                  | t               t        j                  |        t	        j                  | t
        |       |j                  dt               t        |   |i | y)z
        Args:
            islamic_show_estimated:
                Whether to add "estimated" label to Islamic holidays name
                if holiday date is estimated.
        )clsshow_estimatedobserved_ruleN)	r   __init__r   r   r   #BosniaAndHerzegovinaIslamicHolidays
setdefaultr   super)selfr%   argskwargs	__class__s       i/var/www/api/v1/venv_fitandmore/lib/python3.12/site-packages/holidays/countries/bosnia_and_herzegovina.pyr*   zBosniaAndHerzegovina.__init__O   s^     	""49&&t,  9J`	
 	/?;$)&)    c                     | j                  t        d             | j                  t        d      t               | j	                  t        d             | j                  t        d             y )NzVeliki petak (Pravoslavni)u    Uskrsni ponedjeljak (Katolički)Ramazanski BajramKurban Bajram)_add_good_fridaytr_add_easter_mondayr   _add_eid_al_fitr_day_add_eid_al_adha_day)r.   s    r2   _populate_public_holidaysz.BosniaAndHerzegovina._populate_public_holidays^   sZ    b!=>? 	#E FHZ[ 	!!"%8"9: 	!!"_"56r3   c                 `   | j                   st        d      }| j                  |       | j                  |       | j	                  t        d             t        d      }| j                  |       | j                  |       | j	                  t        d      t               t        | %          y )NNova godina   Božić (Pravoslavni)   Međunarodni praznik rada   Božić (Katolički))
subdivr8   _add_new_years_day_add_new_years_day_two_add_christmas_day_add_labor_day_add_labor_day_twor   r-   _populate_subdiv_holidays)r.   namer1   s     r2   rH   z.BosniaAndHerzegovina._populate_subdiv_holidaysk   s    {{m$D##D)''- ##B'>$?@ 12D%##D) ##B'=$>@RS)+r3   c                    t        d      }| j                  | j                  |      t               | j	                  |       | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d      t               | j                  t        d      t               | j                  t        d             | j                  t        d	             t        d
      }| j                  | j                  |      t               | j                  |       | j                  t        d      d       | j                  t        d             | j                  t        d      t               | j                  t        d      t               | j!                  t        d             | j#                  t        d             y )Nr>   ruleBadnji dan (Pravoslavni)r?   zDan nezavisnosti   Veliki petak (Katolički)   Uskrs (Katolički)Vaskrs (Pravoslavni)!Uskrsni ponedjeljak (Pravoslavni)r@      Dan pobjede nad fašizmomF
is_westernu   Dan državnosti   Badnji dan (Katolički)rA   r5   r6   )r8   _add_observedrC   r   rD   _add_christmas_everE   _add_holiday_mar_1r7   r   _add_easter_sundayr9   rF   rG   _add_world_war_two_victory_day_add_holiday_nov_25_add_eid_al_fitr_day_two_add_eid_al_adha_day_twor.   rI   s     r2   $_populate_subdiv_bih_public_holidaysz9BosniaAndHerzegovina._populate_subdiv_bih_public_holidays   s   - 42248O##D) 	#= >? 	#: ;< 	#5 67 	b!<=?QR 	#7 8:LM 	#9 :; 	#F GH -.4..t4?K% 	++B/J,KX]+^ 	  $5!67 	#< =?QR 	#9 :<NO 	%%b)<&=> 	%%b&9:r3   c                    t        d      }| j                  | j                  |      t               | j	                  |       | j                  | j                  t        d                   | j                  | j                  t        d                   t        d      }| j                  | j                  |      t               | j                  |       | j                  | j                  t        d      t                     y )Nr>   rK   r?   u#   Dan uspostavljanja Brčko distriktar@   rA   )
r8   rV   rC   r   rD   rE   _add_holiday_mar_8rF   rG   r   r^   s     r2   $_populate_subdiv_brc_public_holidaysz9BosniaAndHerzegovina._populate_subdiv_brc_public_holidays   s    - 42248?VW##D) 	42226M3NOP##B'L$MN	
 -.4..t4;RS%##B'=$>@RS	
r3   c                    t        d      }| j                  | j                  |      t               | j	                  |       | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d      t               | j                  t        d      t               | j                  t        d             | j                  t        d	             t        d
      }| j                  | j                  |      t               | j                  |       | j                  t        d      d       | j                  t        d             | j                  t        d      t               | j                  t        d      t               | j!                  t        d             | j#                  t        d             y )Nr>   rK   rM   r?   zPravoslavna Nova godinarN   rO   rP   rQ   r@   rR   FrS   uE   Dan uspostave Opšteg okvirnog sporazuma za mir u Bosni i HercegovinirU   rA   r5   r6   )r8   rV   rC   r   rD   rW   rE   _add_holiday_jan_14r7   r   rY   r9   rF   rG   rZ   _add_holiday_nov_21r\   r]   r^   s     r2   $_populate_subdiv_srp_public_holidaysz9BosniaAndHerzegovina._populate_subdiv_srp_public_holidays   s   - 42248O##D) 	#= >? 	#: ;< 	  $=!>? 	b!<=?QR 	#7 8:LM 	#9 :; 	#F GH -.4..t4?K% 	++B/J,KX]+^  VW	
 	#< =?QR 	#9 :<NO 	%%b)<&=> 	%%b&9:r3   )__name__
__module____qualname____doc__countrydefault_languager8   estimated_labelobserved_estimated_labelobserved_labelsubdivisionssubdivisions_aliasessupported_languagesboolr*   r<   rH   r_   rb   rf   __classcell__)r1   s   @r2   r   r   '   s     G,-O!"CD+,NL +0 ! 6=A *d *7,(0;d
02;r3   r   c                       e Zd Zy)r   Nrg   rh   ri    r3   r2   r   r          r3   r   c                       e Zd Zy)r   Nrv   rw   r3   r2   r   r     rx   r3   r   c                       e Zd ZdZedfedfedfedfedfedfedfed	fed
fedfedfe	dfdZ
dZedfedfedfedfed
fedfedfe	dfedfed	fedfdZy)r+   )  i              	                     )r{       i      i          i  )r{   i                 )r{   r   r   i  i  r   r   r   r   r   r   N)rg   rh   ri   !EID_AL_ADHA_DATES_CONFIRMED_YEARSr   r   r   r   r   r
   EID_AL_ADHA_DATES!EID_AL_FITR_DATES_CONFIRMED_YEARSr   r	   r   EID_AL_FITR_DATESrw   r3   r2   r+   r+     s    (4%AhBiBiAhAhBiBiAhBiBiAhBi )5%BiAhBiAhBiAhBiBiBiAhBir3   r+   N)r   r8   holidays.calendarsr   holidays.calendars.gregorianr   r   r   r   r	   r
   r   r   r   r   holidays.calendars.julianr   holidays.groupsr   r   r   holidays.observed_holiday_baser   r   r   r   r   r   r   r   r+   rw   r3   r2   <module>r      sp    " 5   6 U U T;*,A?T;n		 		
 	*@ r3   