using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SPC.Kiosk.Common
{
    /// <summary>
    /// 모바일 쿠폰 종류
    /// </summary>
    public enum MobileCouponType
    {
        /// <summary>
        /// 물품형 일반
        /// </summary>
        Normal,
        /// <summary>
        /// 금액형 일반
        /// </summary>
        NormalValue,
        /// <summary>
        /// 물품형 횟수제한형
        /// </summary>
        CountLimit,
        /// <summary>
        /// 금액형 금액제한
        /// </summary>
        ValueLimit,
        /// <summary>
        /// 금액형 금액고정형
        /// </summary>
        ValueFixed,
    }
    /// <summary>
    /// 쿠폰 옵션
    /// </summary>
    public enum MobileCouponOptionType
    {
        /// <summary>
        /// 옵션없음
        /// </summary>
        None,
        /// <summary>
        /// 타상품 교환 불가
        /// </summary>
        ItemFixed
    }
    /// <summary>
    /// 쿠폰 상태
    /// </summary>
    public enum MobileCouponStatusType
    {
        /// <summary>
        /// 사용 가능 'Y'
        /// </summary>
        CanUse,
        /// <summary>
        /// 사용 불가능 'N'
        /// </summary>
        CanNotUse,
        /// <summary>
        /// 사용된 'D'
        /// </summary>
        Used,
        /// <summary>
        /// 폐기됨 'C'
        /// </summary>
        Cancel,
        /// <summary>
        /// 환불 'R'
        /// </summary>
        Refound,
    }

    /// <summary>
    /// Basket Item Type
    /// </summary>
    public enum BasketItemType
    {
        /// <summary>
        /// Default
        /// </summary>
        None,
        /// <summary>
        /// Add From Camera Scan
        /// </summary>
        Scan,
        /// <summary>
        /// Add From Barcode Scan
        /// </summary>
        Barcode,
        /// <summary>
        /// Add From Order UI
        /// </summary>
        Order,
    }
    /// <summary>
    /// 결제 완료 형태
    /// </summary>
    public enum PaymentEndWindowEndType
    {
        /// <summary>
        /// 없음
        /// </summary>
        None,
        /// <summary>
        /// 진동벨
        /// </summary>
        Bell,
        /// <summary>
        /// 알림톡
        /// </summary>
        Talk,
        /// <summary>
        /// 대기번호
        /// </summary>
        WaitNumber,
    }
    /// <summary>
    /// Happy Point Member Level
    /// </summary>
    public enum HappyPointMemberLevel
    {
        None,
        Pink,
        Gold,
        VIP
    }
    /// <summary>
    /// 지원 언어
    /// </summary>
    public enum SupportLanguageType
    {
        /// <summary>
        /// 한국어
        /// </summary>
        ko,
        /// <summary>
        /// 영어
        /// </summary>
        en,
        /// <summary>
        /// 일본어
        /// </summary>
        ja,
        /// <summary>
        /// 중국어
        /// </summary>
        zh,
    }
    /// <summary>
    /// Option Select Mode
    /// </summary>
    public enum OptionSelectMode
    {
        /// <summary>
        /// 없음
        /// </summary>
        None,
        /// <summary>
        /// 단일 선택 모드
        /// </summary>
        Single,
        /// <summary>
        /// 복수 선택 모드
        /// </summary>
        Multi
    }
    /// <summary>
    /// Option Type
    /// </summary>
    public enum OptionKind
    {
        /// <summary>
        /// 없음
        /// </summary>
        None,
        /// <summary>
        /// Button Type
        /// </summary>
        Button,
        /// <summary>
        /// 수량 타입
        /// </summary>
        Count,
        /// <summary>
        /// 할인 타입
        /// </summary>
        Discount,
        /// <summary>
        /// 추가금액 타입
        /// </summary>
        UpCharge,
    }

    /// <summary>
    /// 대기화면 클릭 링크
    /// </summary>
    public enum IntroLinkType
    {
        /// <summary>
        /// 없음
        /// </summary>
        None,
        /// <summary>
        /// 페이지 연결
        /// </summary>
        Page,
        /// <summary>
        /// 일반 주문 카테고리 연결
        /// </summary>
        Category,
        /// <summary>
        /// 특정 제품이 있는 목록으로 연결
        /// </summary>
        ItemCode
    }
    /// <summary>
    /// Click Button Animation Types
    /// </summary>
    public enum ButtonAnimationType
    {
        /// <summary>
        /// No Animation
        /// </summary>
        None,
        /// <summary>
        /// Image Bounce Up
        /// </summary>
        BounceUp,
        /// <summary>
        /// Image Bounce Down
        /// </summary>
        BounceDown,
        /// <summary>
        /// Image SizeDown
        /// </summary>
        SizeDown,
        /// <summary>
        /// Image SizeUp
        /// </summary>
        SizeUp,
        /// <summary>
        /// Image Twist
        /// </summary>
        Twist,
        /// <summary>
        /// Text Bounce Up
        /// </summary>
        TextBounceUp,
        /// <summary>
        /// Text Bounce Down
        /// </summary>
        TextBounceDown,
        /// <summary>
        /// Text Down
        /// </summary>
        TextSizeDown,
        /// <summary>
        /// Text Up
        /// </summary>
        TextSizeUp,
        /// <summary>
        /// Text Twist
        /// </summary>
        TextTwist,
        /// <summary>
        /// Image Opacity Down
        /// </summary>
        OpacityDown,
        /// <summary>
        /// Image Opacity Up
        /// </summary>
        OpacityUp,
        FlipX,
        FlipY
    }
    /// <summary>
    /// Image Send Type
    /// </summary>
    public enum ButtonSendAnimationType
    {
        /// <summary>
        /// 없음
        /// </summary>
        None,
        /// <summary>
        /// 크기 속도변경 없이
        /// </summary>
        Normal,
        /// <summary>
        /// 시작 25%위치 50% 나머지 50%이동
        /// </summary>
        SpeedChage,
        /// <summary>
        /// 키운후 줄이며 가속가기
        /// </summary>
        SizeUpDown
    }
    /// <summary>
    /// Open Close Animation Type
    /// </summary>
    public enum OpenCloseAnimationType
    {
        /// <summary>
        /// 없음
        /// </summary>
        None,
        /// <summary>
        /// 왼쪽으로
        /// </summary>
        GotoLeft,
        /// <summary>
        /// 오른쪽으로
        /// </summary>
        GotoRight,
        /// <summary>
        /// 위로
        /// </summary>
        GotoUp,
        /// <summary>
        /// 아래로
        /// </summary>
        GotoDown,
        /// <summary>
        /// 전체 줄이기
        /// </summary>
        FullSizeDown,
        /// <summary>
        /// 전체 키우기
        /// </summary>
        FullSizeUp,
    }
    /// <summary>
    /// Shutter Animation Anchor Position Types
    /// </summary>
    public enum ShutterAnchor
    {
        /// <summary>
        /// 왼쪽
        /// </summary>
        Left,
        /// <summary>
        /// 오른쪽
        /// </summary>
        Right,
        /// <summary>
        /// 상단
        /// </summary>
        Top,
        /// <summary>
        /// 하단
        /// </summary>
        Bottom
    }
    /// <summary>
    /// Image HotSpot Type
    /// </summary>
    public enum HotSpotType
    {
        /// <summary>
        /// 좌상
        /// </summary>
        LeftTop,
        /// <summary>
        /// 좌중앙
        /// </summary>
        LeftCenter,
        /// <summary>
        /// 좌하
        /// </summary>
        LeftBottom,
        /// <summary>
        /// 중상
        /// </summary>
        CenterTop,
        /// <summary>
        /// 정중앙
        /// </summary>
        Center,
        /// <summary>
        /// 중하
        /// </summary>
        CenterBottom,
        /// <summary>
        /// 우상
        /// </summary>
        RightTop,
        /// <summary>
        /// 우중앙
        /// </summary>
        RightCenter,
        /// <summary>
        /// 우하
        /// </summary>
        RightBottom
    }
    /// <summary>
    /// ButtonList TextPosition Type
    /// </summary>
    public enum TextPosition
    {
        /// <summary>
        /// 버튼 안
        /// </summary>
        InnerButton,
        /// <summary>
        /// 왼쪽
        /// </summary>
        Left,
        /// <summary>
        /// 오른쪽
        /// </summary>
        Right,
        /// <summary>
        /// 상단
        /// </summary>
        Top,
        /// <summary>
        /// 하단
        /// </summary>
        Bottom
    }
    /// <summary>
    /// Media Type
    /// </summary>
    public enum MediaType
    {
        /// <summary>
        /// 없음
        /// </summary>
        None,
        /// <summary>
        /// 이미지
        /// </summary>
        Image,
        /// <summary>
        /// 동영상
        /// </summary>
        VOD
    }
    #region Encoding CodeType
    /// <summary>
    /// 문자열 엔코딩 CodeType
    /// </summary>
    public enum CodeType
    {
        /// <summary>
        /// 시스템 기본
        /// </summary>
        Default,
        /// <summary>
        /// ASCII
        /// </summary>
        ASCII,
        /// <summary>
        /// BigEdianUnicode(Unicode의 상하위 Byte가 바뀐 정보)
        /// </summary>
        BigEdianUnicode,
        /// <summary>
        /// Unicode
        /// </summary>
        Unicode,
        /// <summary>
        /// UTF-7
        /// </summary>
        UTF7,
        /// <summary>
        /// UTF-8
        /// </summary>
        UTF8,
        /// <summary>
        /// UTF-32
        /// </summary>
        UTF32
    }

    #endregion
    /// <summary>
    /// Control Char Ctrl_ANSI Value
    /// </summary>
    public enum Ctrl_ASCII
    {
        /// <summary>
        /// 0x00
        /// </summary>
        Null,
        /// <summary>
        /// 0x01
        /// </summary>
        SOH,
        /// <summary>
        /// 0x02
        /// </summary>
        STX,
        /// <summary>
        /// 0x03
        /// </summary>
        ETX,
        /// <summary>
        /// 0x04
        /// </summary>
        EOT,
        /// <summary>
        /// 0x05
        /// </summary>
        ENQ,
        /// <summary>
        /// 0x06
        /// </summary>
        ACK,
        /// <summary>
        /// 0x07
        /// </summary>
        BEL,
        /// <summary>
        /// 0x08
        /// </summary>
        BS,
        /// <summary>
        /// 0x09
        /// </summary>
        HT,
        /// <summary>
        /// 0x0A
        /// </summary>
        LF,
        /// <summary>
        /// 0x0B
        /// </summary>
        VT,
        /// <summary>
        /// 0x0C
        /// </summary>
        FF,
        /// <summary>
        /// 0x0D
        /// </summary>
        CR,
        /// <summary>
        /// 0x0E
        /// </summary>
        SO,
        /// <summary>
        /// 0x0F
        /// </summary>
        SI,
        /// <summary>
        /// 0x10
        /// </summary>
        DLE,
        /// <summary>
        /// 0x11
        /// </summary>
        DC1,
        /// <summary>
        /// 0x12
        /// </summary>
        DC2,
        /// <summary>
        /// 0x13
        /// </summary>
        DC3,
        /// <summary>
        /// 0x14
        /// </summary>
        DC4,
        /// <summary>
        /// 0x15
        /// </summary>
        NAK,
        /// <summary>
        /// 0x16
        /// </summary>
        SYN,
        /// <summary>
        /// 0x17
        /// </summary>
        ETB,
        /// <summary>
        /// 0x18
        /// </summary>
        CAN,
        /// <summary>
        /// 0x19
        /// </summary>
        EM,
        /// <summary>
        /// 0x1A
        /// </summary>
        SUB,
        /// <summary>
        /// 0x1B
        /// </summary>
        ESC,
        /// <summary>
        /// 0x1C
        /// </summary>
        FS,
        /// <summary>
        /// 0x1D
        /// </summary>
        GS,
        /// <summary>
        /// 0x1E
        /// </summary>
        RS,
        /// <summary>
        /// 0x1F
        /// </summary>
        US
    }
    /// <summary>
    /// Log Type
    /// </summary>
    public enum Log_Type
    {
        /// <summary>
        /// Infomation
        /// </summary>
        Info,
        /// <summary>
        /// Error
        /// </summary>
        Error,
        /// Debug
        /// </summary>
        Debug
    }
    /// <summary>
    /// Log Data Structure
    /// </summary>
    public struct Log_Message
    {
        /// <summary>
        /// Log Create Time
        /// </summary>
        public DateTime LogDate;
        /// <summary>
        /// Log Create Object
        /// </summary>
        public String LogFrom;
        /// <summary>
        /// Log Type
        /// </summary>
        public Log_Type LogType;
        /// <summary>
        /// Log Message
        /// </summary>
        public string LogMessage;
    }
    /// <summary>
    /// Log 설정 Structure
    /// </summary>
    public struct Log_Setting
    {
        /// <summary>
        /// Log Save Path
        /// default=AppDomain.CurrentDomain.BaseDirectory + "\\Log"
        /// </summary>
        public string LogPath;
        /// <summary>
        /// Log Name
        /// </summary>
        public string LogName;
        /// <summary>
        /// Selected Log Write Object Names
        /// </summary>
        public string[] LogFrom;
        /// <summary>
        /// Selected Log Types
        /// </summary>
        public Log_Type[] LogType;
        /// <summary>
        /// Maxium Log Store Dates
        /// </summary>
        public int LogDates;
    }

    /// <summary>
    /// Uri Type
    /// </summary>
    public enum UriTypes
    {
        None,
        Item,
        Events,
        Web
    }

    /// <summary>
    /// Popup Parent Page
    /// </summary>
    public enum ParentPage
    {
        EmptyPage,
        PBWindow,
        PBPaymentsWindow
    }

    /// <summary>
    /// Kiosk 에서 사용가능한 결재수단 : 2019-06-10 - 1997fx11
    /// </summary>
    public class NhsFuncInfoType
    {
        /// <summary>
        /// STEP01 포인트 적립 - 해피포인트 적립
        /// </summary>
        public const string SaveHappyPoint = "00058"; 
        /// <summary>
        /// STEP01 포인트 적립 - OK CASHBAG 적립
        /// </summary>
        public const string SaveOkCashBag = "00255";  
        /// <summary>
        /// STEP01 통신사 할인 - SKT
        /// </summary>
        public const string DiscountSKT = "00059"; 
        /// <summary>
        /// STEP01 통신사 할인 - KT
        /// </summary>
        public const string DiscountKT = "00060";  
        /// <summary>
        /// STEP01 통신사 할인 - LGT
        /// </summary>
        public const string DiscountLG = "00061";  
        /// <summary>
        /// STEP02 포인트 사용 - 해피포인트 사용
        /// </summary>
        public const string UsePointHappyPoint = "00078";  
        /// <summary>
        /// STEP02 포인트 사용 - OK CASHBAG 사용
        /// </summary>
        public const string UsePointOkCashBag = "00080";
        /// <summary>
        /// STEP02 쿠폰 사용 - 해피쿠폰할인
        /// </summary>
        public const string UseCouponHappy = "00063";  
        /// <summary>
        /// STEP02 쿠폰 사용 - 모바일쿠폰
        /// </summary>
        public const string UseCouponMobile = "00073";  
        /// <summary>
        /// STEP03 카드 결제 - 신용카드
        /// </summary>
        public const string UseCardPaymentCreditCard = "00071";  
        /// <summary>
        /// STEP03 카드 결제 - SPC 사원증
        /// </summary>
        public const string UseCardPaymentSPCEmployeeCertificate = "00088";
        /// <summary>
        /// STEP03 카드 결제 - T-MONEY
        /// </summary>
        public const string UseCardPaymentTMoney = "00089";
        /// <summary>
        /// STEP03 카드 결제 - 캐시비
        /// </summary>
        public const string UseCardPaymentCashBee = "00091";
        /// <summary>
        /// STEP03 카드 결제 - HAPPY GIFT
        /// </summary>
        public const string UseCardPaymentHappyGift = "00291";  
        /// <summary>
        /// STEP03 카드 결제 - 삼성/LG 페이
        /// </summary>
        public const string UseCardPaymentSamsungLGPay = "00999";
        /// <summary>
        /// STEP03 모바일 결제 - 알리페이
        /// </summary>
        public const string UseCardPaymentAlipay = "00086";
        /// <summary>
        /// STEP03 카드 결제 - 스마일페이
        /// </summary>
        public const string UseCardPaymentSmilePay = "00258";
        /// <summary>
        /// STEP03 모바일 결제 - 제로페이
        /// </summary>
        public const string UseCardPaymentZeroPay = "00302";
    }
}
