using System; using BeWo.ViewModel.ListViewModel; using BS.Shared; using BS.Shared.DataContracts; using BS.Shared.DataContracts.Compact; using BS.Shared.DataContracts.Feature.AI; namespace BeWo.ViewModel { public class AiPromptroutineVM : AbstractDCMapperVM { private string _Title; private string _Description; private long? _ParentFolderOid; private CompactEmployeeDC _Creator; private bool _IsPublic; private int _Position; private bool _IsFavorite; private AiActionType _ActionType; private bool _CanEdit; private AiPromptroutineStepListVM _Steps; public AiPromptroutineVM(AiPromptroutineDC dc) : base(dc, dc.Oid) { } public string Title { get => _Title; set => SetProperty(ref _Title, value, nameof(Title), () => DataContract.Title); } public string Description { get => _Description; set => SetProperty(ref _Description, value, nameof(Description), () => DataContract.Description); } public long? ParentFolderOid { get => _ParentFolderOid; set => SetProperty(ref _ParentFolderOid, value, nameof(ParentFolderOid), () => DataContract.ParentFolderOid); } public CompactEmployeeDC Creator { get => _Creator; set => SetProperty(ref _Creator, value, nameof(Creator), () => DataContract.Creator); } public bool IsPublic { get => _IsPublic; set => SetProperty(ref _IsPublic, value, nameof(IsPublic), () => DataContract.IsPublic); } public int Position { get => _Position; set => SetProperty(ref _Position, value, nameof(Position), () => DataContract.Position); } public bool IsFavorite { get => _IsFavorite; set => SetProperty(ref _IsFavorite, value, nameof(IsFavorite), () => DataContract.IsFavorite); } public AiActionType ActionType { get => _ActionType; set => SetProperty(ref _ActionType, value, nameof(ActionType), () => DataContract.ActionType); } public bool CanEdit { get => _CanEdit; set => SetProperty(ref _CanEdit, value, nameof(CanEdit), () => DataContract.CanEdit); } public AiPromptroutineStepListVM Steps { get => _Steps; set => SetProperty(ref _Steps, value, nameof(Steps)); } protected override void InitByDataContract(AiPromptroutineDC pDataContract) { _Title = pDataContract.Title; _Description = pDataContract.Description; _ParentFolderOid = pDataContract.ParentFolderOid; _Creator = pDataContract.Creator; _IsPublic = pDataContract.IsPublic; _Position = pDataContract.Position; _IsFavorite = pDataContract.IsFavorite; _ActionType = pDataContract.ActionType; _CanEdit = pDataContract.CanEdit; _Steps = new AiPromptroutineStepListVM(pDataContract.Steps); } protected override AiPromptroutineDC MapToDataContract(AiPromptroutineDC pDataContract, bool doCommit) { pDataContract.Title = _Title; pDataContract.Description = _Description; pDataContract.ParentFolderOid = _ParentFolderOid; pDataContract.Creator = _Creator; pDataContract.IsPublic = _IsPublic; pDataContract.Position = _Position; pDataContract.IsFavorite = _IsFavorite; pDataContract.ActionType = _ActionType; pDataContract.CanEdit = _CanEdit; pDataContract.Steps = _Steps.CopyToDCList(doCommit); return pDataContract; } } }