This commit is contained in:
2021-07-27 23:23:14 +00:00
parent 46ced8c537
commit d5639972f9
10 changed files with 759 additions and 25 deletions

View File

@@ -1,42 +1,56 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Newtonsoft.Json;
using AyaNova.Biz;
namespace AyaNova.Models
{
//NOTE: Any non required field (nullable in DB) sb nullable here, i.e. decimal? not decimal,
//otherwise the server will call it an invalid record if the field isn't sent from client
public class PMItem : ICoreBizObjectModel
{
public long Id { get; set; }
public uint Concurrency { get; set; }
[Required]
public string Name { get; set; }
public bool Active { get; set; }
public string Notes { get; set; }
public string Wiki { get; set; }
public string CustomFields { get; set; }
public List<string> Tags { get; set; }
//Principle
[Required]//this required annotation should cause a cascade delete to happen automatically when wo is deleted, need to test that
public long PMId { get; set; }//fk
public PM PM { get; set; }
//Dependents
public PMItem()
{
Tags = new List<string>();
}
[NotMapped, JsonIgnore]
public AyaType AyaType { get => AyaType.PMItem; }
public long Id { get; set; }
public uint Concurrency { get; set; }
public string Notes { get; set; }//"Summary" field
public string Wiki { get; set; }
public string CustomFields { get; set; }
public List<string> Tags { get; set; } = new List<string>();
[Required]
public long PMId { get; set; }
public string TechNotes { get; set; }
public long? WorkOrderItemStatusId { get; set; }
public long? WorkOrderItemPriorityId { get; set; }
public DateTime? RequestDate { get; set; }
public bool WarrantyService { get; set; } = false;
public int Sequence { get; set; }
//workaround for notification
[NotMapped, JsonIgnore]
public string Name { get; set; }
//Principle
[JsonIgnore]
public PM PM { get; set; }
//dependents
public List<PMItemExpense> Expenses { get; set; } = new List<PMItemExpense>();
public List<PMItemLabor> Labors { get; set; } = new List<PMItemLabor>();
public List<PMItemLoan> Loans { get; set; } = new List<PMItemLoan>();
public List<PMItemPart> Parts { get; set; } = new List<PMItemPart>();
public List<PMItemScheduledUser> ScheduledUsers { get; set; } = new List<PMItemScheduledUser>();
public List<PMItemTask> Tasks { get; set; } = new List<PMItemTask>();
public List<PMItemTravel> Travels { get; set; } = new List<PMItemTravel>();
public List<PMItemUnit> Units { get; set; } = new List<PMItemUnit>();
public List<PMItemOutsideService> OutsideServices { get; set; } = new List<PMItemOutsideService>();
}//eoc
}//eons