using Microsoft.AspNetCore.Mvc;
using System.ComponentModel.DataAnnotations;

namespace economy.Models.Price.Domestic.Oil
{
    /*
     * 석유전자상거래시장에 상장된 석유상품의 시세 정보를 제공
     * 예시 ) https://apis.data.go.kr/1160100/service/GetGeneralProductInfoService/getOilPriceInfo?serviceKey=vQz8tIxrdhjerG6DE1w1hcVEli5S27LtIsCvx0axiieZmRgOpB4vToQ77VmvknAkIC9YjxlPx2gDZcl06S88Xw%3D%3D&resultType=json&beginBasDt=20241010&endBasDt=20241012&pageNo=1&numOfRows=10
     */

    // 검색요청 변수
    public class Request
    {
        [BindProperty(Name = "page", SupportsGet = true)]
        [Range(1, int.MaxValue, ErrorMessage = "페이지 허용량을 초과하였습니다.")]
        public int PageNo { get; set; } = 1;

        [BindProperty(Name = "perPage", SupportsGet = true)]
        [Range(1, int.MaxValue, ErrorMessage = "출력 허용량을 초과하였습니다.")]
        public int NumOfRows { get; set; } = 10;

        [BindProperty(Name = "sDate", SupportsGet = true)]
        [Required(ErrorMessage = "검색 시작날짜를 입력해주세요.")]
        [DataType(DataType.Date)]
        [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")]
        public DateTime StartDate { get; set; } = DateTime.Now.AddDays(-5);

        [BindProperty(Name = "eDate", SupportsGet = true)]
        [Required(ErrorMessage = "검색 종료날짜를 입력해주세요.")]
        [DataType(DataType.Date)]
        [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")]
        public DateTime EndDate { get; set; } = DateTime.Now;
    }
}
