namespace IRaCIS.Application.Contracts
{
    public class SiteDTO : SiteCommand
    {
        public DateTime CreateTime { get; set; }
    }

    public class SiteCommand
    {
        public Guid? Id { get; set; }
        public string SiteName { get; set; } = String.Empty;
        public string SiteNameCN { get; set; } = String.Empty;
        public int Code { get; set; }
        public string SiteCode { get; set; } = String.Empty;

        public string Address { get; set; } = String.Empty;

        public string Province { get; set; } = string.Empty;
        public string UniqueCode { get; set; } = string.Empty;

        public string AliasName { get; set; } = string.Empty;
        public string City { get; set; } = string.Empty;
        public string Country { get; set; } = string.Empty;
        public Guid? HospitalId { get; set; }
        public string DirectorName { get; set; } = string.Empty;
        public string DirectorPhone { get; set; } = string.Empty;
        public string ContactName { get; set; } = string.Empty;
        public string ContactPhone { get; set; } = string.Empty;

        public Guid? TrialSiteId { get; set; }
    }

    public class SiteSelectionDTO
    {
        public Guid Id { get; set; }

        public string SiteName { get; set; } = String.Empty;

        public string SiteNameCN { get; set; } = String.Empty;

        public string City { get; set; } = String.Empty;

        public string Province { get; set; } = string.Empty;
        public string Country { get; set; } = String.Empty;
    }


    public class TrialSiteInQuery : PageInput
    {
        public string? TrialSiteName { get; set; }

        public string? TrialCode { get; set; }
    }

    public class TrialSiteAddView
    {
        public Guid TrialSiteId { get; set; }
        public string TrialCode { get; set; }

        public string TrialSiteName { get; set; }

        public string TrialSiteAliasName { get; set; } = String.Empty;
    }

    public class SiteSelectDTO : SiteDTO
    {
        public string HospitalName { get; set; } = String.Empty;
        public bool IsSelect { get; set; }
    }

    public class SiteQueryParam : PageInput
    {
        public string SiteName { get; set; } = String.Empty;
        public string AliasName { get; set; } = string.Empty;

        public string City { get; set; } = string.Empty;

        public string Province { get; set; } = string.Empty;
        public string Country { get; set; } = string.Empty;
    }
}