// Copyright (C) 2022 FCS Frede's Computer Services.
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
using System.ComponentModel.DataAnnotations;
namespace Wonky.Entity.DTO;
public class TaskItemDto
{
///
/// Task item entity id
///
[MaxLength(36)]
public string TaskItemId { get; set; } = "";
///
/// User entity id
///
[MaxLength(36)]
public string ErpUserId { get; set; } = "";
///
/// Reference entity id
///
[Required(ErrorMessage = "Reference id skal angives")]
public string ReferenceId { get; set; } = "";
///
/// Task name
///
[Required(ErrorMessage = "Opgaven skal have et navn.")]
[MaxLength(128, ErrorMessage = "Der kan bruges 128 tegn.")]
public string Name { get; set; } = "";
///
/// Task description
///
[MaxLength(1000, ErrorMessage = "Der kan højst bruges 1000 tegn.")]
public string Description { get; set; } = "";
///
/// Task due date / time
///
/// Format "yyyy-MM-dd'T'HH:mm"
public string DueTimestamp { get; set; } = "";
///
/// Task type enum as string
///
/// None,Recall,Revision,Reminder
public string TaskTypeEnum { get; set; } = "";
///
/// Task interval
///
public int Interval { get; set; }
///
/// Flag completed
///
public bool IsCompleted { get; set; }
///
/// Flag overdue
///
public bool OverDue { get; set; }
///
/// Recurring flag
///
/// Interval != 0
public bool Recurring { get; set; }
}