Files
sockeye/server/models/IntegrationItem.cs
2022-12-16 06:01:23 +00:00

51 lines
2.3 KiB
C#

using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Sockeye.Biz;
using Newtonsoft.Json;
namespace Sockeye.Models
{
//https://stackoverflow.com/questions/46517584/how-to-add-a-parent-record-with-its-children-records-in-ef-core#46615455
public class IntegrationItem
{
public long Id { get; set; }
public uint Concurrency { get; set; }
[Required]
public long IntegrationId { get; set; }
[Required]
public long ObjectId { get; set; }
[Required]
public SockType SockType { get; set; }
[Required]
public string IntegrationItemId { get; set; }//foreign id (e.g. QB Id)
public string IntegrationItemName { get; set; }//foreign object's name for UI, not required if not displayed anywhere
public DateTime? LastSync { get; set; }//optional, used by qbi
public string IntegrationItemData { get; set; }//foreign object data store for this item, unused by any Sockeye add-on's in the past but might be useful for others, expect json or xml or some other text value here
[JsonIgnore]
public Integration Integration { get; set; }
}//eoc
}//eons
// CREATE TABLE [dbo].[AINTEGRATIONMAP](
// [AID] [uniqueidentifier] NOT NULL,
// [ACREATED] [datetime] NOT NULL,
// [AMODIFIED] [datetime] NOT NULL,
// [ACREATOR] [uniqueidentifier] NOT NULL,
// [AMODIFIER] [uniqueidentifier] NOT NULL,
// [AINTEGRATIONID] [uniqueidentifier] NOT NULL,
// [AROOTOBJECTID] [uniqueidentifier] NOT NULL, <--Now "ObjectId"
// [AROOTOBJECTTYPE] [smallint] NOT NULL, <-- now "SockType"
// [AFOREIGNID] [nvarchar](255) NOT NULL, <-- renamed to "IntegrationItemId" still 255 char string
// [ANAME] [nvarchar](255) NULL, <--keep rename to "IntegrationItemName"
// [AFOREIGNCHECKSUM] [nvarchar](255) NULL, drop was not used and thsi is hwat the lastsynch is for anyway
// [ASOCKEYECHECKSUM] [nvarchar](255) NULL, drop was not used and thsi is hwat the lastsynch is for anyway
// [AMAPOBJECT] [image] NULL, Now "IntegrationItemData"
// [AMAPOBJECTSIZE] [int] NULL, dropped, expects to be json data now, size is irrelevant as it's not a binary object anymore
// [ALASTSYNC] [datetime] NOT NULL,