build_app
This commit is contained in:
		
							parent
							
								
									bfa9b8accf
								
							
						
					
					
						commit
						bddd79217b
					
				@ -69,6 +69,12 @@ public class BuilderService {
 | 
			
		||||
		executeDump(true);
 | 
			
		||||
 | 
			
		||||
		// ADD OTHER SERVICE
 | 
			
		||||
addCustomMenu( "Form_d","Form_d",  "Transcations"); 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
addCustomMenu( "Testlist","Testlist",  "Transcations"); 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		System.out.println("dashboard and menu inserted...");
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,107 @@
 | 
			
		||||
package com.realnet.basic1.Controllers;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
 import org.springframework.web.bind.annotation.*;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
import com.fasterxml.jackson.core.JsonProcessingException;
 | 
			
		||||
import org.springframework.web.bind.annotation.CrossOrigin;
 | 
			
		||||
import com.fasterxml.jackson.databind.JsonMappingException;
 | 
			
		||||
import com.realnet.config.EmailService;
 | 
			
		||||
import com.realnet.users.entity1.AppUser;
 | 
			
		||||
import com.realnet.users.service1.AppUserServiceImpl;
 | 
			
		||||
import com.fasterxml.jackson.databind.ObjectMapper;
 | 
			
		||||
import org.springframework.data.domain.*;
 | 
			
		||||
import com.realnet.fnd.response.EntityResponse;
 | 
			
		||||
import org.springframework.http.*;
 | 
			
		||||
import org.springframework.beans.factory.annotation.*;
 | 
			
		||||
import com.realnet.basic1.Entity.Form_d;
 | 
			
		||||
import com.realnet.basic1.Services.Form_dService ;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@RequestMapping(value = "/Form_d")
 | 
			
		||||
 @CrossOrigin("*") 
 | 
			
		||||
@RestController
 | 
			
		||||
public class Form_dController {
 | 
			
		||||
	@Autowired
 | 
			
		||||
	private Form_dService Service;
 | 
			
		||||
 | 
			
		||||
@Value("${projectPath}")
 | 
			
		||||
	private String projectPath;
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	@PostMapping("/Form_d")
 | 
			
		||||
		  public Form_d Savedata(@RequestBody Form_d data) {
 | 
			
		||||
		Form_d save = Service.Savedata(data)	;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		System.out.println("data saved..." + save);
 | 
			
		||||
 | 
			
		||||
 return save;
 | 
			
		||||
	  }
 | 
			
		||||
@PutMapping("/Form_d/{id}")
 | 
			
		||||
	public  Form_d update(@RequestBody Form_d data,@PathVariable Integer id ) {
 | 
			
		||||
		Form_d update = Service.update(data,id);
 | 
			
		||||
		System.out.println("data update..." + update);
 | 
			
		||||
		return update;
 | 
			
		||||
	}	 
 | 
			
		||||
//	get all with pagination
 | 
			
		||||
	@GetMapping("/Form_d/getall/page")
 | 
			
		||||
	public Page<Form_d> getall(@RequestParam(value = "page", required = false) Integer page,
 | 
			
		||||
			@RequestParam(value = "size", required = false) Integer size) {
 | 
			
		||||
		Pageable paging = PageRequest.of(page, size);
 | 
			
		||||
		Page<Form_d> get = Service.getAllWithPagination(paging);
 | 
			
		||||
 | 
			
		||||
		return get;
 | 
			
		||||
 | 
			
		||||
	}	
 | 
			
		||||
	@GetMapping("/Form_d")
 | 
			
		||||
	public List<Form_d> getdetails() {
 | 
			
		||||
		 List<Form_d> get = Service.getdetails();		
 | 
			
		||||
		return get;
 | 
			
		||||
}
 | 
			
		||||
// get all without authentication 
 | 
			
		||||
 | 
			
		||||
	@GetMapping("/token/Form_d")
 | 
			
		||||
	public List<Form_d> getallwioutsec() {
 | 
			
		||||
		 List<Form_d> get = Service.getdetails();		
 | 
			
		||||
		return get;
 | 
			
		||||
}
 | 
			
		||||
@GetMapping("/Form_d/{id}")
 | 
			
		||||
	public  Form_d  getdetailsbyId(@PathVariable Integer id ) {
 | 
			
		||||
		Form_d  get = Service.getdetailsbyId(id);
 | 
			
		||||
		return get;
 | 
			
		||||
	}
 | 
			
		||||
@DeleteMapping("/Form_d/{id}")
 | 
			
		||||
	public  ResponseEntity<?> delete_by_id(@PathVariable Integer id ) {
 | 
			
		||||
	Service.delete_by_id(id);
 | 
			
		||||
			return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK);
 | 
			
		||||
	
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,99 @@
 | 
			
		||||
package com.realnet.basic1.Controllers;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
 import org.springframework.web.bind.annotation.*;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
import com.fasterxml.jackson.core.JsonProcessingException;
 | 
			
		||||
import org.springframework.web.bind.annotation.CrossOrigin;
 | 
			
		||||
import com.fasterxml.jackson.databind.JsonMappingException;
 | 
			
		||||
import com.realnet.config.EmailService;
 | 
			
		||||
import com.realnet.users.entity1.AppUser;
 | 
			
		||||
import com.realnet.users.service1.AppUserServiceImpl;
 | 
			
		||||
import com.fasterxml.jackson.databind.ObjectMapper;
 | 
			
		||||
import org.springframework.data.domain.*;
 | 
			
		||||
import com.realnet.fnd.response.EntityResponse;
 | 
			
		||||
import org.springframework.http.*;
 | 
			
		||||
import org.springframework.beans.factory.annotation.*;
 | 
			
		||||
import com.realnet.basic1.Entity.Testlist;
 | 
			
		||||
import com.realnet.basic1.Services.TestlistService ;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@RequestMapping(value = "/Testlist")
 | 
			
		||||
 @CrossOrigin("*") 
 | 
			
		||||
@RestController
 | 
			
		||||
public class TestlistController {
 | 
			
		||||
	@Autowired
 | 
			
		||||
	private TestlistService Service;
 | 
			
		||||
 | 
			
		||||
@Value("${projectPath}")
 | 
			
		||||
	private String projectPath;
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	@PostMapping("/Testlist")
 | 
			
		||||
		  public Testlist Savedata(@RequestBody Testlist data) {
 | 
			
		||||
		Testlist save = Service.Savedata(data)	;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		System.out.println("data saved..." + save);
 | 
			
		||||
 | 
			
		||||
 return save;
 | 
			
		||||
	  }
 | 
			
		||||
@PutMapping("/Testlist/{id}")
 | 
			
		||||
	public  Testlist update(@RequestBody Testlist data,@PathVariable Integer id ) {
 | 
			
		||||
		Testlist update = Service.update(data,id);
 | 
			
		||||
		System.out.println("data update..." + update);
 | 
			
		||||
		return update;
 | 
			
		||||
	}	 
 | 
			
		||||
//	get all with pagination
 | 
			
		||||
	@GetMapping("/Testlist/getall/page")
 | 
			
		||||
	public Page<Testlist> getall(@RequestParam(value = "page", required = false) Integer page,
 | 
			
		||||
			@RequestParam(value = "size", required = false) Integer size) {
 | 
			
		||||
		Pageable paging = PageRequest.of(page, size);
 | 
			
		||||
		Page<Testlist> get = Service.getAllWithPagination(paging);
 | 
			
		||||
 | 
			
		||||
		return get;
 | 
			
		||||
 | 
			
		||||
	}	
 | 
			
		||||
	@GetMapping("/Testlist")
 | 
			
		||||
	public List<Testlist> getdetails() {
 | 
			
		||||
		 List<Testlist> get = Service.getdetails();		
 | 
			
		||||
		return get;
 | 
			
		||||
}
 | 
			
		||||
// get all without authentication 
 | 
			
		||||
 | 
			
		||||
	@GetMapping("/token/Testlist")
 | 
			
		||||
	public List<Testlist> getallwioutsec() {
 | 
			
		||||
		 List<Testlist> get = Service.getdetails();		
 | 
			
		||||
		return get;
 | 
			
		||||
}
 | 
			
		||||
@GetMapping("/Testlist/{id}")
 | 
			
		||||
	public  Testlist  getdetailsbyId(@PathVariable Integer id ) {
 | 
			
		||||
		Testlist  get = Service.getdetailsbyId(id);
 | 
			
		||||
		return get;
 | 
			
		||||
	}
 | 
			
		||||
@DeleteMapping("/Testlist/{id}")
 | 
			
		||||
	public  ResponseEntity<?> delete_by_id(@PathVariable Integer id ) {
 | 
			
		||||
	Service.delete_by_id(id);
 | 
			
		||||
			return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK);
 | 
			
		||||
	
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,24 @@
 | 
			
		||||
package com.realnet.basic1.Controllers;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
 import org.springframework.web.bind.annotation.*;
 | 
			
		||||
import com.realnet.basic1.Entity.Testlist_ListFilter1;
 | 
			
		||||
import com.realnet.basic1.Services.Testlist_ListFilter1Service ;
 | 
			
		||||
@RequestMapping(value = "/Testlist_ListFilter1")
 | 
			
		||||
@RestController
 | 
			
		||||
public class Testlist_ListFilter1Controller {
 | 
			
		||||
	
 | 
			
		||||
	@Autowired
 | 
			
		||||
	private Testlist_ListFilter1Service Service;
 | 
			
		||||
 | 
			
		||||
		@GetMapping("/Testlist_ListFilter1")
 | 
			
		||||
	public List<Testlist_ListFilter1> getlist() {
 | 
			
		||||
		 List<Testlist_ListFilter1> get = Service.getlistbuilder();		
 | 
			
		||||
		return get;
 | 
			
		||||
}
 | 
			
		||||
		@GetMapping("/Testlist_ListFilter11")
 | 
			
		||||
	public List<Testlist_ListFilter1> getlistwithparam( ) {
 | 
			
		||||
		 List<Testlist_ListFilter1> get = Service.getlistbuilderparam( );		
 | 
			
		||||
		return get;
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,107 @@
 | 
			
		||||
package com.realnet.basic1.Controllers;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
 import org.springframework.web.bind.annotation.*;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
import com.fasterxml.jackson.core.JsonProcessingException;
 | 
			
		||||
import org.springframework.web.bind.annotation.CrossOrigin;
 | 
			
		||||
import com.fasterxml.jackson.databind.JsonMappingException;
 | 
			
		||||
import com.realnet.config.EmailService;
 | 
			
		||||
import com.realnet.users.entity1.AppUser;
 | 
			
		||||
import com.realnet.users.service1.AppUserServiceImpl;
 | 
			
		||||
import com.fasterxml.jackson.databind.ObjectMapper;
 | 
			
		||||
import org.springframework.data.domain.*;
 | 
			
		||||
import com.realnet.fnd.response.EntityResponse;
 | 
			
		||||
import org.springframework.http.*;
 | 
			
		||||
import org.springframework.beans.factory.annotation.*;
 | 
			
		||||
import com.realnet.basic1.Entity.Form_d;
 | 
			
		||||
import com.realnet.basic1.Services.Form_dService ;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@RequestMapping(value = "/token/Form_d")
 | 
			
		||||
 @CrossOrigin("*") 
 | 
			
		||||
@RestController
 | 
			
		||||
public class tokenFree_Form_dController {
 | 
			
		||||
	@Autowired
 | 
			
		||||
	private Form_dService Service;
 | 
			
		||||
 | 
			
		||||
@Value("${projectPath}")
 | 
			
		||||
	private String projectPath;
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	@PostMapping("/Form_d")
 | 
			
		||||
		  public Form_d Savedata(@RequestBody Form_d data) {
 | 
			
		||||
		Form_d save = Service.Savedata(data)	;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		System.out.println("data saved..." + save);
 | 
			
		||||
 | 
			
		||||
 return save;
 | 
			
		||||
	  }
 | 
			
		||||
@PutMapping("/Form_d/{id}")
 | 
			
		||||
	public  Form_d update(@RequestBody Form_d data,@PathVariable Integer id ) {
 | 
			
		||||
		Form_d update = Service.update(data,id);
 | 
			
		||||
		System.out.println("data update..." + update);
 | 
			
		||||
		return update;
 | 
			
		||||
	}	 
 | 
			
		||||
//	get all with pagination
 | 
			
		||||
	@GetMapping("/Form_d/getall/page")
 | 
			
		||||
	public Page<Form_d> getall(@RequestParam(value = "page", required = false) Integer page,
 | 
			
		||||
			@RequestParam(value = "size", required = false) Integer size) {
 | 
			
		||||
		Pageable paging = PageRequest.of(page, size);
 | 
			
		||||
		Page<Form_d> get = Service.getAllWithPagination(paging);
 | 
			
		||||
 | 
			
		||||
		return get;
 | 
			
		||||
 | 
			
		||||
	}	
 | 
			
		||||
	@GetMapping("/Form_d")
 | 
			
		||||
	public List<Form_d> getdetails() {
 | 
			
		||||
		 List<Form_d> get = Service.getdetails();		
 | 
			
		||||
		return get;
 | 
			
		||||
}
 | 
			
		||||
// get all without authentication 
 | 
			
		||||
 | 
			
		||||
	@GetMapping("/token/Form_d")
 | 
			
		||||
	public List<Form_d> getallwioutsec() {
 | 
			
		||||
		 List<Form_d> get = Service.getdetails();		
 | 
			
		||||
		return get;
 | 
			
		||||
}
 | 
			
		||||
@GetMapping("/Form_d/{id}")
 | 
			
		||||
	public  Form_d  getdetailsbyId(@PathVariable Integer id ) {
 | 
			
		||||
		Form_d  get = Service.getdetailsbyId(id);
 | 
			
		||||
		return get;
 | 
			
		||||
	}
 | 
			
		||||
@DeleteMapping("/Form_d/{id}")
 | 
			
		||||
	public  ResponseEntity<?> delete_by_id(@PathVariable Integer id ) {
 | 
			
		||||
	Service.delete_by_id(id);
 | 
			
		||||
			return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK);
 | 
			
		||||
	
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,99 @@
 | 
			
		||||
package com.realnet.basic1.Controllers;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
 import org.springframework.web.bind.annotation.*;
 | 
			
		||||
import org.springframework.web.multipart.MultipartFile;
 | 
			
		||||
import com.fasterxml.jackson.core.JsonProcessingException;
 | 
			
		||||
import org.springframework.web.bind.annotation.CrossOrigin;
 | 
			
		||||
import com.fasterxml.jackson.databind.JsonMappingException;
 | 
			
		||||
import com.realnet.config.EmailService;
 | 
			
		||||
import com.realnet.users.entity1.AppUser;
 | 
			
		||||
import com.realnet.users.service1.AppUserServiceImpl;
 | 
			
		||||
import com.fasterxml.jackson.databind.ObjectMapper;
 | 
			
		||||
import org.springframework.data.domain.*;
 | 
			
		||||
import com.realnet.fnd.response.EntityResponse;
 | 
			
		||||
import org.springframework.http.*;
 | 
			
		||||
import org.springframework.beans.factory.annotation.*;
 | 
			
		||||
import com.realnet.basic1.Entity.Testlist;
 | 
			
		||||
import com.realnet.basic1.Services.TestlistService ;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@RequestMapping(value = "/token/Testlist")
 | 
			
		||||
 @CrossOrigin("*") 
 | 
			
		||||
@RestController
 | 
			
		||||
public class tokenFree_TestlistController {
 | 
			
		||||
	@Autowired
 | 
			
		||||
	private TestlistService Service;
 | 
			
		||||
 | 
			
		||||
@Value("${projectPath}")
 | 
			
		||||
	private String projectPath;
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	@PostMapping("/Testlist")
 | 
			
		||||
		  public Testlist Savedata(@RequestBody Testlist data) {
 | 
			
		||||
		Testlist save = Service.Savedata(data)	;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		System.out.println("data saved..." + save);
 | 
			
		||||
 | 
			
		||||
 return save;
 | 
			
		||||
	  }
 | 
			
		||||
@PutMapping("/Testlist/{id}")
 | 
			
		||||
	public  Testlist update(@RequestBody Testlist data,@PathVariable Integer id ) {
 | 
			
		||||
		Testlist update = Service.update(data,id);
 | 
			
		||||
		System.out.println("data update..." + update);
 | 
			
		||||
		return update;
 | 
			
		||||
	}	 
 | 
			
		||||
//	get all with pagination
 | 
			
		||||
	@GetMapping("/Testlist/getall/page")
 | 
			
		||||
	public Page<Testlist> getall(@RequestParam(value = "page", required = false) Integer page,
 | 
			
		||||
			@RequestParam(value = "size", required = false) Integer size) {
 | 
			
		||||
		Pageable paging = PageRequest.of(page, size);
 | 
			
		||||
		Page<Testlist> get = Service.getAllWithPagination(paging);
 | 
			
		||||
 | 
			
		||||
		return get;
 | 
			
		||||
 | 
			
		||||
	}	
 | 
			
		||||
	@GetMapping("/Testlist")
 | 
			
		||||
	public List<Testlist> getdetails() {
 | 
			
		||||
		 List<Testlist> get = Service.getdetails();		
 | 
			
		||||
		return get;
 | 
			
		||||
}
 | 
			
		||||
// get all without authentication 
 | 
			
		||||
 | 
			
		||||
	@GetMapping("/token/Testlist")
 | 
			
		||||
	public List<Testlist> getallwioutsec() {
 | 
			
		||||
		 List<Testlist> get = Service.getdetails();		
 | 
			
		||||
		return get;
 | 
			
		||||
}
 | 
			
		||||
@GetMapping("/Testlist/{id}")
 | 
			
		||||
	public  Testlist  getdetailsbyId(@PathVariable Integer id ) {
 | 
			
		||||
		Testlist  get = Service.getdetailsbyId(id);
 | 
			
		||||
		return get;
 | 
			
		||||
	}
 | 
			
		||||
@DeleteMapping("/Testlist/{id}")
 | 
			
		||||
	public  ResponseEntity<?> delete_by_id(@PathVariable Integer id ) {
 | 
			
		||||
	Service.delete_by_id(id);
 | 
			
		||||
			return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK);
 | 
			
		||||
	
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,24 @@
 | 
			
		||||
package com.realnet.basic1.Controllers;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
 import org.springframework.web.bind.annotation.*;
 | 
			
		||||
import com.realnet.basic1.Entity.Testlist_ListFilter1;
 | 
			
		||||
import com.realnet.basic1.Services.Testlist_ListFilter1Service ;
 | 
			
		||||
@RequestMapping(value = "/token/Testlist_ListFilter1")
 | 
			
		||||
@RestController
 | 
			
		||||
public class tokenFree_Testlist_ListFilter1Controller {
 | 
			
		||||
	
 | 
			
		||||
	@Autowired
 | 
			
		||||
	private Testlist_ListFilter1Service Service;
 | 
			
		||||
 | 
			
		||||
		@GetMapping("/Testlist_ListFilter1")
 | 
			
		||||
	public List<Testlist_ListFilter1> getlist() {
 | 
			
		||||
		 List<Testlist_ListFilter1> get = Service.getlistbuilder();		
 | 
			
		||||
		return get;
 | 
			
		||||
}
 | 
			
		||||
		@GetMapping("/Testlist_ListFilter11")
 | 
			
		||||
	public List<Testlist_ListFilter1> getlistwithparam( ) {
 | 
			
		||||
		 List<Testlist_ListFilter1> get = Service.getlistbuilderparam( );		
 | 
			
		||||
		return get;
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,36 @@
 | 
			
		||||
package com.realnet.basic1.Entity;
 | 
			
		||||
 import lombok.*;
 | 
			
		||||
import com.realnet.WhoColumn.Entity.Extension; 
 | 
			
		||||
 import javax.persistence.*;
 | 
			
		||||
 import java.time.LocalDateTime;
 | 
			
		||||
 import java.util.*;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 @Entity 
 | 
			
		||||
 @Data
 | 
			
		||||
 public class    Form_d extends Extension { 
 | 
			
		||||
 /**
 | 
			
		||||
	 * 
 | 
			
		||||
	 */
 | 
			
		||||
	private static final long serialVersionUID = 1L;
 | 
			
		||||
 | 
			
		||||
 @Id
 | 
			
		||||
 @GeneratedValue(strategy = GenerationType.IDENTITY)
 | 
			
		||||
 private Integer id;
 | 
			
		||||
 | 
			
		||||
private String  namek;
 | 
			
		||||
 | 
			
		||||
private int number_field_a;
 | 
			
		||||
 | 
			
		||||
private int number_field_b;
 | 
			
		||||
 | 
			
		||||
private String calculated_add;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,33 @@
 | 
			
		||||
package com.realnet.basic1.Entity;
 | 
			
		||||
 import lombok.*;
 | 
			
		||||
import com.realnet.WhoColumn.Entity.Extension; 
 | 
			
		||||
 import javax.persistence.*;
 | 
			
		||||
 import java.time.LocalDateTime;
 | 
			
		||||
 import java.util.*;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 @Entity 
 | 
			
		||||
 @Data
 | 
			
		||||
 public class    Testlist extends Extension { 
 | 
			
		||||
 /**
 | 
			
		||||
	 * 
 | 
			
		||||
	 */
 | 
			
		||||
	private static final long serialVersionUID = 1L;
 | 
			
		||||
 | 
			
		||||
 @Id
 | 
			
		||||
 @GeneratedValue(strategy = GenerationType.IDENTITY)
 | 
			
		||||
 private Integer id;
 | 
			
		||||
 | 
			
		||||
private String  name;
 | 
			
		||||
 | 
			
		||||
@Column(length = 2000)
 | 
			
		||||
private String description;
 | 
			
		||||
 | 
			
		||||
private Boolean active;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,14 @@
 | 
			
		||||
package com.realnet.basic1.Entity;
 | 
			
		||||
 import lombok.*;
 | 
			
		||||
 import javax.persistence.*;
 | 
			
		||||
 import java.time.LocalDateTime;
 | 
			
		||||
 import java.util.*;
 | 
			
		||||
 | 
			
		||||
 @Data
 | 
			
		||||
 public class    Testlist_ListFilter1 { 
 | 
			
		||||
 | 
			
		||||
 private Integer id;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 private String name;
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,32 @@
 | 
			
		||||
package com.realnet.basic1.Repository;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
import org.springframework.data.domain.Page;
 | 
			
		||||
import org.springframework.data.domain.Pageable;
 | 
			
		||||
import org.springframework.data.jpa.repository.JpaRepository;
 | 
			
		||||
import org.springframework.data.jpa.repository.Query;
 | 
			
		||||
 | 
			
		||||
import org.springframework.stereotype.Repository; 
 | 
			
		||||
import java.util.*;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
import com.realnet.basic1.Entity.Form_d;
 | 
			
		||||
 | 
			
		||||
@Repository
 | 
			
		||||
public interface  Form_dRepository  extends  JpaRepository<Form_d, Integer>  { 
 | 
			
		||||
 | 
			
		||||
@Query(value = "select * from form_d where  created_by=?1", nativeQuery = true)
 | 
			
		||||
	List<Form_d> findAll(Long creayedBy);
 | 
			
		||||
 | 
			
		||||
@Query(value = "select * from form_d where  created_by=?1", nativeQuery = true)
 | 
			
		||||
	Page<Form_d> findAll( Long creayedBy,Pageable page);
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,30 @@
 | 
			
		||||
package com.realnet.basic1.Repository;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
import org.springframework.data.domain.Page;
 | 
			
		||||
import org.springframework.data.domain.Pageable;
 | 
			
		||||
import org.springframework.data.jpa.repository.JpaRepository;
 | 
			
		||||
import org.springframework.data.jpa.repository.Query;
 | 
			
		||||
 | 
			
		||||
import org.springframework.stereotype.Repository; 
 | 
			
		||||
import java.util.*;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
import com.realnet.basic1.Entity.Testlist;
 | 
			
		||||
 | 
			
		||||
@Repository
 | 
			
		||||
public interface  TestlistRepository  extends  JpaRepository<Testlist, Integer>  { 
 | 
			
		||||
 | 
			
		||||
@Query(value = "select * from testlist where  created_by=?1", nativeQuery = true)
 | 
			
		||||
	List<Testlist> findAll(Long creayedBy);
 | 
			
		||||
 | 
			
		||||
@Query(value = "select * from testlist where  created_by=?1", nativeQuery = true)
 | 
			
		||||
	Page<Testlist> findAll( Long creayedBy,Pageable page);
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,103 @@
 | 
			
		||||
package com.realnet.basic1.Services;
 | 
			
		||||
import com.realnet.basic1.Repository.Form_dRepository;
 | 
			
		||||
import com.realnet.basic1.Entity.Form_d
 | 
			
		||||
;import java.util.*;
 | 
			
		||||
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
import com.realnet.SequenceGenerator.Service.SequenceService;
 | 
			
		||||
import org.springframework.data.domain.Page;
 | 
			
		||||
import com.realnet.realm.Entity.Realm;
 | 
			
		||||
import com.realnet.realm.Services.RealmService;
 | 
			
		||||
import org.springframework.data.domain.Pageable;
 | 
			
		||||
import org.springframework.http.*;
 | 
			
		||||
import com.realnet.users.service1.AppUserServiceImpl;
 | 
			
		||||
import com.realnet.users.entity1.AppUser;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	import org.springframework.stereotype.Service;
 | 
			
		||||
 | 
			
		||||
@Service
 | 
			
		||||
 public class Form_dService {
 | 
			
		||||
@Autowired
 | 
			
		||||
private Form_dRepository Repository;
 | 
			
		||||
	@Autowired
 | 
			
		||||
	private AppUserServiceImpl userService; 
 | 
			
		||||
@Autowired
 | 
			
		||||
	private RealmService realmService;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
public Form_d Savedata(Form_d data) {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	data.setUpdatedBy(getUser().getUserId());
 | 
			
		||||
		data.setCreatedBy(getUser().getUserId());
 | 
			
		||||
		data.setAccountId(getUser().getAccount().getAccount_id());
 | 
			
		||||
Form_d save = Repository.save(data);
 | 
			
		||||
				return save;	
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//	get all with pagination
 | 
			
		||||
	public Page<Form_d> getAllWithPagination(Pageable page) {
 | 
			
		||||
		return Repository.findAll( getUser().getUserId(),page);
 | 
			
		||||
	}			
 | 
			
		||||
public List<Form_d> getdetails() {  
 | 
			
		||||
		List<Realm> realm = realmService.findByUserId(getUser().getUserId());
 | 
			
		||||
List<Form_d> all = Repository.findAll(getUser().getUserId());
 | 
			
		||||
		
 | 
			
		||||
		return all ;		}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
public Form_d getdetailsbyId(Integer id) {
 | 
			
		||||
	return Repository.findById(id).get();
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	public void delete_by_id(Integer id) {
 | 
			
		||||
 Repository.deleteById(id);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
public Form_d update(Form_d data,Integer id) {
 | 
			
		||||
	Form_d old = Repository.findById(id).get();
 | 
			
		||||
old.setNamek(data.getNamek());
 | 
			
		||||
 | 
			
		||||
old.setNumber_field_a(data.getNumber_field_a());
 | 
			
		||||
 | 
			
		||||
old.setNumber_field_b(data.getNumber_field_b());
 | 
			
		||||
 | 
			
		||||
old.setCalculated_add(data.getCalculated_add());
 | 
			
		||||
 | 
			
		||||
final Form_d test = Repository.save(old);
 | 
			
		||||
		data.setUpdatedBy(getUser().getUserId());
 | 
			
		||||
  return test;} 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 public AppUser getUser() {
 | 
			
		||||
		AppUser user = userService.getLoggedInUser();
 | 
			
		||||
		return user;
 | 
			
		||||
 | 
			
		||||
	}}
 | 
			
		||||
@ -0,0 +1,93 @@
 | 
			
		||||
package com.realnet.basic1.Services;
 | 
			
		||||
import com.realnet.basic1.Repository.TestlistRepository;
 | 
			
		||||
import com.realnet.basic1.Entity.Testlist
 | 
			
		||||
;import java.util.*;
 | 
			
		||||
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
import com.realnet.SequenceGenerator.Service.SequenceService;
 | 
			
		||||
import org.springframework.data.domain.Page;
 | 
			
		||||
import com.realnet.realm.Entity.Realm;
 | 
			
		||||
import com.realnet.realm.Services.RealmService;
 | 
			
		||||
import org.springframework.data.domain.Pageable;
 | 
			
		||||
import org.springframework.http.*;
 | 
			
		||||
import com.realnet.users.service1.AppUserServiceImpl;
 | 
			
		||||
import com.realnet.users.entity1.AppUser;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	import org.springframework.stereotype.Service;
 | 
			
		||||
 | 
			
		||||
@Service
 | 
			
		||||
 public class TestlistService {
 | 
			
		||||
@Autowired
 | 
			
		||||
private TestlistRepository Repository;
 | 
			
		||||
	@Autowired
 | 
			
		||||
	private AppUserServiceImpl userService; 
 | 
			
		||||
@Autowired
 | 
			
		||||
	private RealmService realmService;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
public Testlist Savedata(Testlist data) {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	data.setUpdatedBy(getUser().getUserId());
 | 
			
		||||
		data.setCreatedBy(getUser().getUserId());
 | 
			
		||||
		data.setAccountId(getUser().getAccount().getAccount_id());
 | 
			
		||||
Testlist save = Repository.save(data);
 | 
			
		||||
				return save;	
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//	get all with pagination
 | 
			
		||||
	public Page<Testlist> getAllWithPagination(Pageable page) {
 | 
			
		||||
		return Repository.findAll( getUser().getUserId(),page);
 | 
			
		||||
	}			
 | 
			
		||||
public List<Testlist> getdetails() {  
 | 
			
		||||
		List<Realm> realm = realmService.findByUserId(getUser().getUserId());
 | 
			
		||||
List<Testlist> all = Repository.findAll(getUser().getUserId());
 | 
			
		||||
		
 | 
			
		||||
		return all ;		}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
public Testlist getdetailsbyId(Integer id) {
 | 
			
		||||
	return Repository.findById(id).get();
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	public void delete_by_id(Integer id) {
 | 
			
		||||
 Repository.deleteById(id);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
public Testlist update(Testlist data,Integer id) {
 | 
			
		||||
	Testlist old = Repository.findById(id).get();
 | 
			
		||||
old.setName(data.getName());
 | 
			
		||||
 | 
			
		||||
old.setDescription(data.getDescription());
 | 
			
		||||
 | 
			
		||||
old.setActive (data.getActive());
 | 
			
		||||
 | 
			
		||||
final Testlist test = Repository.save(old);
 | 
			
		||||
		data.setUpdatedBy(getUser().getUserId());
 | 
			
		||||
  return test;} 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 public AppUser getUser() {
 | 
			
		||||
		AppUser user = userService.getLoggedInUser();
 | 
			
		||||
		return user;
 | 
			
		||||
 | 
			
		||||
	}}
 | 
			
		||||
@ -0,0 +1,51 @@
 | 
			
		||||
package com.realnet.basic1.Services;
 | 
			
		||||
import java.util.*;
 | 
			
		||||
import com.realnet.basic1.Repository.TestlistRepository;
 | 
			
		||||
import com.realnet.basic1.Entity.Testlist;
 | 
			
		||||
 | 
			
		||||
import com.realnet.basic1.Entity.Testlist_ListFilter1;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
	import org.springframework.stereotype.Service;
 | 
			
		||||
 | 
			
		||||
@Service
 | 
			
		||||
 public class Testlist_ListFilter1Service {
 | 
			
		||||
@Autowired
 | 
			
		||||
private TestlistRepository Repository;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 public   List<Testlist_ListFilter1>   getlistbuilder() {
 | 
			
		||||
	List<Testlist> list= Repository.findAll();
 | 
			
		||||
		ArrayList<Testlist_ListFilter1> l = new ArrayList<>();
 | 
			
		||||
		for (Testlist data : list) {
 | 
			
		||||
boolean isactive = data.getActive();
 | 
			
		||||
 | 
			
		||||
				if (isactive) {{	
 | 
			
		||||
Testlist_ListFilter1 dummy = new Testlist_ListFilter1();
 | 
			
		||||
			dummy.setId(data.getId());
 | 
			
		||||
  dummy.setName(data.getName());
 | 
			
		||||
	l.add(dummy);
 | 
			
		||||
}} 
 | 
			
		||||
} 		
 | 
			
		||||
return l;}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 public   List<Testlist_ListFilter1>   getlistbuilderparam( ) {
 | 
			
		||||
	List<Testlist> list= Repository.findAll();
 | 
			
		||||
		ArrayList<Testlist_ListFilter1> l = new ArrayList<>();
 | 
			
		||||
		for (Testlist data : list) {
 | 
			
		||||
boolean isactive = data.getActive();
 | 
			
		||||
 | 
			
		||||
				if (isactive) {{	
 | 
			
		||||
Testlist_ListFilter1 dummy = new Testlist_ListFilter1();
 | 
			
		||||
			dummy.setId(data.getId());
 | 
			
		||||
  dummy.setName(data.getName());
 | 
			
		||||
	l.add(dummy);
 | 
			
		||||
}} 
 | 
			
		||||
} 		
 | 
			
		||||
return l;}
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,88 @@
 | 
			
		||||
import 'dart:typed_data';
 | 
			
		||||
import 'package:dio/dio.dart';
 | 
			
		||||
import 'package:http_parser/http_parser.dart';
 | 
			
		||||
import '../../../../resources/api_constants.dart';
 | 
			
		||||
import '../../../../data/network/base_network_service.dart';
 | 
			
		||||
import '../../../../data/network/network_api_service.dart';
 | 
			
		||||
 | 
			
		||||
class Form_dApiService {
 | 
			
		||||
  final String baseUrl = ApiConstants.baseUrl;
 | 
			
		||||
 | 
			
		||||
      final BaseNetworkService _helper = NetworkApiService();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
   Future<List<Map<String, dynamic>>> getEntities() async {
 | 
			
		||||
 | 
			
		||||
    try {
 | 
			
		||||
      final response = await _helper.getGetApiResponse('$baseUrl/Form_d/Form_d');
 | 
			
		||||
      final entities = (response as List).cast<Map<String, dynamic>>();
 | 
			
		||||
      return entities;
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      throw Exception('Failed to get all entities: $e');
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
Future<List<Map<String, dynamic>>> getAllWithPagination(
 | 
			
		||||
       int page, int size) async {
 | 
			
		||||
    try {
 | 
			
		||||
            final response =
 | 
			
		||||
          await _helper.getGetApiResponse('$baseUrl/Form_d/Form_d/getall/page?page=$page&size=$size');
 | 
			
		||||
      final entities =
 | 
			
		||||
          (response['content'] as List).cast<Map<String, dynamic>>();
 | 
			
		||||
      return entities;
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      throw Exception('Failed to get all without pagination: $e');
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  Future<Map<String, dynamic>> createEntity(
 | 
			
		||||
       Map<String, dynamic> entity) async {
 | 
			
		||||
    try {
 | 
			
		||||
            print("in post api$entity");
 | 
			
		||||
      final response =
 | 
			
		||||
          await _helper.getPostApiResponse('$baseUrl/Form_d/Form_d', entity);
 | 
			
		||||
 | 
			
		||||
      print(entity);
 | 
			
		||||
 | 
			
		||||
      // Assuming the response is a Map<String, dynamic>
 | 
			
		||||
      Map<String, dynamic> responseData = response;
 | 
			
		||||
 | 
			
		||||
      return responseData;
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      throw Exception('Failed to create entity: $e');
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  Future<void> updateEntity( int entityId, Map<String, dynamic> entity) async {
 | 
			
		||||
    try {
 | 
			
		||||
     await _helper.getPutApiResponse('$baseUrl/Form_d/Form_d/$entityId',
 | 
			
		||||
      entity);                print(entity);
 | 
			
		||||
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      throw Exception('Failed to update entity: $e');
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future<void> deleteEntity( int entityId) async {
 | 
			
		||||
    try {
 | 
			
		||||
 await _helper.getDeleteApiResponse('$baseUrl/Form_d/Form_d/$entityId');
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      throw Exception('Failed to delete entity: $e');
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,84 @@
 | 
			
		||||
// ignore_for_file: use_build_context_synchronously
 | 
			
		||||
import 'dart:convert';
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:file_picker/file_picker.dart';
 | 
			
		||||
import 'package:image_picker/image_picker.dart';
 | 
			
		||||
import 'package:provider/provider.dart';
 | 
			
		||||
import '../Form_d_viewModel/Form_d_view_model_screen.dart';
 | 
			
		||||
import 'Form_d_fields.dart';import 'package:base_project/BuilderField/shared/ui/entity_screens.dart';
 | 
			
		||||
import '../../../../utils/image_constant.dart';
 | 
			
		||||
import '../../../../utils/size_utils.dart';
 | 
			
		||||
import '../../../../theme/app_style.dart';
 | 
			
		||||
import '../../../../widgets/app_bar/appbar_image.dart';
 | 
			
		||||
import '../../../../widgets/app_bar/appbar_title.dart';
 | 
			
		||||
import '../../../../widgets/app_bar/custom_app_bar.dart';
 | 
			
		||||
import '../../../../widgets/custom_button.dart';
 | 
			
		||||
import '../../../../widgets/custom_text_form_field.dart'; 
 | 
			
		||||
import '../../../../widgets/custom_dropdown_field.dart';
 | 
			
		||||
import 'dart:math';
 | 
			
		||||
import 'package:qr_flutter/qr_flutter.dart';
 | 
			
		||||
import 'package:barcode_widget/barcode_widget.dart';
 | 
			
		||||
import 'package:intl/intl.dart';
 | 
			
		||||
 
 | 
			
		||||
import 'package:autocomplete_textfield/autocomplete_textfield.dart';
 | 
			
		||||
import 'package:http/http.dart' as http;
 | 
			
		||||
import 'package:flutter/services.dart';
 | 
			
		||||
import 'package:image_picker/image_picker.dart';
 | 
			
		||||
import 'package:fluttertoast/fluttertoast.dart';
 | 
			
		||||
import '../../../../Reuseable/reusable_date_picker_field.dart';
 | 
			
		||||
import '../../../../Reuseable/reusable_date_time_picker_field.dart'
 | 
			
		||||
;import 'package:multi_select_flutter/multi_select_flutter.dart';
 | 
			
		||||
import 'package:just_audio/just_audio.dart';
 | 
			
		||||
import 'package:video_player/video_player.dart';
 | 
			
		||||
import 'package:google_fonts/google_fonts.dart';
 | 
			
		||||
import 'package:lottie/lottie.dart';
 | 
			
		||||
import '../../../../utils/toast_messages/toast_message_util.dart';
 | 
			
		||||
import 'dart:io';
 | 
			
		||||
import '../../../../Reuseable/reusable_text_field.dart';
 | 
			
		||||
import '../../../../Reuseable/reusable_dropdown_field.dart';
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Form_dCreateEntityScreen extends StatefulWidget {
 | 
			
		||||
  const Form_dCreateEntityScreen({super.key});
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  _Form_dCreateEntityScreenState createState() => _Form_dCreateEntityScreenState();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class _Form_dCreateEntityScreenState extends State<Form_dCreateEntityScreen> {
 | 
			
		||||
 | 
			
		||||
final Map<String, dynamic> formData = {};
 | 
			
		||||
  final _formKey = GlobalKey<FormState>();
 | 
			
		||||
  
 | 
			
		||||
  @override
 | 
			
		||||
  Widget build(BuildContext context) {
 | 
			
		||||
    return Consumer<Form_dViewModelScreen>(
 | 
			
		||||
      builder: (context, viewModel, child) {
 | 
			
		||||
        return EntityCreateScreen(
 | 
			
		||||
          fields: Form_dFields.getFields(context),
 | 
			
		||||
          onSubmit: (data) => _handleSubmit(data),
 | 
			
		||||
          title: 'Form_d',
 | 
			
		||||
          isLoading: viewModel.isLoading,
 | 
			
		||||
          errorMessage:
 | 
			
		||||
              viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null,
 | 
			
		||||
        );
 | 
			
		||||
      },
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future<void> _handleSubmit(Map<String, dynamic> formData) async {
 | 
			
		||||
    final provider =
 | 
			
		||||
        Provider.of<Form_dViewModelScreen>(context, listen: false);
 | 
			
		||||
    final success = await provider.createEntity(formData);
 | 
			
		||||
 | 
			
		||||
    if (success && mounted) {
 | 
			
		||||
      Navigator.pop(context);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,92 @@
 | 
			
		||||
// ignore_for_file: use_build_context_synchronously
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:provider/provider.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/ui/entity_details.dart';
 | 
			
		||||
import '../Form_d_viewModel/Form_d_view_model_screen.dart';
 | 
			
		||||
import 'Form_d_update_entity_screen.dart';
 | 
			
		||||
 | 
			
		||||
class Form_dDetailsScreen extends StatefulWidget {
 | 
			
		||||
  final Map<String, dynamic> entity;
 | 
			
		||||
 | 
			
		||||
  const Form_dDetailsScreen({
 | 
			
		||||
    super.key,
 | 
			
		||||
    required this.entity,
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  State<Form_dDetailsScreen> createState() => _Form_dDetailsScreenState();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class _Form_dDetailsScreenState extends State<Form_dDetailsScreen> {
 | 
			
		||||
  void _navigateToUpdateScreen(Map<String, dynamic> entity) {
 | 
			
		||||
    Navigator.push(
 | 
			
		||||
      context,
 | 
			
		||||
      MaterialPageRoute(
 | 
			
		||||
        builder: (context) => ChangeNotifierProvider(
 | 
			
		||||
          create: (context) => Form_dViewModelScreen(),
 | 
			
		||||
          child: Form_dUpdateEntityScreen(entity: entity),
 | 
			
		||||
        ),
 | 
			
		||||
      ),
 | 
			
		||||
    ).then((_) {
 | 
			
		||||
      // Refresh the details screen with updated data
 | 
			
		||||
      setState(() {});
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  void _showDeleteDialog(Map<String, dynamic> entity) {
 | 
			
		||||
    showDialog(
 | 
			
		||||
      context: context,
 | 
			
		||||
      builder: (BuildContext context) {
 | 
			
		||||
        return AlertDialog(
 | 
			
		||||
          title: const Text('Confirm Deletion'),
 | 
			
		||||
          content: const Text('Are you sure you want to delete this Form_d?'),
 | 
			
		||||
          actions: [
 | 
			
		||||
            TextButton(
 | 
			
		||||
              child: const Text('Cancel'),
 | 
			
		||||
              onPressed: () {
 | 
			
		||||
                Navigator.of(context).pop();
 | 
			
		||||
              },
 | 
			
		||||
            ),
 | 
			
		||||
            TextButton(
 | 
			
		||||
              child: const Text('Delete'),
 | 
			
		||||
              onPressed: () async {
 | 
			
		||||
                Navigator.of(context).pop();
 | 
			
		||||
                final vm =
 | 
			
		||||
                    Provider.of<Form_dViewModelScreen>(context, listen: false);
 | 
			
		||||
                final success = await vm.deleteEntity(entity['id']);
 | 
			
		||||
                if (success && mounted) {
 | 
			
		||||
                  Navigator.pop(context); // Go back to list
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
            ),
 | 
			
		||||
          ],
 | 
			
		||||
        );
 | 
			
		||||
      },
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Widget build(BuildContext context) {
 | 
			
		||||
    return Consumer<Form_dViewModelScreen>(
 | 
			
		||||
      builder: (context, viewModel, child) {
 | 
			
		||||
        return EntityDetails(
 | 
			
		||||
          entity: widget.entity,
 | 
			
		||||
          onEdit: (entity) => _navigateToUpdateScreen(entity),
 | 
			
		||||
          onDelete: (entity) => _showDeleteDialog(entity),
 | 
			
		||||
          title: 'Form_d',
 | 
			
		||||
          displayFields: [
 | 
			
		||||
  {'key': 'namek', 'label': 'Namek', 'type': 'text'},
 | 
			
		||||
 | 
			
		||||
  {'key': 'number_field_a', 'label': 'Number Field a', 'type': 'number'},
 | 
			
		||||
 | 
			
		||||
  {'key': 'number_field_b', 'label': 'Number Field b', 'type': 'number'},
 | 
			
		||||
 | 
			
		||||
  {'key': 'calculated_add', 'label': 'calculated add', 'type': 'calculated_field'},
 | 
			
		||||
 | 
			
		||||
          ],
 | 
			
		||||
          isLoading: viewModel.isLoading,
 | 
			
		||||
        );
 | 
			
		||||
      },
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,151 @@
 | 
			
		||||
// ignore_for_file: use_build_context_synchronously
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:intl/intl.dart';
 | 
			
		||||
import 'package:base_project/BuilderField/shared/ui/entity_list.dart';
 | 
			
		||||
import 'Form_d_create_entity_screen.dart';
 | 
			
		||||
import 'Form_d_update_entity_screen.dart';
 | 
			
		||||
import '../Form_d_viewModel/Form_d_view_model_screen.dart';
 | 
			
		||||
import 'Form_d_details_screen.dart';import 'package:flutter/services.dart';
 | 
			
		||||
import 'package:speech_to_text/speech_to_text.dart' as stt;
 | 
			
		||||
import '../../../../theme/app_style.dart';
 | 
			
		||||
import '../../../../utils/size_utils.dart';
 | 
			
		||||
import '../../../../widgets/custom_icon_button.dart';
 | 
			
		||||
import '../../../../utils/image_constant.dart';
 | 
			
		||||
import '../../../../widgets/app_bar/appbar_image.dart';
 | 
			
		||||
import '../../../../widgets/app_bar/appbar_title.dart';
 | 
			
		||||
import '../../../../widgets/app_bar/custom_app_bar.dart';
 | 
			
		||||
import '../../../../theme/app_decoration.dart';
 | 
			
		||||
import 'package:multi_select_flutter/multi_select_flutter.dart';
 | 
			
		||||
import '../../../../Reuseable/reusable_text_field.dart';
 | 
			
		||||
import 'package:provider/provider.dart';
 | 
			
		||||
import '../../../../utils/toast_messages/toast_message_util.dart';
 | 
			
		||||
import 'package:fluttertoast/fluttertoast.dart';
 | 
			
		||||
 | 
			
		||||
class Form_d_entity_list_screen extends StatefulWidget {
 | 
			
		||||
  static const String routeName = '/entity-list';
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  _Form_d_entity_list_screenState createState() => _Form_d_entity_list_screenState();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class _Form_d_entity_list_screenState extends State<Form_d_entity_list_screen> {
 | 
			
		||||
  @override
 | 
			
		||||
  void initState() {
 | 
			
		||||
    super.initState();
 | 
			
		||||
    _loadData();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  void _loadData() {
 | 
			
		||||
    WidgetsBinding.instance.addPostFrameCallback((_) {
 | 
			
		||||
      if (mounted) {
 | 
			
		||||
        final vm = Provider.of<Form_dViewModelScreen>(context, listen: false);
 | 
			
		||||
        vm.getAllWithPagination(refresh: true);
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  void _navigateToCreateScreen() {
 | 
			
		||||
    Navigator.push(
 | 
			
		||||
      context,
 | 
			
		||||
      MaterialPageRoute(
 | 
			
		||||
        builder: (context) => ChangeNotifierProvider(
 | 
			
		||||
          create: (context) => Form_dViewModelScreen(),
 | 
			
		||||
          child: const Form_dCreateEntityScreen(),
 | 
			
		||||
        ),
 | 
			
		||||
      ),
 | 
			
		||||
    ).then((_) {
 | 
			
		||||
      final vm = Provider.of<Form_dViewModelScreen>(context, listen: false);
 | 
			
		||||
      vm.refreshData();
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  void _navigateToUpdateScreen(Map<String, dynamic> entity) {
 | 
			
		||||
    Navigator.push(
 | 
			
		||||
      context,
 | 
			
		||||
      MaterialPageRoute(
 | 
			
		||||
        builder: (context) => ChangeNotifierProvider(
 | 
			
		||||
          create: (context) => Form_dViewModelScreen(),
 | 
			
		||||
          child: Form_dUpdateEntityScreen(entity: entity),
 | 
			
		||||
        ),
 | 
			
		||||
      ),
 | 
			
		||||
    ).then((_) {
 | 
			
		||||
      final vm = Provider.of<Form_dViewModelScreen>(context, listen: false);
 | 
			
		||||
      vm.refreshData();
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  void _navigateToDetailsScreen(Map<String, dynamic> entity) {
 | 
			
		||||
    Navigator.push(
 | 
			
		||||
      context,
 | 
			
		||||
      MaterialPageRoute(
 | 
			
		||||
        builder: (context) => ChangeNotifierProvider(
 | 
			
		||||
          create: (context) => Form_dViewModelScreen(),
 | 
			
		||||
          child: Form_dDetailsScreen(entity: entity),
 | 
			
		||||
        ),
 | 
			
		||||
      ),
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  void _showDeleteDialog(Map<String, dynamic> entity) {
 | 
			
		||||
    showDialog(
 | 
			
		||||
      context: context,
 | 
			
		||||
      builder: (BuildContext context) {
 | 
			
		||||
        return AlertDialog(
 | 
			
		||||
          title: const Text('Confirm Deletion'),
 | 
			
		||||
          content: const Text('Are you sure you want to delete this Form_d?'),
 | 
			
		||||
          actions: [
 | 
			
		||||
            TextButton(
 | 
			
		||||
              child: const Text('Cancel'),
 | 
			
		||||
              onPressed: () {
 | 
			
		||||
                Navigator.of(context).pop();
 | 
			
		||||
              },
 | 
			
		||||
            ),
 | 
			
		||||
            TextButton(
 | 
			
		||||
              child: const Text('Delete'),
 | 
			
		||||
              onPressed: () async {
 | 
			
		||||
                Navigator.of(context).pop();
 | 
			
		||||
                final vm =
 | 
			
		||||
                    Provider.of<Form_dViewModelScreen>(context, listen: false);
 | 
			
		||||
                await vm.deleteEntity(entity['id']);
 | 
			
		||||
              },
 | 
			
		||||
            ),
 | 
			
		||||
          ],
 | 
			
		||||
        );
 | 
			
		||||
      },
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Widget build(BuildContext context) {
 | 
			
		||||
    return Consumer<Form_dViewModelScreen>(
 | 
			
		||||
      builder: (context, viewModel, child) {
 | 
			
		||||
        return EntityList(
 | 
			
		||||
          entities: viewModel.filteredList,
 | 
			
		||||
          isLoading: viewModel.isLoading,
 | 
			
		||||
          errorMessage:
 | 
			
		||||
              viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null,
 | 
			
		||||
          hasMoreData: viewModel.hasMoreData,
 | 
			
		||||
          searchQuery: viewModel.searchQuery,
 | 
			
		||||
          onSearchChanged: (query) => viewModel.searchform_d(query),
 | 
			
		||||
          onEdit: (entity) => _navigateToUpdateScreen(entity),
 | 
			
		||||
          onDelete: (entity) => _showDeleteDialog(entity),
 | 
			
		||||
          onTap: (entity) => _navigateToDetailsScreen(entity),
 | 
			
		||||
          onRefresh: () => viewModel.refreshData(),
 | 
			
		||||
          onLoadMore: () => viewModel.getAllWithPagination(),
 | 
			
		||||
          title: 'Form_d',
 | 
			
		||||
          onAddNew: _navigateToCreateScreen,
 | 
			
		||||
          displayFields: [
 | 
			
		||||
  {'key': 'namek', 'label': 'Namek', 'type': 'text'},
 | 
			
		||||
 | 
			
		||||
  {'key': 'number_field_a', 'label': 'Number Field a', 'type': 'number'},
 | 
			
		||||
 | 
			
		||||
  {'key': 'number_field_b', 'label': 'Number Field b', 'type': 'number'},
 | 
			
		||||
 | 
			
		||||
  {'key': 'calculated_add', 'label': 'calculated add', 'type': 'calculated_field'},
 | 
			
		||||
 | 
			
		||||
          ],
 | 
			
		||||
        );
 | 
			
		||||
      },
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,99 @@
 | 
			
		||||
import 'package:base_project/BuilderField/shared/fields/number_field.dart';
 | 
			
		||||
import 'package:base_project/BuilderField/shared/fields/password_field.dart';
 | 
			
		||||
import 'package:base_project/BuilderField/shared/fields/phone_field.dart';
 | 
			
		||||
import 'package:base_project/BuilderField/shared/fields/custom_text_field.dart';
 | 
			
		||||
 | 
			
		||||
import '../../../../BuilderField/shared/fields/base_field.dart';
 | 
			
		||||
 | 
			
		||||
import '../../../../BuilderField/shared/fields/date_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/datetime_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/email_field.dart';
 | 
			
		||||
import 'package:base_project/BuilderField/shared/fields/url_field.dart';
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:provider/provider.dart';
 | 
			
		||||
 | 
			
		||||
import '../../../../BuilderField/shared/fields/custom_text_field.dart' as shared_text;
 | 
			
		||||
import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/calculated_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/one_to_many_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/value_list_picker_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/captcha_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/switch_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/url_field.dart';
 | 
			
		||||
 | 
			
		||||
import '../../../../BuilderField/shared/fields/audio_upload_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/checkbox_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/file_upload_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/image_upload_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/radio_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/video_upload_field.dart';
 | 
			
		||||
 | 
			
		||||
import '../../../../BuilderField/shared/fields/autocomplete_dropdown_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/autocomplete_multiselect_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/data_grid_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/dropdown_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/dynamic_dropdown_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/dynamic_multiselect_dropdown_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/static_multiselect_field.dart';import '../Form_d_viewModel/Form_d_view_model_screen.dart';/// Field definitions for Form_d entity
 | 
			
		||||
/// This defines the structure and validation for Form_d forms
 | 
			
		||||
class Form_dFields {
 | 
			
		||||
  /// Get field definitions for Form_d entity
 | 
			
		||||
  static List<BaseField> getFields(BuildContext context) {
 | 
			
		||||
    final viewModel =
 | 
			
		||||
        Provider.of<Form_dViewModelScreen>(context, listen: false);
 | 
			
		||||
    return [
 | 
			
		||||
      // Basic Information
 | 
			
		||||
 CustomTextField(
 | 
			
		||||
        fieldKey: 'namek',
 | 
			
		||||
        label: 'Namek',
 | 
			
		||||
        hint: 'Enter Namek',
 | 
			
		||||
        isRequired: true,
 | 
			
		||||
        maxLength: 50,
 | 
			
		||||
      ),
 | 
			
		||||
 | 
			
		||||
  // Number Fields
 | 
			
		||||
      NumberField(
 | 
			
		||||
        fieldKey: 'number_field_a',
 | 
			
		||||
        label: 'Number Field a',
 | 
			
		||||
        hint: 'Enter Number Field a',
 | 
			
		||||
        isRequired: false,
 | 
			
		||||
        min: 0,
 | 
			
		||||
        decimalPlaces: 0,
 | 
			
		||||
      ),
 | 
			
		||||
 | 
			
		||||
  // Number Fields
 | 
			
		||||
      NumberField(
 | 
			
		||||
        fieldKey: 'number_field_b',
 | 
			
		||||
        label: 'Number Field b',
 | 
			
		||||
        hint: 'Enter Number Field b',
 | 
			
		||||
        isRequired: false,
 | 
			
		||||
        min: 0,
 | 
			
		||||
        decimalPlaces: 0,
 | 
			
		||||
      ),
 | 
			
		||||
 | 
			
		||||
 CalculatedField(
 | 
			
		||||
        fieldKey: 'calculated_add',
 | 
			
		||||
        label: 'calculated add',
 | 
			
		||||
        hint: '',
 | 
			
		||||
        sourceKeys: const [
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
'number_field_a',
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
'number_field_b',
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
],
 | 
			
		||||
        operation: 'Multiplication',
 | 
			
		||||
      ),
 | 
			
		||||
 | 
			
		||||
    ];
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,79 @@
 | 
			
		||||
// ignore_for_file: use_build_context_synchronously
 | 
			
		||||
import 'dart:convert';
 | 
			
		||||
import 'package:provider/provider.dart';
 | 
			
		||||
import '../Form_d_viewModel/Form_d_view_model_screen.dart';
 | 
			
		||||
import 'package:base_project/BuilderField/shared/ui/entity_screens.dart';
 | 
			
		||||
import 'Form_d_fields.dart';import '../../../../utils/image_constant.dart';
 | 
			
		||||
import '../../../../utils/size_utils.dart';
 | 
			
		||||
import '../../../../theme/app_style.dart';
 | 
			
		||||
import '../../../../widgets/app_bar/appbar_image.dart';
 | 
			
		||||
import '../../../../widgets/app_bar/appbar_title.dart';
 | 
			
		||||
import '../../../../widgets/app_bar/custom_app_bar.dart';
 | 
			
		||||
import 'package:barcode_widget/barcode_widget.dart';
 | 
			
		||||
import 'package:fluttertoast/fluttertoast.dart';
 | 
			
		||||
import '../../../../widgets/custom_button.dart';
 | 
			
		||||
import '../../../../widgets/custom_text_form_field.dart';
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:autocomplete_textfield/autocomplete_textfield.dart';
 | 
			
		||||
import 'package:qr_flutter/qr_flutter.dart';
 | 
			
		||||
import 'package:intl/intl.dart';
 | 
			
		||||
 | 
			
		||||
import 'dart:math';
 | 
			
		||||
import '../../../../Reuseable/reusable_text_field.dart';
 | 
			
		||||
import '../../../../Reuseable/reusable_date_picker_field.dart';
 | 
			
		||||
import '../../../../Reuseable/reusable_date_time_picker_field.dart';
 | 
			
		||||
import '../../../../Reuseable/reusable_dropdown_field.dart';
 | 
			
		||||
import 'package:flutter/services.dart';
 | 
			
		||||
class Form_dUpdateEntityScreen extends StatefulWidget {
 | 
			
		||||
    final Map<String, dynamic> entity;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  Form_dUpdateEntityScreen({required this.entity});
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  _Form_dUpdateEntityScreenState createState() => _Form_dUpdateEntityScreenState();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class _Form_dUpdateEntityScreenState extends State<Form_dUpdateEntityScreen> {
 | 
			
		||||
  final _formKey = GlobalKey<FormState>();
 | 
			
		||||
 | 
			
		||||
@override
 | 
			
		||||
  Widget build(BuildContext context) {
 | 
			
		||||
    return Consumer<Form_dViewModelScreen>(
 | 
			
		||||
      builder: (context, viewModel, child) {
 | 
			
		||||
// Start with all fields, then remove upload fields (generic filter by keys)
 | 
			
		||||
        final Set<String> hiddenKeys = { 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 };
 | 
			
		||||
        final fields = Form_dFields.getFields(context)
 | 
			
		||||
            .where((f) => !hiddenKeys.contains(f.fieldKey))
 | 
			
		||||
            .toList();        return EntityUpdateScreen(
 | 
			
		||||
          fields: fields,
 | 
			
		||||
          initialData: widget.entity,
 | 
			
		||||
          onSubmit: (data) => _handleSubmit(data),
 | 
			
		||||
          title: 'Form_d',
 | 
			
		||||
          isLoading: viewModel.isLoading,
 | 
			
		||||
          errorMessage:
 | 
			
		||||
              viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null,
 | 
			
		||||
        );
 | 
			
		||||
      },
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future<void> _handleSubmit(Map<String, dynamic> formData) async {
 | 
			
		||||
    final provider =
 | 
			
		||||
        Provider.of<Form_dViewModelScreen>(context, listen: false);
 | 
			
		||||
    final success = await provider.updateEntity(widget.entity['id'], formData);
 | 
			
		||||
 | 
			
		||||
    if (success && mounted) {
 | 
			
		||||
      Navigator.pop(context);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,80 @@
 | 
			
		||||
import 'package:dio/dio.dart';
 | 
			
		||||
import '../../../../data/network/base_network_service.dart';
 | 
			
		||||
import '../../../../data/network/network_api_service.dart';
 | 
			
		||||
import '../../../../resources/api_constants.dart';
 | 
			
		||||
import 'package:base_project/data/response/api_response.dart';
 | 
			
		||||
 | 
			
		||||
class Form_dRepoScreen {
 | 
			
		||||
 | 
			
		||||
  final String baseUrl = ApiConstants.baseUrl;
 | 
			
		||||
  final BaseNetworkService _helper = NetworkApiService();
 | 
			
		||||
  final String _endpointPath = '/Form_d/Form_d';
 | 
			
		||||
 | 
			
		||||
  Future<ApiResponse<List<Map<String, dynamic>>>> getEntities() async {
 | 
			
		||||
    try {
 | 
			
		||||
      final response =
 | 
			
		||||
          await _helper.getGetApiResponse('$baseUrl$_endpointPath');
 | 
			
		||||
      return ApiResponse.success(response as List<Map<String, dynamic>>);
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      return ApiResponse.error('Failed to get all entities: $e');
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future<ApiResponse<List<Map<String, dynamic>>>> getAllWithPagination(
 | 
			
		||||
      int page, int size) async {
 | 
			
		||||
    try {
 | 
			
		||||
      final response = await _helper.getGetApiResponse(
 | 
			
		||||
          '$baseUrl$_endpointPath/getall/page?page=$page&size=$size');
 | 
			
		||||
 | 
			
		||||
      if (response is Map<String, dynamic> && response['content'] is List) {
 | 
			
		||||
        final List<Map<String, dynamic>> entities =
 | 
			
		||||
            (response['content'] as List).cast<Map<String, dynamic>>().toList();
 | 
			
		||||
        return ApiResponse.success(entities);
 | 
			
		||||
      } else {
 | 
			
		||||
        return ApiResponse.error('Invalid response format');
 | 
			
		||||
      }
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      return ApiResponse.error('Failed to get all without pagination: $e');
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future<ApiResponse<Map<String, dynamic>>> createEntity(
 | 
			
		||||
      Map<String, dynamic> entity) async {
 | 
			
		||||
    try {
 | 
			
		||||
      print("in post api$entity");
 | 
			
		||||
      final response =
 | 
			
		||||
          await _helper.getPostApiResponse('$baseUrl$_endpointPath', entity);
 | 
			
		||||
      return ApiResponse.success(response as Map<String, dynamic>);
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      return ApiResponse.error('Failed to create entity: $e');
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future<ApiResponse<Map<String, dynamic>>> updateEntity(
 | 
			
		||||
      int entityId, Map<String, dynamic> entity) async {
 | 
			
		||||
    try {
 | 
			
		||||
      final response = await _helper.getPutApiResponse(
 | 
			
		||||
          '$baseUrl$_endpointPath/$entityId', entity);
 | 
			
		||||
      return ApiResponse.success(response as Map<String, dynamic>);
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      return ApiResponse.error('Failed to update entity: $e');
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future<ApiResponse<void>> deleteEntity(int entityId) async {
 | 
			
		||||
    try {
 | 
			
		||||
      await _helper.getDeleteApiResponse('$baseUrl$_endpointPath/$entityId');
 | 
			
		||||
      return ApiResponse.success(null);
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      return ApiResponse.error('Failed to delete entity: $e');
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,320 @@
 | 
			
		||||
import 'package:base_project/data/response/status.dart';
 | 
			
		||||
import 'dart:typed_data';
 | 
			
		||||
import 'package:dio/dio.dart';
 | 
			
		||||
import 'package:http_parser/http_parser.dart';
 | 
			
		||||
import '../../../../utils/toast_messages/toast_message_util.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/utils/entity_field_store.dart';
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import '../Form_d_Repo/Form_d_repo_screen.dart';
 | 
			
		||||
 | 
			
		||||
class Form_dViewModelScreen extends ChangeNotifier{
 | 
			
		||||
  final Form_dRepoScreen repo = Form_dRepoScreen();
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
  // State variables
 | 
			
		||||
  List<Map<String, dynamic>> _form_dList = [];
 | 
			
		||||
  List<Map<String, dynamic>> _filteredList = [];
 | 
			
		||||
  bool _isLoading = false;
 | 
			
		||||
  String _errorMessage = '';
 | 
			
		||||
  int _currentPage = 0;
 | 
			
		||||
  int _pageSize = 10;
 | 
			
		||||
  bool _hasMoreData = true;
 | 
			
		||||
  String _searchQuery = '';
 | 
			
		||||
 | 
			
		||||
  // Getters
 | 
			
		||||
  List<Map<String, dynamic>> get form_dList => _form_dList;
 | 
			
		||||
  List<Map<String, dynamic>> get filteredList => _filteredList;
 | 
			
		||||
  bool get isLoading => _isLoading;
 | 
			
		||||
  String get errorMessage => _errorMessage;
 | 
			
		||||
  bool get hasMoreData => _hasMoreData;
 | 
			
		||||
  String get searchQuery => _searchQuery;
 | 
			
		||||
 | 
			
		||||
  // Set loading state
 | 
			
		||||
  void _setLoading(bool loading) {
 | 
			
		||||
    _isLoading = loading;
 | 
			
		||||
    notifyListeners();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Set error message
 | 
			
		||||
  void _setError(String error) {
 | 
			
		||||
    _errorMessage = error;
 | 
			
		||||
    notifyListeners();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Clear error
 | 
			
		||||
  void clearError() {
 | 
			
		||||
    _errorMessage = '';
 | 
			
		||||
    notifyListeners();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Get form_d list
 | 
			
		||||
  Future<void> getEntities() async {
 | 
			
		||||
    _setLoading(true);
 | 
			
		||||
    _setError('');
 | 
			
		||||
 | 
			
		||||
    try {
 | 
			
		||||
      final response = await repo.getEntities();
 | 
			
		||||
 | 
			
		||||
      if (response.status == Status.SUCCESS) {
 | 
			
		||||
        _form_dList = response.data ?? [];
 | 
			
		||||
        _filteredList = List.from(_form_dList);
 | 
			
		||||
        _currentPage = 0;
 | 
			
		||||
        _hasMoreData = true;
 | 
			
		||||
      } else {
 | 
			
		||||
        _setError(response.message ?? 'Failed to fetch form_d list');
 | 
			
		||||
      }
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      _setError('Failed to fetch form_d list: $e');
 | 
			
		||||
    } finally {
 | 
			
		||||
      _setLoading(false);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Get form_d list with pagination
 | 
			
		||||
  Future<void> getAllWithPagination({bool refresh = false}) async {
 | 
			
		||||
    if (refresh) {
 | 
			
		||||
      _currentPage = 0;
 | 
			
		||||
      _form_dList.clear();
 | 
			
		||||
      _filteredList.clear();
 | 
			
		||||
      _hasMoreData = true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (!_hasMoreData || _isLoading) return;
 | 
			
		||||
 | 
			
		||||
    _setLoading(true);
 | 
			
		||||
    _setError('');
 | 
			
		||||
 | 
			
		||||
    try {
 | 
			
		||||
      final response = await repo.getAllWithPagination(_currentPage, _pageSize);
 | 
			
		||||
 | 
			
		||||
      if (response.status == Status.SUCCESS) {
 | 
			
		||||
        final newItems = response.data ?? [];
 | 
			
		||||
 | 
			
		||||
        if (refresh) {
 | 
			
		||||
          _form_dList = newItems;
 | 
			
		||||
        } else {
 | 
			
		||||
          _form_dList.addAll(newItems);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        _filteredList = List.from(_form_dList);
 | 
			
		||||
        _currentPage++;
 | 
			
		||||
 | 
			
		||||
        // Check if we have more data
 | 
			
		||||
        _hasMoreData = newItems.length == _pageSize;
 | 
			
		||||
      } else {
 | 
			
		||||
        _setError(response.message ?? 'Failed to fetch Form_d list');
 | 
			
		||||
      }
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      _setError('Failed to fetch form_d list: $e');
 | 
			
		||||
    } finally {
 | 
			
		||||
      _setLoading(false);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  // Create Form_d
 | 
			
		||||
  Future<bool> createEntity(Map<String, dynamic> entity) async {
 | 
			
		||||
    _setLoading(true);
 | 
			
		||||
    _setError('');
 | 
			
		||||
 | 
			
		||||
    try {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
      final response = await repo.createEntity(entity);
 | 
			
		||||
 | 
			
		||||
      if (response.status == Status.SUCCESS) {
 | 
			
		||||
// Get the response ID for image upload
 | 
			
		||||
 | 
			
		||||
        final responseId = response.data!['id'].toString();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        ToastMessageUtil.showToast(
 | 
			
		||||
          message: 'form_d created successfully',
 | 
			
		||||
          toastType: ToastType.success,
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        // Refresh the list
 | 
			
		||||
        await getEntities();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        return true;
 | 
			
		||||
      } else {
 | 
			
		||||
        _setError(response.message ?? 'Failed to create Form_d');
 | 
			
		||||
        ToastMessageUtil.showToast(
 | 
			
		||||
          message: response.message ?? 'Failed to create Form_d',
 | 
			
		||||
          toastType: ToastType.error,
 | 
			
		||||
        );
 | 
			
		||||
        return false;
 | 
			
		||||
      }
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      _setError('Failed to create form_d: $e');
 | 
			
		||||
      ToastMessageUtil.showToast(
 | 
			
		||||
        message: 'Failed to create Form_d: $e',
 | 
			
		||||
        toastType: ToastType.error,
 | 
			
		||||
      );
 | 
			
		||||
      return false;
 | 
			
		||||
    } finally {
 | 
			
		||||
      _setLoading(false);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Update form_d
 | 
			
		||||
  Future<bool> updateEntity(int id, Map<String, dynamic> entity) async {
 | 
			
		||||
    _setLoading(true);
 | 
			
		||||
    _setError('');
 | 
			
		||||
 | 
			
		||||
    try {
 | 
			
		||||
      final response = await repo.updateEntity(id, entity);
 | 
			
		||||
 | 
			
		||||
      if (response.status == Status.SUCCESS) {
 | 
			
		||||
        ToastMessageUtil.showToast(
 | 
			
		||||
          message: 'Form_d updated successfully',
 | 
			
		||||
          toastType: ToastType.success,
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        // Update the item in the list
 | 
			
		||||
        final index = _form_dList.indexWhere((item) => item['id'] == id);
 | 
			
		||||
        if (index != -1) {
 | 
			
		||||
          _form_dList[index] = response.data!;
 | 
			
		||||
          _filteredList = List.from(_form_dList);
 | 
			
		||||
          notifyListeners();
 | 
			
		||||
        }
 | 
			
		||||
        return true;
 | 
			
		||||
      } else {
 | 
			
		||||
        _setError(response.message ?? 'Failed to update Form_d');
 | 
			
		||||
        ToastMessageUtil.showToast(
 | 
			
		||||
          message: response.message ?? 'Failed to update Form_d',
 | 
			
		||||
          toastType: ToastType.error,
 | 
			
		||||
        );
 | 
			
		||||
        return false;
 | 
			
		||||
      }
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      _setError('Failed to update form_d: $e');
 | 
			
		||||
      ToastMessageUtil.showToast(
 | 
			
		||||
        message: 'Failed to update Form_d: $e',
 | 
			
		||||
        toastType: ToastType.error,
 | 
			
		||||
      );
 | 
			
		||||
      return false;
 | 
			
		||||
    } finally {
 | 
			
		||||
      _setLoading(false);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Delete form_d
 | 
			
		||||
  Future<bool> deleteEntity(int id) async {
 | 
			
		||||
    _setLoading(true);
 | 
			
		||||
    _setError('');
 | 
			
		||||
 | 
			
		||||
    try {
 | 
			
		||||
      final response = await repo.deleteEntity(id);
 | 
			
		||||
 | 
			
		||||
      if (response.status == Status.SUCCESS) {
 | 
			
		||||
        ToastMessageUtil.showToast(
 | 
			
		||||
          message: 'Form_d deleted successfully',
 | 
			
		||||
          toastType: ToastType.success,
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        // Remove the item from the list
 | 
			
		||||
        _form_dList.removeWhere((item) => item['id'] == id);
 | 
			
		||||
        _filteredList = List.from(_form_dList);
 | 
			
		||||
        notifyListeners();
 | 
			
		||||
        return true;
 | 
			
		||||
      } else {
 | 
			
		||||
        _setError(response.message ?? 'Failed to delete Form_d');
 | 
			
		||||
        ToastMessageUtil.showToast(
 | 
			
		||||
          message: response.message ?? 'Failed to delete Form_d',
 | 
			
		||||
          toastType: ToastType.error,
 | 
			
		||||
        );
 | 
			
		||||
        return false;
 | 
			
		||||
      }
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      _setError('Failed to delete form_d: $e');
 | 
			
		||||
      ToastMessageUtil.showToast(
 | 
			
		||||
        message: 'Failed to delete Form_d: $e',
 | 
			
		||||
        toastType: ToastType.error,
 | 
			
		||||
      );
 | 
			
		||||
      return false;
 | 
			
		||||
    } finally {
 | 
			
		||||
      _setLoading(false);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Search form_d
 | 
			
		||||
  void searchform_d(String query) {
 | 
			
		||||
    _searchQuery = query;
 | 
			
		||||
 | 
			
		||||
    if (query.isEmpty) {
 | 
			
		||||
      _filteredList = List.from(_form_dList);
 | 
			
		||||
    } else {
 | 
			
		||||
      _filteredList = _form_dList.where((item) {
 | 
			
		||||
        return
 | 
			
		||||
 | 
			
		||||
             
 | 
			
		||||
(item['namek']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) ||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
             
 | 
			
		||||
(item['number_field_a']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) ||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
             
 | 
			
		||||
(item['number_field_b']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
;
 | 
			
		||||
      }).toList();
 | 
			
		||||
    }
 | 
			
		||||
    notifyListeners();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Clear search
 | 
			
		||||
  void clearSearch() {
 | 
			
		||||
    _searchQuery = '';
 | 
			
		||||
    _filteredList = List.from(_form_dList);
 | 
			
		||||
    notifyListeners();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Refresh data
 | 
			
		||||
  Future<void> refreshData() async {
 | 
			
		||||
    await getAllWithPagination(refresh: true);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,84 @@
 | 
			
		||||
import 'dart:typed_data';
 | 
			
		||||
import 'package:dio/dio.dart';
 | 
			
		||||
import 'package:http_parser/http_parser.dart';
 | 
			
		||||
import '../../../../resources/api_constants.dart';
 | 
			
		||||
import '../../../../data/network/base_network_service.dart';
 | 
			
		||||
import '../../../../data/network/network_api_service.dart';
 | 
			
		||||
 | 
			
		||||
class TestlistApiService {
 | 
			
		||||
  final String baseUrl = ApiConstants.baseUrl;
 | 
			
		||||
 | 
			
		||||
      final BaseNetworkService _helper = NetworkApiService();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
   Future<List<Map<String, dynamic>>> getEntities() async {
 | 
			
		||||
 | 
			
		||||
    try {
 | 
			
		||||
      final response = await _helper.getGetApiResponse('$baseUrl/Testlist/Testlist');
 | 
			
		||||
      final entities = (response as List).cast<Map<String, dynamic>>();
 | 
			
		||||
      return entities;
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      throw Exception('Failed to get all entities: $e');
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
Future<List<Map<String, dynamic>>> getAllWithPagination(
 | 
			
		||||
       int page, int size) async {
 | 
			
		||||
    try {
 | 
			
		||||
            final response =
 | 
			
		||||
          await _helper.getGetApiResponse('$baseUrl/Testlist/Testlist/getall/page?page=$page&size=$size');
 | 
			
		||||
      final entities =
 | 
			
		||||
          (response['content'] as List).cast<Map<String, dynamic>>();
 | 
			
		||||
      return entities;
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      throw Exception('Failed to get all without pagination: $e');
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  Future<Map<String, dynamic>> createEntity(
 | 
			
		||||
       Map<String, dynamic> entity) async {
 | 
			
		||||
    try {
 | 
			
		||||
            print("in post api$entity");
 | 
			
		||||
      final response =
 | 
			
		||||
          await _helper.getPostApiResponse('$baseUrl/Testlist/Testlist', entity);
 | 
			
		||||
 | 
			
		||||
      print(entity);
 | 
			
		||||
 | 
			
		||||
      // Assuming the response is a Map<String, dynamic>
 | 
			
		||||
      Map<String, dynamic> responseData = response;
 | 
			
		||||
 | 
			
		||||
      return responseData;
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      throw Exception('Failed to create entity: $e');
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  Future<void> updateEntity( int entityId, Map<String, dynamic> entity) async {
 | 
			
		||||
    try {
 | 
			
		||||
     await _helper.getPutApiResponse('$baseUrl/Testlist/Testlist/$entityId',
 | 
			
		||||
      entity);                print(entity);
 | 
			
		||||
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      throw Exception('Failed to update entity: $e');
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future<void> deleteEntity( int entityId) async {
 | 
			
		||||
    try {
 | 
			
		||||
 await _helper.getDeleteApiResponse('$baseUrl/Testlist/Testlist/$entityId');
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      throw Exception('Failed to delete entity: $e');
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,82 @@
 | 
			
		||||
// ignore_for_file: use_build_context_synchronously
 | 
			
		||||
import 'dart:convert';
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:file_picker/file_picker.dart';
 | 
			
		||||
import 'package:image_picker/image_picker.dart';
 | 
			
		||||
import 'package:provider/provider.dart';
 | 
			
		||||
import '../Testlist_viewModel/Testlist_view_model_screen.dart';
 | 
			
		||||
import 'Testlist_fields.dart';import 'package:base_project/BuilderField/shared/ui/entity_screens.dart';
 | 
			
		||||
import '../../../../utils/image_constant.dart';
 | 
			
		||||
import '../../../../utils/size_utils.dart';
 | 
			
		||||
import '../../../../theme/app_style.dart';
 | 
			
		||||
import '../../../../widgets/app_bar/appbar_image.dart';
 | 
			
		||||
import '../../../../widgets/app_bar/appbar_title.dart';
 | 
			
		||||
import '../../../../widgets/app_bar/custom_app_bar.dart';
 | 
			
		||||
import '../../../../widgets/custom_button.dart';
 | 
			
		||||
import '../../../../widgets/custom_text_form_field.dart'; 
 | 
			
		||||
import '../../../../widgets/custom_dropdown_field.dart';
 | 
			
		||||
import 'dart:math';
 | 
			
		||||
import 'package:qr_flutter/qr_flutter.dart';
 | 
			
		||||
import 'package:barcode_widget/barcode_widget.dart';
 | 
			
		||||
import 'package:intl/intl.dart';
 | 
			
		||||
 
 | 
			
		||||
import 'package:autocomplete_textfield/autocomplete_textfield.dart';
 | 
			
		||||
import 'package:http/http.dart' as http;
 | 
			
		||||
import 'package:flutter/services.dart';
 | 
			
		||||
import 'package:image_picker/image_picker.dart';
 | 
			
		||||
import 'package:fluttertoast/fluttertoast.dart';
 | 
			
		||||
import '../../../../Reuseable/reusable_date_picker_field.dart';
 | 
			
		||||
import '../../../../Reuseable/reusable_date_time_picker_field.dart'
 | 
			
		||||
;import 'package:multi_select_flutter/multi_select_flutter.dart';
 | 
			
		||||
import 'package:just_audio/just_audio.dart';
 | 
			
		||||
import 'package:video_player/video_player.dart';
 | 
			
		||||
import 'package:google_fonts/google_fonts.dart';
 | 
			
		||||
import 'package:lottie/lottie.dart';
 | 
			
		||||
import '../../../../utils/toast_messages/toast_message_util.dart';
 | 
			
		||||
import 'dart:io';
 | 
			
		||||
import '../../../../Reuseable/reusable_text_field.dart';
 | 
			
		||||
import '../../../../Reuseable/reusable_dropdown_field.dart';
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class TestlistCreateEntityScreen extends StatefulWidget {
 | 
			
		||||
  const TestlistCreateEntityScreen({super.key});
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  _TestlistCreateEntityScreenState createState() => _TestlistCreateEntityScreenState();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class _TestlistCreateEntityScreenState extends State<TestlistCreateEntityScreen> {
 | 
			
		||||
 | 
			
		||||
final Map<String, dynamic> formData = {};
 | 
			
		||||
  final _formKey = GlobalKey<FormState>();
 | 
			
		||||
  
 | 
			
		||||
  @override
 | 
			
		||||
  Widget build(BuildContext context) {
 | 
			
		||||
    return Consumer<TestlistViewModelScreen>(
 | 
			
		||||
      builder: (context, viewModel, child) {
 | 
			
		||||
        return EntityCreateScreen(
 | 
			
		||||
          fields: TestlistFields.getFields(context),
 | 
			
		||||
          onSubmit: (data) => _handleSubmit(data),
 | 
			
		||||
          title: 'Testlist',
 | 
			
		||||
          isLoading: viewModel.isLoading,
 | 
			
		||||
          errorMessage:
 | 
			
		||||
              viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null,
 | 
			
		||||
        );
 | 
			
		||||
      },
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future<void> _handleSubmit(Map<String, dynamic> formData) async {
 | 
			
		||||
    final provider =
 | 
			
		||||
        Provider.of<TestlistViewModelScreen>(context, listen: false);
 | 
			
		||||
    final success = await provider.createEntity(formData);
 | 
			
		||||
 | 
			
		||||
    if (success && mounted) {
 | 
			
		||||
      Navigator.pop(context);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,90 @@
 | 
			
		||||
// ignore_for_file: use_build_context_synchronously
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:provider/provider.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/ui/entity_details.dart';
 | 
			
		||||
import '../Testlist_viewModel/Testlist_view_model_screen.dart';
 | 
			
		||||
import 'Testlist_update_entity_screen.dart';
 | 
			
		||||
 | 
			
		||||
class TestlistDetailsScreen extends StatefulWidget {
 | 
			
		||||
  final Map<String, dynamic> entity;
 | 
			
		||||
 | 
			
		||||
  const TestlistDetailsScreen({
 | 
			
		||||
    super.key,
 | 
			
		||||
    required this.entity,
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  State<TestlistDetailsScreen> createState() => _TestlistDetailsScreenState();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class _TestlistDetailsScreenState extends State<TestlistDetailsScreen> {
 | 
			
		||||
  void _navigateToUpdateScreen(Map<String, dynamic> entity) {
 | 
			
		||||
    Navigator.push(
 | 
			
		||||
      context,
 | 
			
		||||
      MaterialPageRoute(
 | 
			
		||||
        builder: (context) => ChangeNotifierProvider(
 | 
			
		||||
          create: (context) => TestlistViewModelScreen(),
 | 
			
		||||
          child: TestlistUpdateEntityScreen(entity: entity),
 | 
			
		||||
        ),
 | 
			
		||||
      ),
 | 
			
		||||
    ).then((_) {
 | 
			
		||||
      // Refresh the details screen with updated data
 | 
			
		||||
      setState(() {});
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  void _showDeleteDialog(Map<String, dynamic> entity) {
 | 
			
		||||
    showDialog(
 | 
			
		||||
      context: context,
 | 
			
		||||
      builder: (BuildContext context) {
 | 
			
		||||
        return AlertDialog(
 | 
			
		||||
          title: const Text('Confirm Deletion'),
 | 
			
		||||
          content: const Text('Are you sure you want to delete this Testlist?'),
 | 
			
		||||
          actions: [
 | 
			
		||||
            TextButton(
 | 
			
		||||
              child: const Text('Cancel'),
 | 
			
		||||
              onPressed: () {
 | 
			
		||||
                Navigator.of(context).pop();
 | 
			
		||||
              },
 | 
			
		||||
            ),
 | 
			
		||||
            TextButton(
 | 
			
		||||
              child: const Text('Delete'),
 | 
			
		||||
              onPressed: () async {
 | 
			
		||||
                Navigator.of(context).pop();
 | 
			
		||||
                final vm =
 | 
			
		||||
                    Provider.of<TestlistViewModelScreen>(context, listen: false);
 | 
			
		||||
                final success = await vm.deleteEntity(entity['id']);
 | 
			
		||||
                if (success && mounted) {
 | 
			
		||||
                  Navigator.pop(context); // Go back to list
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
            ),
 | 
			
		||||
          ],
 | 
			
		||||
        );
 | 
			
		||||
      },
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Widget build(BuildContext context) {
 | 
			
		||||
    return Consumer<TestlistViewModelScreen>(
 | 
			
		||||
      builder: (context, viewModel, child) {
 | 
			
		||||
        return EntityDetails(
 | 
			
		||||
          entity: widget.entity,
 | 
			
		||||
          onEdit: (entity) => _navigateToUpdateScreen(entity),
 | 
			
		||||
          onDelete: (entity) => _showDeleteDialog(entity),
 | 
			
		||||
          title: 'Testlist',
 | 
			
		||||
          displayFields: [
 | 
			
		||||
  {'key': 'name', 'label': 'Name', 'type': 'text'},
 | 
			
		||||
 | 
			
		||||
  {'key': 'description', 'label': 'Description', 'type': 'textarea'},
 | 
			
		||||
 | 
			
		||||
  {'key': 'active', 'label': 'Active', 'type': 'toggle_switch'},
 | 
			
		||||
 | 
			
		||||
          ],
 | 
			
		||||
          isLoading: viewModel.isLoading,
 | 
			
		||||
        );
 | 
			
		||||
      },
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,149 @@
 | 
			
		||||
// ignore_for_file: use_build_context_synchronously
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:intl/intl.dart';
 | 
			
		||||
import 'package:base_project/BuilderField/shared/ui/entity_list.dart';
 | 
			
		||||
import 'Testlist_create_entity_screen.dart';
 | 
			
		||||
import 'Testlist_update_entity_screen.dart';
 | 
			
		||||
import '../Testlist_viewModel/Testlist_view_model_screen.dart';
 | 
			
		||||
import 'Testlist_details_screen.dart';import 'package:flutter/services.dart';
 | 
			
		||||
import 'package:speech_to_text/speech_to_text.dart' as stt;
 | 
			
		||||
import '../../../../theme/app_style.dart';
 | 
			
		||||
import '../../../../utils/size_utils.dart';
 | 
			
		||||
import '../../../../widgets/custom_icon_button.dart';
 | 
			
		||||
import '../../../../utils/image_constant.dart';
 | 
			
		||||
import '../../../../widgets/app_bar/appbar_image.dart';
 | 
			
		||||
import '../../../../widgets/app_bar/appbar_title.dart';
 | 
			
		||||
import '../../../../widgets/app_bar/custom_app_bar.dart';
 | 
			
		||||
import '../../../../theme/app_decoration.dart';
 | 
			
		||||
import 'package:multi_select_flutter/multi_select_flutter.dart';
 | 
			
		||||
import '../../../../Reuseable/reusable_text_field.dart';
 | 
			
		||||
import 'package:provider/provider.dart';
 | 
			
		||||
import '../../../../utils/toast_messages/toast_message_util.dart';
 | 
			
		||||
import 'package:fluttertoast/fluttertoast.dart';
 | 
			
		||||
 | 
			
		||||
class Testlist_entity_list_screen extends StatefulWidget {
 | 
			
		||||
  static const String routeName = '/entity-list';
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  _Testlist_entity_list_screenState createState() => _Testlist_entity_list_screenState();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class _Testlist_entity_list_screenState extends State<Testlist_entity_list_screen> {
 | 
			
		||||
  @override
 | 
			
		||||
  void initState() {
 | 
			
		||||
    super.initState();
 | 
			
		||||
    _loadData();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  void _loadData() {
 | 
			
		||||
    WidgetsBinding.instance.addPostFrameCallback((_) {
 | 
			
		||||
      if (mounted) {
 | 
			
		||||
        final vm = Provider.of<TestlistViewModelScreen>(context, listen: false);
 | 
			
		||||
        vm.getAllWithPagination(refresh: true);
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  void _navigateToCreateScreen() {
 | 
			
		||||
    Navigator.push(
 | 
			
		||||
      context,
 | 
			
		||||
      MaterialPageRoute(
 | 
			
		||||
        builder: (context) => ChangeNotifierProvider(
 | 
			
		||||
          create: (context) => TestlistViewModelScreen(),
 | 
			
		||||
          child: const TestlistCreateEntityScreen(),
 | 
			
		||||
        ),
 | 
			
		||||
      ),
 | 
			
		||||
    ).then((_) {
 | 
			
		||||
      final vm = Provider.of<TestlistViewModelScreen>(context, listen: false);
 | 
			
		||||
      vm.refreshData();
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  void _navigateToUpdateScreen(Map<String, dynamic> entity) {
 | 
			
		||||
    Navigator.push(
 | 
			
		||||
      context,
 | 
			
		||||
      MaterialPageRoute(
 | 
			
		||||
        builder: (context) => ChangeNotifierProvider(
 | 
			
		||||
          create: (context) => TestlistViewModelScreen(),
 | 
			
		||||
          child: TestlistUpdateEntityScreen(entity: entity),
 | 
			
		||||
        ),
 | 
			
		||||
      ),
 | 
			
		||||
    ).then((_) {
 | 
			
		||||
      final vm = Provider.of<TestlistViewModelScreen>(context, listen: false);
 | 
			
		||||
      vm.refreshData();
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  void _navigateToDetailsScreen(Map<String, dynamic> entity) {
 | 
			
		||||
    Navigator.push(
 | 
			
		||||
      context,
 | 
			
		||||
      MaterialPageRoute(
 | 
			
		||||
        builder: (context) => ChangeNotifierProvider(
 | 
			
		||||
          create: (context) => TestlistViewModelScreen(),
 | 
			
		||||
          child: TestlistDetailsScreen(entity: entity),
 | 
			
		||||
        ),
 | 
			
		||||
      ),
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  void _showDeleteDialog(Map<String, dynamic> entity) {
 | 
			
		||||
    showDialog(
 | 
			
		||||
      context: context,
 | 
			
		||||
      builder: (BuildContext context) {
 | 
			
		||||
        return AlertDialog(
 | 
			
		||||
          title: const Text('Confirm Deletion'),
 | 
			
		||||
          content: const Text('Are you sure you want to delete this Testlist?'),
 | 
			
		||||
          actions: [
 | 
			
		||||
            TextButton(
 | 
			
		||||
              child: const Text('Cancel'),
 | 
			
		||||
              onPressed: () {
 | 
			
		||||
                Navigator.of(context).pop();
 | 
			
		||||
              },
 | 
			
		||||
            ),
 | 
			
		||||
            TextButton(
 | 
			
		||||
              child: const Text('Delete'),
 | 
			
		||||
              onPressed: () async {
 | 
			
		||||
                Navigator.of(context).pop();
 | 
			
		||||
                final vm =
 | 
			
		||||
                    Provider.of<TestlistViewModelScreen>(context, listen: false);
 | 
			
		||||
                await vm.deleteEntity(entity['id']);
 | 
			
		||||
              },
 | 
			
		||||
            ),
 | 
			
		||||
          ],
 | 
			
		||||
        );
 | 
			
		||||
      },
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Widget build(BuildContext context) {
 | 
			
		||||
    return Consumer<TestlistViewModelScreen>(
 | 
			
		||||
      builder: (context, viewModel, child) {
 | 
			
		||||
        return EntityList(
 | 
			
		||||
          entities: viewModel.filteredList,
 | 
			
		||||
          isLoading: viewModel.isLoading,
 | 
			
		||||
          errorMessage:
 | 
			
		||||
              viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null,
 | 
			
		||||
          hasMoreData: viewModel.hasMoreData,
 | 
			
		||||
          searchQuery: viewModel.searchQuery,
 | 
			
		||||
          onSearchChanged: (query) => viewModel.searchtestlist(query),
 | 
			
		||||
          onEdit: (entity) => _navigateToUpdateScreen(entity),
 | 
			
		||||
          onDelete: (entity) => _showDeleteDialog(entity),
 | 
			
		||||
          onTap: (entity) => _navigateToDetailsScreen(entity),
 | 
			
		||||
          onRefresh: () => viewModel.refreshData(),
 | 
			
		||||
          onLoadMore: () => viewModel.getAllWithPagination(),
 | 
			
		||||
          title: 'Testlist',
 | 
			
		||||
          onAddNew: _navigateToCreateScreen,
 | 
			
		||||
          displayFields: [
 | 
			
		||||
  {'key': 'name', 'label': 'Name', 'type': 'text'},
 | 
			
		||||
 | 
			
		||||
  {'key': 'description', 'label': 'Description', 'type': 'textarea'},
 | 
			
		||||
 | 
			
		||||
  {'key': 'active', 'label': 'Active', 'type': 'toggle_switch'},
 | 
			
		||||
 | 
			
		||||
          ],
 | 
			
		||||
        );
 | 
			
		||||
      },
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,70 @@
 | 
			
		||||
import 'package:base_project/BuilderField/shared/fields/number_field.dart';
 | 
			
		||||
import 'package:base_project/BuilderField/shared/fields/password_field.dart';
 | 
			
		||||
import 'package:base_project/BuilderField/shared/fields/phone_field.dart';
 | 
			
		||||
import 'package:base_project/BuilderField/shared/fields/custom_text_field.dart';
 | 
			
		||||
 | 
			
		||||
import '../../../../BuilderField/shared/fields/base_field.dart';
 | 
			
		||||
 | 
			
		||||
import '../../../../BuilderField/shared/fields/date_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/datetime_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/email_field.dart';
 | 
			
		||||
import 'package:base_project/BuilderField/shared/fields/url_field.dart';
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:provider/provider.dart';
 | 
			
		||||
 | 
			
		||||
import '../../../../BuilderField/shared/fields/custom_text_field.dart' as shared_text;
 | 
			
		||||
import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/calculated_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/one_to_many_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/value_list_picker_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/captcha_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/switch_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/url_field.dart';
 | 
			
		||||
 | 
			
		||||
import '../../../../BuilderField/shared/fields/audio_upload_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/checkbox_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/file_upload_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/image_upload_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/radio_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/video_upload_field.dart';
 | 
			
		||||
 | 
			
		||||
import '../../../../BuilderField/shared/fields/autocomplete_dropdown_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/autocomplete_multiselect_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/one_to_one_relation_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/data_grid_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/dropdown_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/dynamic_dropdown_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/dynamic_multiselect_dropdown_field.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/fields/static_multiselect_field.dart';import '../Testlist_viewModel/Testlist_view_model_screen.dart';/// Field definitions for Testlist entity
 | 
			
		||||
/// This defines the structure and validation for Testlist forms
 | 
			
		||||
class TestlistFields {
 | 
			
		||||
  /// Get field definitions for Testlist entity
 | 
			
		||||
  static List<BaseField> getFields(BuildContext context) {
 | 
			
		||||
    final viewModel =
 | 
			
		||||
        Provider.of<TestlistViewModelScreen>(context, listen: false);
 | 
			
		||||
    return [
 | 
			
		||||
      // Basic Information
 | 
			
		||||
 CustomTextField(
 | 
			
		||||
        fieldKey: 'name',
 | 
			
		||||
        label: 'Name',
 | 
			
		||||
        hint: 'Enter Name',
 | 
			
		||||
        isRequired: true,
 | 
			
		||||
        maxLength: 50,
 | 
			
		||||
      ),
 | 
			
		||||
 | 
			
		||||
CustomTextField(
 | 
			
		||||
        fieldKey: 'description',
 | 
			
		||||
        label: 'Description',
 | 
			
		||||
        hint: 'Enter Description',
 | 
			
		||||
        isRequired: false,
 | 
			
		||||
        maxLength: 1000,
 | 
			
		||||
      ),
 | 
			
		||||
 | 
			
		||||
 SwitchField(
 | 
			
		||||
        fieldKey: 'active',
 | 
			
		||||
        label: 'Active',
 | 
			
		||||
      ),
 | 
			
		||||
 | 
			
		||||
    ];
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,77 @@
 | 
			
		||||
// ignore_for_file: use_build_context_synchronously
 | 
			
		||||
import 'dart:convert';
 | 
			
		||||
import 'package:provider/provider.dart';
 | 
			
		||||
import '../Testlist_viewModel/Testlist_view_model_screen.dart';
 | 
			
		||||
import 'package:base_project/BuilderField/shared/ui/entity_screens.dart';
 | 
			
		||||
import 'Testlist_fields.dart';import '../../../../utils/image_constant.dart';
 | 
			
		||||
import '../../../../utils/size_utils.dart';
 | 
			
		||||
import '../../../../theme/app_style.dart';
 | 
			
		||||
import '../../../../widgets/app_bar/appbar_image.dart';
 | 
			
		||||
import '../../../../widgets/app_bar/appbar_title.dart';
 | 
			
		||||
import '../../../../widgets/app_bar/custom_app_bar.dart';
 | 
			
		||||
import 'package:barcode_widget/barcode_widget.dart';
 | 
			
		||||
import 'package:fluttertoast/fluttertoast.dart';
 | 
			
		||||
import '../../../../widgets/custom_button.dart';
 | 
			
		||||
import '../../../../widgets/custom_text_form_field.dart';
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:autocomplete_textfield/autocomplete_textfield.dart';
 | 
			
		||||
import 'package:qr_flutter/qr_flutter.dart';
 | 
			
		||||
import 'package:intl/intl.dart';
 | 
			
		||||
 | 
			
		||||
import 'dart:math';
 | 
			
		||||
import '../../../../Reuseable/reusable_text_field.dart';
 | 
			
		||||
import '../../../../Reuseable/reusable_date_picker_field.dart';
 | 
			
		||||
import '../../../../Reuseable/reusable_date_time_picker_field.dart';
 | 
			
		||||
import '../../../../Reuseable/reusable_dropdown_field.dart';
 | 
			
		||||
import 'package:flutter/services.dart';
 | 
			
		||||
class TestlistUpdateEntityScreen extends StatefulWidget {
 | 
			
		||||
    final Map<String, dynamic> entity;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  TestlistUpdateEntityScreen({required this.entity});
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  _TestlistUpdateEntityScreenState createState() => _TestlistUpdateEntityScreenState();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class _TestlistUpdateEntityScreenState extends State<TestlistUpdateEntityScreen> {
 | 
			
		||||
  final _formKey = GlobalKey<FormState>();
 | 
			
		||||
 | 
			
		||||
@override
 | 
			
		||||
  Widget build(BuildContext context) {
 | 
			
		||||
    return Consumer<TestlistViewModelScreen>(
 | 
			
		||||
      builder: (context, viewModel, child) {
 | 
			
		||||
// Start with all fields, then remove upload fields (generic filter by keys)
 | 
			
		||||
        final Set<String> hiddenKeys = { 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 };
 | 
			
		||||
        final fields = TestlistFields.getFields(context)
 | 
			
		||||
            .where((f) => !hiddenKeys.contains(f.fieldKey))
 | 
			
		||||
            .toList();        return EntityUpdateScreen(
 | 
			
		||||
          fields: fields,
 | 
			
		||||
          initialData: widget.entity,
 | 
			
		||||
          onSubmit: (data) => _handleSubmit(data),
 | 
			
		||||
          title: 'Testlist',
 | 
			
		||||
          isLoading: viewModel.isLoading,
 | 
			
		||||
          errorMessage:
 | 
			
		||||
              viewModel.errorMessage.isNotEmpty ? viewModel.errorMessage : null,
 | 
			
		||||
        );
 | 
			
		||||
      },
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future<void> _handleSubmit(Map<String, dynamic> formData) async {
 | 
			
		||||
    final provider =
 | 
			
		||||
        Provider.of<TestlistViewModelScreen>(context, listen: false);
 | 
			
		||||
    final success = await provider.updateEntity(widget.entity['id'], formData);
 | 
			
		||||
 | 
			
		||||
    if (success && mounted) {
 | 
			
		||||
      Navigator.pop(context);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,78 @@
 | 
			
		||||
import 'package:dio/dio.dart';
 | 
			
		||||
import '../../../../data/network/base_network_service.dart';
 | 
			
		||||
import '../../../../data/network/network_api_service.dart';
 | 
			
		||||
import '../../../../resources/api_constants.dart';
 | 
			
		||||
import 'package:base_project/data/response/api_response.dart';
 | 
			
		||||
 | 
			
		||||
class TestlistRepoScreen {
 | 
			
		||||
 | 
			
		||||
  final String baseUrl = ApiConstants.baseUrl;
 | 
			
		||||
  final BaseNetworkService _helper = NetworkApiService();
 | 
			
		||||
  final String _endpointPath = '/Testlist/Testlist';
 | 
			
		||||
 | 
			
		||||
  Future<ApiResponse<List<Map<String, dynamic>>>> getEntities() async {
 | 
			
		||||
    try {
 | 
			
		||||
      final response =
 | 
			
		||||
          await _helper.getGetApiResponse('$baseUrl$_endpointPath');
 | 
			
		||||
      return ApiResponse.success(response as List<Map<String, dynamic>>);
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      return ApiResponse.error('Failed to get all entities: $e');
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future<ApiResponse<List<Map<String, dynamic>>>> getAllWithPagination(
 | 
			
		||||
      int page, int size) async {
 | 
			
		||||
    try {
 | 
			
		||||
      final response = await _helper.getGetApiResponse(
 | 
			
		||||
          '$baseUrl$_endpointPath/getall/page?page=$page&size=$size');
 | 
			
		||||
 | 
			
		||||
      if (response is Map<String, dynamic> && response['content'] is List) {
 | 
			
		||||
        final List<Map<String, dynamic>> entities =
 | 
			
		||||
            (response['content'] as List).cast<Map<String, dynamic>>().toList();
 | 
			
		||||
        return ApiResponse.success(entities);
 | 
			
		||||
      } else {
 | 
			
		||||
        return ApiResponse.error('Invalid response format');
 | 
			
		||||
      }
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      return ApiResponse.error('Failed to get all without pagination: $e');
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future<ApiResponse<Map<String, dynamic>>> createEntity(
 | 
			
		||||
      Map<String, dynamic> entity) async {
 | 
			
		||||
    try {
 | 
			
		||||
      print("in post api$entity");
 | 
			
		||||
      final response =
 | 
			
		||||
          await _helper.getPostApiResponse('$baseUrl$_endpointPath', entity);
 | 
			
		||||
      return ApiResponse.success(response as Map<String, dynamic>);
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      return ApiResponse.error('Failed to create entity: $e');
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future<ApiResponse<Map<String, dynamic>>> updateEntity(
 | 
			
		||||
      int entityId, Map<String, dynamic> entity) async {
 | 
			
		||||
    try {
 | 
			
		||||
      final response = await _helper.getPutApiResponse(
 | 
			
		||||
          '$baseUrl$_endpointPath/$entityId', entity);
 | 
			
		||||
      return ApiResponse.success(response as Map<String, dynamic>);
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      return ApiResponse.error('Failed to update entity: $e');
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future<ApiResponse<void>> deleteEntity(int entityId) async {
 | 
			
		||||
    try {
 | 
			
		||||
      await _helper.getDeleteApiResponse('$baseUrl$_endpointPath/$entityId');
 | 
			
		||||
      return ApiResponse.success(null);
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      return ApiResponse.error('Failed to delete entity: $e');
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,305 @@
 | 
			
		||||
import 'package:base_project/data/response/status.dart';
 | 
			
		||||
import 'dart:typed_data';
 | 
			
		||||
import 'package:dio/dio.dart';
 | 
			
		||||
import 'package:http_parser/http_parser.dart';
 | 
			
		||||
import '../../../../utils/toast_messages/toast_message_util.dart';
 | 
			
		||||
import '../../../../BuilderField/shared/utils/entity_field_store.dart';
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import '../Testlist_Repo/Testlist_repo_screen.dart';
 | 
			
		||||
 | 
			
		||||
class TestlistViewModelScreen extends ChangeNotifier{
 | 
			
		||||
  final TestlistRepoScreen repo = TestlistRepoScreen();
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
  // State variables
 | 
			
		||||
  List<Map<String, dynamic>> _testlistList = [];
 | 
			
		||||
  List<Map<String, dynamic>> _filteredList = [];
 | 
			
		||||
  bool _isLoading = false;
 | 
			
		||||
  String _errorMessage = '';
 | 
			
		||||
  int _currentPage = 0;
 | 
			
		||||
  int _pageSize = 10;
 | 
			
		||||
  bool _hasMoreData = true;
 | 
			
		||||
  String _searchQuery = '';
 | 
			
		||||
 | 
			
		||||
  // Getters
 | 
			
		||||
  List<Map<String, dynamic>> get testlistList => _testlistList;
 | 
			
		||||
  List<Map<String, dynamic>> get filteredList => _filteredList;
 | 
			
		||||
  bool get isLoading => _isLoading;
 | 
			
		||||
  String get errorMessage => _errorMessage;
 | 
			
		||||
  bool get hasMoreData => _hasMoreData;
 | 
			
		||||
  String get searchQuery => _searchQuery;
 | 
			
		||||
 | 
			
		||||
  // Set loading state
 | 
			
		||||
  void _setLoading(bool loading) {
 | 
			
		||||
    _isLoading = loading;
 | 
			
		||||
    notifyListeners();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Set error message
 | 
			
		||||
  void _setError(String error) {
 | 
			
		||||
    _errorMessage = error;
 | 
			
		||||
    notifyListeners();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Clear error
 | 
			
		||||
  void clearError() {
 | 
			
		||||
    _errorMessage = '';
 | 
			
		||||
    notifyListeners();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Get testlist list
 | 
			
		||||
  Future<void> getEntities() async {
 | 
			
		||||
    _setLoading(true);
 | 
			
		||||
    _setError('');
 | 
			
		||||
 | 
			
		||||
    try {
 | 
			
		||||
      final response = await repo.getEntities();
 | 
			
		||||
 | 
			
		||||
      if (response.status == Status.SUCCESS) {
 | 
			
		||||
        _testlistList = response.data ?? [];
 | 
			
		||||
        _filteredList = List.from(_testlistList);
 | 
			
		||||
        _currentPage = 0;
 | 
			
		||||
        _hasMoreData = true;
 | 
			
		||||
      } else {
 | 
			
		||||
        _setError(response.message ?? 'Failed to fetch testlist list');
 | 
			
		||||
      }
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      _setError('Failed to fetch testlist list: $e');
 | 
			
		||||
    } finally {
 | 
			
		||||
      _setLoading(false);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Get testlist list with pagination
 | 
			
		||||
  Future<void> getAllWithPagination({bool refresh = false}) async {
 | 
			
		||||
    if (refresh) {
 | 
			
		||||
      _currentPage = 0;
 | 
			
		||||
      _testlistList.clear();
 | 
			
		||||
      _filteredList.clear();
 | 
			
		||||
      _hasMoreData = true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (!_hasMoreData || _isLoading) return;
 | 
			
		||||
 | 
			
		||||
    _setLoading(true);
 | 
			
		||||
    _setError('');
 | 
			
		||||
 | 
			
		||||
    try {
 | 
			
		||||
      final response = await repo.getAllWithPagination(_currentPage, _pageSize);
 | 
			
		||||
 | 
			
		||||
      if (response.status == Status.SUCCESS) {
 | 
			
		||||
        final newItems = response.data ?? [];
 | 
			
		||||
 | 
			
		||||
        if (refresh) {
 | 
			
		||||
          _testlistList = newItems;
 | 
			
		||||
        } else {
 | 
			
		||||
          _testlistList.addAll(newItems);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        _filteredList = List.from(_testlistList);
 | 
			
		||||
        _currentPage++;
 | 
			
		||||
 | 
			
		||||
        // Check if we have more data
 | 
			
		||||
        _hasMoreData = newItems.length == _pageSize;
 | 
			
		||||
      } else {
 | 
			
		||||
        _setError(response.message ?? 'Failed to fetch Testlist list');
 | 
			
		||||
      }
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      _setError('Failed to fetch testlist list: $e');
 | 
			
		||||
    } finally {
 | 
			
		||||
      _setLoading(false);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  // Create Testlist
 | 
			
		||||
  Future<bool> createEntity(Map<String, dynamic> entity) async {
 | 
			
		||||
    _setLoading(true);
 | 
			
		||||
    _setError('');
 | 
			
		||||
 | 
			
		||||
    try {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
      final response = await repo.createEntity(entity);
 | 
			
		||||
 | 
			
		||||
      if (response.status == Status.SUCCESS) {
 | 
			
		||||
// Get the response ID for image upload
 | 
			
		||||
 | 
			
		||||
        final responseId = response.data!['id'].toString();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        ToastMessageUtil.showToast(
 | 
			
		||||
          message: 'testlist created successfully',
 | 
			
		||||
          toastType: ToastType.success,
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        // Refresh the list
 | 
			
		||||
        await getEntities();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        return true;
 | 
			
		||||
      } else {
 | 
			
		||||
        _setError(response.message ?? 'Failed to create Testlist');
 | 
			
		||||
        ToastMessageUtil.showToast(
 | 
			
		||||
          message: response.message ?? 'Failed to create Testlist',
 | 
			
		||||
          toastType: ToastType.error,
 | 
			
		||||
        );
 | 
			
		||||
        return false;
 | 
			
		||||
      }
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      _setError('Failed to create testlist: $e');
 | 
			
		||||
      ToastMessageUtil.showToast(
 | 
			
		||||
        message: 'Failed to create Testlist: $e',
 | 
			
		||||
        toastType: ToastType.error,
 | 
			
		||||
      );
 | 
			
		||||
      return false;
 | 
			
		||||
    } finally {
 | 
			
		||||
      _setLoading(false);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Update testlist
 | 
			
		||||
  Future<bool> updateEntity(int id, Map<String, dynamic> entity) async {
 | 
			
		||||
    _setLoading(true);
 | 
			
		||||
    _setError('');
 | 
			
		||||
 | 
			
		||||
    try {
 | 
			
		||||
      final response = await repo.updateEntity(id, entity);
 | 
			
		||||
 | 
			
		||||
      if (response.status == Status.SUCCESS) {
 | 
			
		||||
        ToastMessageUtil.showToast(
 | 
			
		||||
          message: 'Testlist updated successfully',
 | 
			
		||||
          toastType: ToastType.success,
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        // Update the item in the list
 | 
			
		||||
        final index = _testlistList.indexWhere((item) => item['id'] == id);
 | 
			
		||||
        if (index != -1) {
 | 
			
		||||
          _testlistList[index] = response.data!;
 | 
			
		||||
          _filteredList = List.from(_testlistList);
 | 
			
		||||
          notifyListeners();
 | 
			
		||||
        }
 | 
			
		||||
        return true;
 | 
			
		||||
      } else {
 | 
			
		||||
        _setError(response.message ?? 'Failed to update Testlist');
 | 
			
		||||
        ToastMessageUtil.showToast(
 | 
			
		||||
          message: response.message ?? 'Failed to update Testlist',
 | 
			
		||||
          toastType: ToastType.error,
 | 
			
		||||
        );
 | 
			
		||||
        return false;
 | 
			
		||||
      }
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      _setError('Failed to update testlist: $e');
 | 
			
		||||
      ToastMessageUtil.showToast(
 | 
			
		||||
        message: 'Failed to update Testlist: $e',
 | 
			
		||||
        toastType: ToastType.error,
 | 
			
		||||
      );
 | 
			
		||||
      return false;
 | 
			
		||||
    } finally {
 | 
			
		||||
      _setLoading(false);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Delete testlist
 | 
			
		||||
  Future<bool> deleteEntity(int id) async {
 | 
			
		||||
    _setLoading(true);
 | 
			
		||||
    _setError('');
 | 
			
		||||
 | 
			
		||||
    try {
 | 
			
		||||
      final response = await repo.deleteEntity(id);
 | 
			
		||||
 | 
			
		||||
      if (response.status == Status.SUCCESS) {
 | 
			
		||||
        ToastMessageUtil.showToast(
 | 
			
		||||
          message: 'Testlist deleted successfully',
 | 
			
		||||
          toastType: ToastType.success,
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        // Remove the item from the list
 | 
			
		||||
        _testlistList.removeWhere((item) => item['id'] == id);
 | 
			
		||||
        _filteredList = List.from(_testlistList);
 | 
			
		||||
        notifyListeners();
 | 
			
		||||
        return true;
 | 
			
		||||
      } else {
 | 
			
		||||
        _setError(response.message ?? 'Failed to delete Testlist');
 | 
			
		||||
        ToastMessageUtil.showToast(
 | 
			
		||||
          message: response.message ?? 'Failed to delete Testlist',
 | 
			
		||||
          toastType: ToastType.error,
 | 
			
		||||
        );
 | 
			
		||||
        return false;
 | 
			
		||||
      }
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      _setError('Failed to delete testlist: $e');
 | 
			
		||||
      ToastMessageUtil.showToast(
 | 
			
		||||
        message: 'Failed to delete Testlist: $e',
 | 
			
		||||
        toastType: ToastType.error,
 | 
			
		||||
      );
 | 
			
		||||
      return false;
 | 
			
		||||
    } finally {
 | 
			
		||||
      _setLoading(false);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Search testlist
 | 
			
		||||
  void searchtestlist(String query) {
 | 
			
		||||
    _searchQuery = query;
 | 
			
		||||
 | 
			
		||||
    if (query.isEmpty) {
 | 
			
		||||
      _filteredList = List.from(_testlistList);
 | 
			
		||||
    } else {
 | 
			
		||||
      _filteredList = _testlistList.where((item) {
 | 
			
		||||
        return
 | 
			
		||||
 | 
			
		||||
             
 | 
			
		||||
(item['name']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) ||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
             
 | 
			
		||||
(item['description']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) ||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(item['active']?.toString().toLowerCase().contains(query.toLowerCase()) ??false) 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
;
 | 
			
		||||
      }).toList();
 | 
			
		||||
    }
 | 
			
		||||
    notifyListeners();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Clear search
 | 
			
		||||
  void clearSearch() {
 | 
			
		||||
    _searchQuery = '';
 | 
			
		||||
    _filteredList = List.from(_testlistList);
 | 
			
		||||
    notifyListeners();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Refresh data
 | 
			
		||||
  Future<void> refreshData() async {
 | 
			
		||||
    await getAllWithPagination(refresh: true);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -1,3 +1,9 @@
 | 
			
		||||
import '../../Entity/basic1/Form_d/Form_dView/Form_d_entity_list_screen.dart';
 | 
			
		||||
import '../../Entity/basic1/Form_d/Form_d_viewModel/Form_d_view_model_screen.dart';
 | 
			
		||||
 | 
			
		||||
import '../../Entity/basic1/Testlist/TestlistView/Testlist_entity_list_screen.dart';
 | 
			
		||||
import '../../Entity/basic1/Testlist/Testlist_viewModel/Testlist_view_model_screen.dart';
 | 
			
		||||
 | 
			
		||||
import 'package:base_project/core/constants/ui_constants.dart';
 | 
			
		||||
import 'package:base_project/core/theme/color_scheme.dart';
 | 
			
		||||
import 'package:base_project/routes/route_names.dart';
 | 
			
		||||
@ -88,6 +94,40 @@ class _HomeViewState extends State<HomeView> with TickerProviderStateMixin {
 | 
			
		||||
// NEW ITEMS
 | 
			
		||||
 | 
			
		||||
// NEW MENU
 | 
			
		||||
 DrawerItem(
 | 
			
		||||
      icon: Icons.data_object,
 | 
			
		||||
      title: 'Form_d Management',
 | 
			
		||||
      subtitle: 'Manage Form_d entities',
 | 
			
		||||
      onTap: (context) {
 | 
			
		||||
        Navigator.push(
 | 
			
		||||
          context,
 | 
			
		||||
          MaterialPageRoute(
 | 
			
		||||
            builder: (context) => ChangeNotifierProvider(
 | 
			
		||||
              create: (context) => Form_dViewModelScreen(),
 | 
			
		||||
              child: Form_d_entity_list_screen(),
 | 
			
		||||
            ),
 | 
			
		||||
          ),
 | 
			
		||||
        );
 | 
			
		||||
      },
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
DrawerItem(
 | 
			
		||||
icon: Icons.data_object,
 | 
			
		||||
title: 'Testlist Management',
 | 
			
		||||
subtitle: 'Manage Testlist entities',
 | 
			
		||||
onTap: (context) {
 | 
			
		||||
Navigator.push(
 | 
			
		||||
context,
 | 
			
		||||
MaterialPageRoute(
 | 
			
		||||
builder: (context) => ChangeNotifierProvider(
 | 
			
		||||
create: (context) => TestlistViewModelScreen(),
 | 
			
		||||
child: Testlist_entity_list_screen(),
 | 
			
		||||
),
 | 
			
		||||
),
 | 
			
		||||
);
 | 
			
		||||
},
 | 
			
		||||
),
 | 
			
		||||
 | 
			
		||||
];
 | 
			
		||||
 | 
			
		||||
@override
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								test028cal-testfldb-d/authsec_mysql/mysql/wf_table/wf_table.sql
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										4
									
								
								test028cal-testfldb-d/authsec_mysql/mysql/wf_table/wf_table.sql
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,4 @@
 | 
			
		||||
CREATE TABLE testfldb.Testlist(id BIGINT NOT NULL AUTO_INCREMENT, active VARCHAR(400), description VARCHAR(400), name VARCHAR(400),  PRIMARY KEY (id));
 | 
			
		||||
 | 
			
		||||
CREATE TABLE testfldb.Form_d(id BIGINT NOT NULL AUTO_INCREMENT, namek VARCHAR(400), calculated_add VARCHAR(400), number_field_a int, number_field_b int,  PRIMARY KEY (id));
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user