using Microsoft.AspNetCore.Http;
using System;

namespace Mirea.Api.Security.Common.Domain;

public class CookieOptionsParameters
{
    public required string Domain { get; set; }
    public required string Path { get; set; }

    internal void SetCookie(HttpContext context, string name, string value, DateTimeOffset? expires = null)
    {
        var cookieOptions = new CookieOptions
        {
            Expires = expires,
            Path = Path,
            Domain = Domain,
            HttpOnly = true,
#if !DEBUG
            Secure = true
#endif
        };

        context.Response.Cookies.Append(name, value, cookieOptions);
    }

    internal void DropCookie(HttpContext context, string name) =>
        SetCookie(context, name, "", DateTimeOffset.MinValue);
}