§
    ¾¤Àj	  ã                  óx   — d Z ddlmZ ddlmZmZmZ  e ed¬¦  «        d¬¦  «        ZdZdd„Zddd„Z	ddd„Z
dS )uý  Tiá»‡n Ã­ch hiá»ƒn thá»‹ giá»� Viá»‡t Nam (GMT+7) cho thÃ´ng bÃ¡o gá»­i tá»›i ngÆ°á»�i dÃ¹ng.

VÃ¬ sao cáº§n module nÃ y:
    Container Cloud (Docker, python:3.11-slim) cháº¡y mÃºi giá»� UTC, nÃªn `datetime.now()`
    tráº£ vá»� giá»� UTC dáº¡ng naive. Email cáº£nh bÃ¡o tá»«ng ghi "01:18" trong khi thá»±c táº¿ lÃ 
    08:18 sÃ¡ng giá»� VN, khiáº¿n ngÆ°á»�i dÃ¹ng hiá»ƒu nháº§m sá»± cá»‘ xáº£y ra lÃºc ná»­a Ä‘Ãªm.

NguyÃªn táº¯c:
    - Chá»‰ dÃ¹ng cho HIá»‚N THá»Š (email, Telegram, message tráº£ vá»� UI).
    - GiÃ¡ trá»‹ lÆ°u DB / so sÃ¡nh logic váº«n giá»¯ ISO-8601 UTC nhÆ° cÅ©.
    - Viá»‡t Nam khÃ´ng Ã¡p dá»¥ng giá»� mÃ¹a hÃ¨ -> dÃ¹ng offset cá»‘ Ä‘á»‹nh UTC+7, khÃ´ng phá»¥ thuá»™c
      gÃ³i `tzdata` (image slim cÃ³ thá»ƒ thiáº¿u /usr/share/zoneinfo).
é    )Úannotations)ÚdatetimeÚ	timedeltaÚtimezoneé   )ÚhourszGMT+7)Únamez(GMT+7)Úvalueúdatetime | str | NoneÚreturnúdatetime | Nonec                ó0  — | €t          j        t          ¦  «        S t          | t          ¦  «        rM	 t          j        |                      ¦   «                              dd¦  «        ¦  «        } n# t          $ r Y dS w xY w|  	                    t          ¦  «        S )uŽ  Quy Ä‘á»•i vá»� giá»� VN.

    - None            -> thá»�i Ä‘iá»ƒm hiá»‡n táº¡i.
    - datetime naive  -> coi lÃ  giá»� há»‡ thá»‘ng cá»§a mÃ¡y Ä‘ang cháº¡y (UTC trÃªn Cloud,
                         GMT+7 trÃªn mÃ¡y dev Windows) rá»“i quy Ä‘á»•i.
    - datetime aware  -> quy Ä‘á»•i trá»±c tiáº¿p.
    - str ISO-8601    -> parse (há»— trá»£ háº­u tá»‘ 'Z'); chuá»—i khÃ´ng há»£p lá»‡ -> None.
    NÚZz+00:00)
r   ÚnowÚVN_TZÚ
isinstanceÚstrÚfromisoformatÚstripÚreplaceÚ
ValueErrorÚ
astimezone)r
   s    ú&C:\Projects\DSCons\app\core\vn_time.pyÚ_to_vnr      s�   € ð €}ÝŒ|�EÑ"Ô"Ð"Ý�%�ÑÔð ð	ÝÔ*¨5¯;ª;©=¬=×+@Ò+@ÀÀhÑ+OÔ+OÑPÔPˆEˆEøÝð 	ð 	ð 	Ø�4�4ð	øøøà×Ò�EÑ"Ô"Ð"s   ²:A- Á-
A;Á:A;Nr   c                ó€   — t          | ¦  «        }|€t          | ¦  «        S |                     d¦  «        › dt          › �S )ud   Ä�á»‹nh dáº¡ng 'dd/mm/YYYY HH:MM:SS (GMT+7)'. Chuá»—i khÃ´ng parse Ä‘Æ°á»£c tráº£ vá»� nguyÃªn vÄƒn.Nz%d/%m/%Y %H:%M:%Sú )r   r   ÚstrftimeÚVN_TZ_LABEL©r
   Úvn_dts     r   Úformat_vn_timer!   *   s?   € å�5‰MŒM€EØ€}Ý�5‰zŒzÐØ�nŠnÐ0Ñ1Ô1ÐAÐAµKÐAÐAÐAó    c                ól   — t          | ¦  «        }|€t          | ¦  «        S |                     d¦  «        S )uV   Ä�á»‹nh dáº¡ng giá»�:phÃºt 'HH:MM' theo giá»� VN (dÃ¹ng cho nhÃ£n khung giá»� cháº¡y).Nz%H:%M)r   r   r   r   s     r   Úformat_vn_clockr$   2   s0   € å�5‰MŒM€EØ€}Ý�5‰zŒzÐØ�>Š>˜'Ñ"Ô"Ð"r"   )r
   r   r   r   )N)r
   r   r   r   )Ú__doc__Ú
__future__r   r   r   r   r   r   r   r!   r$   © r"   r   ú<module>r(      s¼   ððð ð #Ð "Ð "Ð "Ð "Ð "à 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2àˆ�� Ð#Ñ#Ô#¨'Ð2Ñ2Ô2€Ø€ð#ð #ð #ð #ð&Bð Bð Bð Bð Bð#ð #ð #ð #ð #ð #ð #r"   