using System;

namespace OnlineSalesAutoCrop.CoreAPI.Models.Responses.Integrations;

public class IntegrationLoginResponse : ResponseBase
{
    public string LoginId { get; set; }
    public string AccessToken { get; set; } = string.Empty;
    public string RefreshToken { get; set; } = string.Empty;
    public EnumLoginStatus LoginStatus { get; set; }
    public DateTime AccessTokenExpiry { get; set; }
}


public class IntegrationRrefreshTokenResponse : ResponseBase
{
    public string AccessToken { get; set; } = string.Empty;
    public string RefreshToken { get; set; } = string.Empty;
}

public class MobileRrefreshTokenResponse 
{
    public string AccessToken { get; set; } = string.Empty;
    public string RefreshToken { get; set; } = string.Empty;
}

public class RefreshTokenResponse : ResponseBase
{
    public int UserId { get; set; }
    public string TokenHash { get; set; }
    public string IpAddress { get; set; }
    public DateTime ExpiredAt { get; set; }
    public DateTime? RevokedAt { get; set; }
    public string DeviceInfo { get; set; }
    public bool IsActive { get; set; }
}

public class GenerateRefreshTokenResponse : ResponseBase
{
    public string RefreshToken { get; set; }
    public DateTime ExpireTime { get; set; }
}

public class UserByRefreshTokenResponse : ResponseBase
{
    public int UserId { get; set; }
    public string LoginId { get; set; }
    public string EmailAddress { get; set; }
    public string AuthKey { get; set; }
    public bool IsActive { set; get; }
}