using System.ComponentModel.DataAnnotations;
namespace OpenArchival.DataAccess;
public class ArtifactEntry
{
[Key]
public required int Id { get; set; }
///
/// This value gets appended on the end of the contianing ArtifactGrouping's
/// Category value
///
public string? ArtifactIdentifier
{
get
{
return (ParentArtifactGrouping is not null)
? ModelHelpers.MakeIdentifier(ParentArtifactGrouping.IdentifierFields.Values, ParentArtifactGrouping.Category.FieldSeparator, ArtifactNumber)
: null;
}
}
public string? ArtifactNumber { get; set; }
public required string Title { get; set; }
public string? Description { get; set; }
public required ArtifactStorageLocation StorageLocation { get; set; }
public List? Tags { get; set; }
public List? ListedNames { get; set; }
public List? AssociatedDates { get; set; }
public List? Defects { get; set; }
public List? Links { get; set; }
public ArtifactGrouping? ParentArtifactGrouping { get; set; }
public required List Files { get; set; }
///
/// Maps the file name to the textual contents of the file
///
public Dictionary? FileTextContent { get; set; } = null;
public bool IsPubliclyVisible { get; set; }
}