36 lines
1 KiB
C#
36 lines
1 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
|
|
namespace Nyanlabs.Umogen.Core.Models;
|
|
|
|
public class LegalEntity : IEntity, INLSerializable
|
|
{
|
|
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
|
[Key]
|
|
public long Id { get; set; }
|
|
public string Name { get; set; } = default!;
|
|
public string? Nip { get; set; } = default!;
|
|
public string? Headquarters { get; set; }
|
|
public Person? Representative { get; set; }
|
|
public long? PersonId { get; set; }
|
|
|
|
public string GetName()
|
|
{
|
|
return Name;
|
|
}
|
|
|
|
public string? IdCode()
|
|
{
|
|
return Nip;
|
|
}
|
|
|
|
public string NLQuerySerialize()
|
|
{
|
|
return $"{Name}; with NIP {Nip ?? "unknown"}{(Headquarters != null ? $"; located in {Headquarters}" : "")}{(Representative != null ? $"; represented by {Representative.GetName()}" : "")}";
|
|
}
|
|
|
|
public string SerializeToDocument()
|
|
{
|
|
return $"{Name}{(Representative != null ? $", reprezentowanÄ… przez {Representative.GetName()}" : "")}";
|
|
}
|
|
}
|