﻿using System.ComponentModel.DataAnnotations;

namespace KernelRecordsMVC.Application.ViewModels;

public class CreateReleaseViewModel
{
    // ==========================================
    // RELEASE
    // ==========================================

    [Required]
    [StringLength(200)]
    public string Title { get; set; } = string.Empty;


    [Display(Name = "Record Label")]
    [StringLength(200)]
    public string? RecordLabel { get; set; }


    [Required]
    [StringLength(100)]
    public string Genre { get; set; } = string.Empty;


    [Required]
    [Display(Name = "Release Date")]
    [DataType(DataType.Date)]
    public DateTime ReleaseDate { get; set; } = DateTime.Today;


    [Required]
    [Display(Name = "Cover Photo")]
    public string CoverPhoto { get; set; } = string.Empty;


    // ALBUM or SINGLE
    [Required]
    [Display(Name = "Release Type")]
    public string ReleaseType { get; set; } = "ALBUM";


    // ==========================================
    // ARTISTS
    // ==========================================

    [Required]
    [Display(Name = "Main Artist")]
    public long MainArtistId { get; set; }


    [Display(Name = "Featured Artists")]
    public List<long> FeaturedArtistIds { get; set; } = new();


    // ==========================================
    // SINGLE
    // ==========================================

    [Display(Name = "Single Duration")]
    public string? SingleDuration { get; set; }


    // ==========================================
    // ALBUM
    // ==========================================

    public List<CreateTrackViewModel> Tracks { get; set; } = new();
}