public ProductionBatch CreateProductionBatch(CreateProductionBatchModel model)
        {
            var entity = model.ToDest();

            PrepareCreate(entity);
            return(context.ProductionBatch.Add(entity).Entity);
        }
        public ValidationData ValidateCreateProductionBatch(ClaimsPrincipal principal,
                                                            CreateProductionBatchModel model)
        {
            var validationData = new ValidationData();

            if (model.TotalAmount <= 0)
            {
                validationData.Fail("Invalid total amount", Constants.AppResultCode.FailValidation);
            }
            return(validationData);
        }
        public IActionResult Create(CreateProductionBatchModel model)
        {
            var validationData = _service.ValidateCreateProductionBatch(User, model);

            if (!validationData.IsValid)
            {
                return(BadRequest(AppResult.FailValidation(data: validationData)));
            }
            var entity = _service.CreateProductionBatch(model);

            context.SaveChanges();
            // must be in transaction
            var ev = _ev_service.CreateProductionBatch(entity, User);

            context.SaveChanges();
            return(Created($"/{Business.Constants.ApiEndpoint.PRODUCTION_LINE_API}?id={entity.Id}",
                           AppResult.Success(entity.Id)));
        }