diff --git a/src/controllers/ImportDataController.ts b/src/controllers/ImportDataController.ts index ea94e3d6..99e931ea 100644 --- a/src/controllers/ImportDataController.ts +++ b/src/controllers/ImportDataController.ts @@ -6366,447 +6366,447 @@ export class ImportDataController extends Controller { return new HttpSuccess(); } -// /** -// * @summary Update importUpdate for provinces matching JSON -// */ -// @Post("updateProvinceImportOld") -// async updateProvinceImportOld() { -// const fs = require("fs"); -// const path = require("path"); -// const filePath = path.join(__dirname, "../data/provinces.json"); -// const provinceJson = JSON.parse(fs.readFileSync(filePath, "utf8")); -// let num = 0; -// const Fuse = require("fuse.js"); -// const fuse = new Fuse( -// provinceJson.map((x: any) => x.name_th), -// { -// includeScore: true, -// threshold: 0.2, // ยิ่งต่ำยิ่งเข้มงวด -// }, -// ); -// const provinces = await this.provinceIdRepo.find({ where: { importUpdate: IsNull() } }); -// for (const prov of provinces) { -// console.log("11"); -// const result = fuse.search(prov.name); -// const repoProvince = AppDataSource.getRepository(ProvinceMaster); -// console.log("1221"); -// if (result.length > 0) { -// let foundItem = result[0]; -// if (result.length > 1) { -// foundItem = result.filter((x: any) => x.score == 0)[0]; -// if (foundItem == null) { -// continue; -// } -// } -// const province = await repoProvince.findOne({ -// where: { name_th: foundItem.item }, -// }); -// if (province == null) { -// console.log(foundItem.item); -// num += 1; -// continue; -// } -// console.log("1441"); -// prov.importUpdate = 1; -// prov.refId = province.id; -// prov.name = province.name_th; -// await this.provinceIdRepo.save(prov); -// } else { -// console.log("qqqqq"); -// console.log(prov.name); -// console.log(result); -// num += 1; -// } -// } -// console.log("not found province count:", num); -// return new HttpSuccess(); -// } + // /** + // * @summary Update importUpdate for provinces matching JSON + // */ + // @Post("updateProvinceImportOld") + // async updateProvinceImportOld() { + // const fs = require("fs"); + // const path = require("path"); + // const filePath = path.join(__dirname, "../data/provinces.json"); + // const provinceJson = JSON.parse(fs.readFileSync(filePath, "utf8")); + // let num = 0; + // const Fuse = require("fuse.js"); + // const fuse = new Fuse( + // provinceJson.map((x: any) => x.name_th), + // { + // includeScore: true, + // threshold: 0.2, // ยิ่งต่ำยิ่งเข้มงวด + // }, + // ); + // const provinces = await this.provinceIdRepo.find({ where: { importUpdate: IsNull() } }); + // for (const prov of provinces) { + // console.log("11"); + // const result = fuse.search(prov.name); + // const repoProvince = AppDataSource.getRepository(ProvinceMaster); + // console.log("1221"); + // if (result.length > 0) { + // let foundItem = result[0]; + // if (result.length > 1) { + // foundItem = result.filter((x: any) => x.score == 0)[0]; + // if (foundItem == null) { + // continue; + // } + // } + // const province = await repoProvince.findOne({ + // where: { name_th: foundItem.item }, + // }); + // if (province == null) { + // console.log(foundItem.item); + // num += 1; + // continue; + // } + // console.log("1441"); + // prov.importUpdate = 1; + // prov.refId = province.id; + // prov.name = province.name_th; + // await this.provinceIdRepo.save(prov); + // } else { + // console.log("qqqqq"); + // console.log(prov.name); + // console.log(result); + // num += 1; + // } + // } + // console.log("not found province count:", num); + // return new HttpSuccess(); + // } -// /** -// * @summary Update importUpdate for districts matching JSON -// */ -// @Post("updateDistrictImportOld") -// async updateDistrictImportOld() { -// const fs = require("fs"); -// const path = require("path"); -// const filePath = path.join(__dirname, "../data/tambons.json"); -// const districtJson = JSON.parse(fs.readFileSync(filePath, "utf8")); -// let num = 0; -// const Fuse = require("fuse.js"); -// const districts = await this.districtIdRepo.find({ -// relations: ["province"], -// where: { province: { refId: Not(IsNull()) }, importUpdate: IsNull() }, -// }); -// for (const prov of districts) { -// const fuse = new Fuse( -// districtJson -// .filter((x: any) => x.province_id === prov.province?.refId) -// .map((x: any) => x.name_th), -// { -// includeScore: true, -// threshold: 0.2, // ยิ่งต่ำยิ่งเข้มงวด -// }, -// ); -// const result = fuse.search(prov.name); -// const repoDistrict = AppDataSource.getRepository(DistrictMaster); -// if (result.length > 0) { -// let foundItem = result[0]; -// if (result.length > 1) { -// foundItem = result.filter((x: any) => x.score == 0)[0]; -// if (foundItem == null) { -// continue; -// } -// } -// const district = await repoDistrict.findOne({ -// where: { name_th: foundItem.item, province_id: prov.province?.refId }, -// }); -// if (district == null) { -// num += 1; -// continue; -// } -// prov.importUpdate = 1; -// prov.refId = district.id; -// prov.name = district.name_th; -// await this.districtIdRepo.save(prov); -// } else { -// num += 1; -// } -// } -// console.log("not found district count:", num); -// return new HttpSuccess(); -// } + // /** + // * @summary Update importUpdate for districts matching JSON + // */ + // @Post("updateDistrictImportOld") + // async updateDistrictImportOld() { + // const fs = require("fs"); + // const path = require("path"); + // const filePath = path.join(__dirname, "../data/tambons.json"); + // const districtJson = JSON.parse(fs.readFileSync(filePath, "utf8")); + // let num = 0; + // const Fuse = require("fuse.js"); + // const districts = await this.districtIdRepo.find({ + // relations: ["province"], + // where: { province: { refId: Not(IsNull()) }, importUpdate: IsNull() }, + // }); + // for (const prov of districts) { + // const fuse = new Fuse( + // districtJson + // .filter((x: any) => x.province_id === prov.province?.refId) + // .map((x: any) => x.name_th), + // { + // includeScore: true, + // threshold: 0.2, // ยิ่งต่ำยิ่งเข้มงวด + // }, + // ); + // const result = fuse.search(prov.name); + // const repoDistrict = AppDataSource.getRepository(DistrictMaster); + // if (result.length > 0) { + // let foundItem = result[0]; + // if (result.length > 1) { + // foundItem = result.filter((x: any) => x.score == 0)[0]; + // if (foundItem == null) { + // continue; + // } + // } + // const district = await repoDistrict.findOne({ + // where: { name_th: foundItem.item, province_id: prov.province?.refId }, + // }); + // if (district == null) { + // num += 1; + // continue; + // } + // prov.importUpdate = 1; + // prov.refId = district.id; + // prov.name = district.name_th; + // await this.districtIdRepo.save(prov); + // } else { + // num += 1; + // } + // } + // console.log("not found district count:", num); + // return new HttpSuccess(); + // } -// /** -// * @summary Update importUpdate for subdistricts matching JSON -// */ -// @Post("updateSubDistrictImportOld") -// async updateSubDistrictImportOld() { -// const fs = require("fs"); -// const path = require("path"); -// const filePath = path.join(__dirname, "../data/amphures.json"); -// const subDistrictJson = JSON.parse(fs.readFileSync(filePath, "utf8")); -// let num = 0; -// const Fuse = require("fuse.js"); -// const subDistricts = await this.subDistrictIdRepo.find({ -// relations: ["district"], -// where: { district: { refId: Not(IsNull()) }, importUpdate: IsNull() }, -// }); -// for (const prov of subDistricts) { -// const fuse = new Fuse( -// subDistrictJson -// .filter((x: any) => x.district_id === prov.district?.refId) -// .map((x: any) => x.name_th), -// { -// includeScore: true, -// threshold: 0.2, // ยิ่งต่ำยิ่งเข้มงวด -// }, -// ); -// const result = fuse.search(prov.name); -// const repoSubDistrict = AppDataSource.getRepository(SubDistrictMaster); -// if (result.length > 0) { -// let foundItem = result[0]; -// if (result.length > 1) { -// foundItem = result.filter((x: any) => x.score == 0)[0]; -// if (foundItem == null) { -// continue; -// } -// } -// const subdistrict = await repoSubDistrict.findOne({ -// where: { name_th: foundItem.item, district_id: prov.district?.refId }, -// }); -// if (subdistrict == null) { -// num += 1; -// continue; -// } -// prov.importUpdate = 1; -// prov.refId = subdistrict.id; -// prov.name = subdistrict.name_th; -// prov.zipCode = subdistrict.zip_code.toString(); -// await this.subDistrictIdRepo.save(prov); -// } else { -// num += 1; -// } -// } -// console.log("not found subdistrict count:", num); -// return new HttpSuccess(); -// } + // /** + // * @summary Update importUpdate for subdistricts matching JSON + // */ + // @Post("updateSubDistrictImportOld") + // async updateSubDistrictImportOld() { + // const fs = require("fs"); + // const path = require("path"); + // const filePath = path.join(__dirname, "../data/amphures.json"); + // const subDistrictJson = JSON.parse(fs.readFileSync(filePath, "utf8")); + // let num = 0; + // const Fuse = require("fuse.js"); + // const subDistricts = await this.subDistrictIdRepo.find({ + // relations: ["district"], + // where: { district: { refId: Not(IsNull()) }, importUpdate: IsNull() }, + // }); + // for (const prov of subDistricts) { + // const fuse = new Fuse( + // subDistrictJson + // .filter((x: any) => x.district_id === prov.district?.refId) + // .map((x: any) => x.name_th), + // { + // includeScore: true, + // threshold: 0.2, // ยิ่งต่ำยิ่งเข้มงวด + // }, + // ); + // const result = fuse.search(prov.name); + // const repoSubDistrict = AppDataSource.getRepository(SubDistrictMaster); + // if (result.length > 0) { + // let foundItem = result[0]; + // if (result.length > 1) { + // foundItem = result.filter((x: any) => x.score == 0)[0]; + // if (foundItem == null) { + // continue; + // } + // } + // const subdistrict = await repoSubDistrict.findOne({ + // where: { name_th: foundItem.item, district_id: prov.district?.refId }, + // }); + // if (subdistrict == null) { + // num += 1; + // continue; + // } + // prov.importUpdate = 1; + // prov.refId = subdistrict.id; + // prov.name = subdistrict.name_th; + // prov.zipCode = subdistrict.zip_code.toString(); + // await this.subDistrictIdRepo.save(prov); + // } else { + // num += 1; + // } + // } + // console.log("not found subdistrict count:", num); + // return new HttpSuccess(); + // } -// /** -// * @summary Update importUpdate for provinces matching JSON -// */ -// @Post("updateProvinceImportFlag") -// async updateProvinceImportFlag() { -// const fs = require("fs"); -// const path = require("path"); -// const filePath = path.join(__dirname, "../data/provinces.json"); -// const provinceJson = JSON.parse(fs.readFileSync(filePath, "utf8")); -// let num = 0; -// for (const province of provinceJson) { -// const dbProvince = await this.provinceIdRepo.findOne({ -// where: { -// name: province.name_th, -// importUpdate: IsNull(), -// }, -// }); -// if (dbProvince) { -// dbProvince.importUpdate = 1; -// dbProvince.refId = province.id; -// await this.provinceIdRepo.save(dbProvince); -// } else { -// num += 1; -// } -// } -// console.log("not found province count:", num); -// return new HttpSuccess(); -// } + // /** + // * @summary Update importUpdate for provinces matching JSON + // */ + // @Post("updateProvinceImportFlag") + // async updateProvinceImportFlag() { + // const fs = require("fs"); + // const path = require("path"); + // const filePath = path.join(__dirname, "../data/provinces.json"); + // const provinceJson = JSON.parse(fs.readFileSync(filePath, "utf8")); + // let num = 0; + // for (const province of provinceJson) { + // const dbProvince = await this.provinceIdRepo.findOne({ + // where: { + // name: province.name_th, + // importUpdate: IsNull(), + // }, + // }); + // if (dbProvince) { + // dbProvince.importUpdate = 1; + // dbProvince.refId = province.id; + // await this.provinceIdRepo.save(dbProvince); + // } else { + // num += 1; + // } + // } + // console.log("not found province count:", num); + // return new HttpSuccess(); + // } -// /** -// * @summary Update importUpdate for districts matching JSON -// */ -// @Post("updateDistrictImportFlag") -// async updateDistrictImportFlag() { -// const meta = { -// createdUserId: "", -// createdFullName: "system", -// lastUpdateUserId: "", -// lastUpdateFullName: "system", -// createdAt: new Date(), -// lastUpdatedAt: new Date(), -// }; -// const fs = require("fs"); -// const path = require("path"); -// const filePath = path.join(__dirname, "../data/tambons.json"); -// const tambonJson = JSON.parse(fs.readFileSync(filePath, "utf8")); -// let num = 0; -// for (const tambon of tambonJson) { -// const dbDistrict = await this.districtIdRepo.findOne({ -// where: { -// name: tambon.name_th, -// province: { refId: Not(tambon.province_id) }, -// importUpdate: IsNull(), -// }, -// }); -// if (dbDistrict) { -// const dbProvince = await this.provinceIdRepo.findOne({ -// where: { -// refId: tambon.province_id, -// importUpdate: Not(IsNull()), -// }, -// }); -// if (dbProvince) { -// const checkOld = await this.districtIdRepo.findOne({ -// where: { -// name: tambon.name_th, -// provinceId: dbProvince.id, -// }, -// }); -// if (!checkOld) { -// let districtId = new District(); -// Object.assign(districtId, { -// ...meta, -// name: tambon.name_th, -// provinceId: dbProvince.id, -// importUpdate: 2, -// refId: tambon.id, -// }); -// await this.districtIdRepo.save(districtId); -// num += 1; -// } -// } -// } -// } -// console.log("not found province count:", num); -// return new HttpSuccess(); -// } + // /** + // * @summary Update importUpdate for districts matching JSON + // */ + // @Post("updateDistrictImportFlag") + // async updateDistrictImportFlag() { + // const meta = { + // createdUserId: "", + // createdFullName: "system", + // lastUpdateUserId: "", + // lastUpdateFullName: "system", + // createdAt: new Date(), + // lastUpdatedAt: new Date(), + // }; + // const fs = require("fs"); + // const path = require("path"); + // const filePath = path.join(__dirname, "../data/tambons.json"); + // const tambonJson = JSON.parse(fs.readFileSync(filePath, "utf8")); + // let num = 0; + // for (const tambon of tambonJson) { + // const dbDistrict = await this.districtIdRepo.findOne({ + // where: { + // name: tambon.name_th, + // province: { refId: Not(tambon.province_id) }, + // importUpdate: IsNull(), + // }, + // }); + // if (dbDistrict) { + // const dbProvince = await this.provinceIdRepo.findOne({ + // where: { + // refId: tambon.province_id, + // importUpdate: Not(IsNull()), + // }, + // }); + // if (dbProvince) { + // const checkOld = await this.districtIdRepo.findOne({ + // where: { + // name: tambon.name_th, + // provinceId: dbProvince.id, + // }, + // }); + // if (!checkOld) { + // let districtId = new District(); + // Object.assign(districtId, { + // ...meta, + // name: tambon.name_th, + // provinceId: dbProvince.id, + // importUpdate: 2, + // refId: tambon.id, + // }); + // await this.districtIdRepo.save(districtId); + // num += 1; + // } + // } + // } + // } + // console.log("not found province count:", num); + // return new HttpSuccess(); + // } -// /** -// * @summary Update importUpdate for subdistricts matching JSON -// */ -// @Post("updateSubDistrictImportFlag") -// async updateSubDistrictImportFlag() { -// const meta = { -// createdUserId: "", -// createdFullName: "system", -// lastUpdateUserId: "", -// lastUpdateFullName: "system", -// createdAt: new Date(), -// lastUpdatedAt: new Date(), -// }; -// const fs = require("fs"); -// const path = require("path"); -// const filePath = path.join(__dirname, "../data/amphures.json"); -// const amphureJson = JSON.parse(fs.readFileSync(filePath, "utf8")); -// let num = 0; -// for (const amphure of amphureJson) { -// const dbSubDistrict = await this.subDistrictIdRepo.findOne({ -// where: { -// name: amphure.name_th, -// district: { refId: Not(amphure.district_id) }, -// importUpdate: IsNull(), -// }, -// }); -// if (dbSubDistrict) { -// const dbDistrict = await this.districtIdRepo.findOne({ -// where: { -// refId: amphure.district_id, -// importUpdate: Not(IsNull()), -// }, -// }); -// if (dbDistrict) { -// const checkOld = await this.subDistrictIdRepo.findOne({ -// where: { -// name: amphure.name_th, -// districtId: dbDistrict.id, -// }, -// }); -// if (!checkOld) { -// let districtId = new District(); -// Object.assign(districtId, { -// ...meta, -// name: amphure.name_th, -// districtId: dbDistrict.id, -// zipCode: amphure.zip_code, -// importUpdate: 2, -// refId: amphure.id, -// }); -// await this.subDistrictIdRepo.save(districtId); -// num += 1; -// } -// } -// } -// } -// console.log("not found province count:", num); -// return new HttpSuccess(); -// } -// /** -// * @summary ตรวจสอบ district ใน profile ว่าตรงกับ tambons.json หรือไม่ -// */ -// @Post("checkProfileDistrictMismatch") -// async checkProfileDistrictMismatch() { -// const mismatches = []; -// const profiles = await this.profileRepo.find({ -// relations: ["registrationProvince", "registrationDistrict", "registrationSubDistrict"], -// where: { -// registrationProvince: Not(IsNull()), -// }, -// }); -// for (const profile of profiles) { -// console.log("profile count:", profiles.indexOf(profile) + 1); -// console.log("mismatches count:", mismatches.length); -// // if (mismatches.length >= 10) { -// // break; -// // } -// const repoProvince = AppDataSource.getRepository(ProvinceMaster); -// const repoDistrict = AppDataSource.getRepository(DistrictMaster); -// const repoSubDistrict = AppDataSource.getRepository(SubDistrictMaster); + // /** + // * @summary Update importUpdate for subdistricts matching JSON + // */ + // @Post("updateSubDistrictImportFlag") + // async updateSubDistrictImportFlag() { + // const meta = { + // createdUserId: "", + // createdFullName: "system", + // lastUpdateUserId: "", + // lastUpdateFullName: "system", + // createdAt: new Date(), + // lastUpdatedAt: new Date(), + // }; + // const fs = require("fs"); + // const path = require("path"); + // const filePath = path.join(__dirname, "../data/amphures.json"); + // const amphureJson = JSON.parse(fs.readFileSync(filePath, "utf8")); + // let num = 0; + // for (const amphure of amphureJson) { + // const dbSubDistrict = await this.subDistrictIdRepo.findOne({ + // where: { + // name: amphure.name_th, + // district: { refId: Not(amphure.district_id) }, + // importUpdate: IsNull(), + // }, + // }); + // if (dbSubDistrict) { + // const dbDistrict = await this.districtIdRepo.findOne({ + // where: { + // refId: amphure.district_id, + // importUpdate: Not(IsNull()), + // }, + // }); + // if (dbDistrict) { + // const checkOld = await this.subDistrictIdRepo.findOne({ + // where: { + // name: amphure.name_th, + // districtId: dbDistrict.id, + // }, + // }); + // if (!checkOld) { + // let districtId = new District(); + // Object.assign(districtId, { + // ...meta, + // name: amphure.name_th, + // districtId: dbDistrict.id, + // zipCode: amphure.zip_code, + // importUpdate: 2, + // refId: amphure.id, + // }); + // await this.subDistrictIdRepo.save(districtId); + // num += 1; + // } + // } + // } + // } + // console.log("not found province count:", num); + // return new HttpSuccess(); + // } + // /** + // * @summary ตรวจสอบ district ใน profile ว่าตรงกับ tambons.json หรือไม่ + // */ + // @Post("checkProfileDistrictMismatch") + // async checkProfileDistrictMismatch() { + // const mismatches = []; + // const profiles = await this.profileRepo.find({ + // relations: ["registrationProvince", "registrationDistrict", "registrationSubDistrict"], + // where: { + // registrationProvince: Not(IsNull()), + // }, + // }); + // for (const profile of profiles) { + // console.log("profile count:", profiles.indexOf(profile) + 1); + // console.log("mismatches count:", mismatches.length); + // // if (mismatches.length >= 10) { + // // break; + // // } + // const repoProvince = AppDataSource.getRepository(ProvinceMaster); + // const repoDistrict = AppDataSource.getRepository(DistrictMaster); + // const repoSubDistrict = AppDataSource.getRepository(SubDistrictMaster); -// const registrationProvince = profile.registrationProvince?.name; -// const registrationDistrict = profile.registrationDistrict?.name; -// const registrationSubDistrict = profile.registrationSubDistrict?.name; + // const registrationProvince = profile.registrationProvince?.name; + // const registrationDistrict = profile.registrationDistrict?.name; + // const registrationSubDistrict = profile.registrationSubDistrict?.name; -// const province = await repoProvince.findOne({ -// where: { name_th: registrationProvince }, -// }); -// if (province == null) { -// mismatches.push({ profileId: profile.id }); -// continue; -// } -// const district = await repoDistrict.findOne({ -// where: { name_th: registrationDistrict, province_id: province.id }, -// }); -// if (district == null) { -// mismatches.push({ profileId: profile.id }); -// continue; -// } -// const subdistrict = await repoSubDistrict.findOne({ -// where: { name_th: registrationSubDistrict, district_id: district.id }, -// }); -// if (subdistrict == null) { -// mismatches.push({ profileId: profile.id }); -// continue; -// } -// } -// return mismatches.map((x) => x.profileId); -// } + // const province = await repoProvince.findOne({ + // where: { name_th: registrationProvince }, + // }); + // if (province == null) { + // mismatches.push({ profileId: profile.id }); + // continue; + // } + // const district = await repoDistrict.findOne({ + // where: { name_th: registrationDistrict, province_id: province.id }, + // }); + // if (district == null) { + // mismatches.push({ profileId: profile.id }); + // continue; + // } + // const subdistrict = await repoSubDistrict.findOne({ + // where: { name_th: registrationSubDistrict, district_id: district.id }, + // }); + // if (subdistrict == null) { + // mismatches.push({ profileId: profile.id }); + // continue; + // } + // } + // return mismatches.map((x) => x.profileId); + // } -// /** -// * @summary Import provinces.json into ProvinceMaster table -// */ -// @Post("importProvinceMaster") -// async importProvinceMaster() { -// const fs = require("fs"); -// const path = require("path"); -// const filePath = path.join(__dirname, "../data/provinces.json"); -// const provinceJson = JSON.parse(fs.readFileSync(filePath, "utf8")); -// const repo = AppDataSource.getRepository(ProvinceMaster); -// let imported = []; -// for (const prov of provinceJson) { -// const newProv = repo.create({ -// id: prov.id, -// name_th: prov.name_th, -// name_en: prov.name_en, -// geography_id: prov.geography_id, -// created_at: prov.created_at, -// updated_at: prov.updated_at, -// }); -// await repo.save(newProv); -// imported.push(newProv); -// } -// return imported; -// } + // /** + // * @summary Import provinces.json into ProvinceMaster table + // */ + // @Post("importProvinceMaster") + // async importProvinceMaster() { + // const fs = require("fs"); + // const path = require("path"); + // const filePath = path.join(__dirname, "../data/provinces.json"); + // const provinceJson = JSON.parse(fs.readFileSync(filePath, "utf8")); + // const repo = AppDataSource.getRepository(ProvinceMaster); + // let imported = []; + // for (const prov of provinceJson) { + // const newProv = repo.create({ + // id: prov.id, + // name_th: prov.name_th, + // name_en: prov.name_en, + // geography_id: prov.geography_id, + // created_at: prov.created_at, + // updated_at: prov.updated_at, + // }); + // await repo.save(newProv); + // imported.push(newProv); + // } + // return imported; + // } -// /** -// * @summary Import tambons.json into DistrictMaster table -// */ -// @Post("importDistrictMaster") -// async importDistrictMaster() { -// const fs = require("fs"); -// const path = require("path"); -// const filePath = path.join(__dirname, "../data/tambons.json"); -// const tambonJson = JSON.parse(fs.readFileSync(filePath, "utf8")); -// const repo = AppDataSource.getRepository(DistrictMaster); -// let imported = []; -// for (const tambon of tambonJson) { -// const newSub = repo.create({ -// id: tambon.id, -// name_th: tambon.name_th, -// name_en: tambon.name_en, -// province_id: tambon.province_id, -// created_at: tambon.created_at, -// updated_at: tambon.updated_at, -// }); -// await repo.save(newSub); -// imported.push(newSub); -// } -// return imported; -// } + // /** + // * @summary Import tambons.json into DistrictMaster table + // */ + // @Post("importDistrictMaster") + // async importDistrictMaster() { + // const fs = require("fs"); + // const path = require("path"); + // const filePath = path.join(__dirname, "../data/tambons.json"); + // const tambonJson = JSON.parse(fs.readFileSync(filePath, "utf8")); + // const repo = AppDataSource.getRepository(DistrictMaster); + // let imported = []; + // for (const tambon of tambonJson) { + // const newSub = repo.create({ + // id: tambon.id, + // name_th: tambon.name_th, + // name_en: tambon.name_en, + // province_id: tambon.province_id, + // created_at: tambon.created_at, + // updated_at: tambon.updated_at, + // }); + // await repo.save(newSub); + // imported.push(newSub); + // } + // return imported; + // } -// /** -// * @summary Import amphures.json into SubDistrictMaster table -// */ -// @Post("importSubDistrictMaster") -// async importSubDistrictMaster() { -// const fs = require("fs"); -// const path = require("path"); -// const filePath = path.join(__dirname, "../data/amphures.json"); -// const amphureJson = JSON.parse(fs.readFileSync(filePath, "utf8")); -// const repo = AppDataSource.getRepository(SubDistrictMaster); -// // Prepare all entities first -// const entities = amphureJson.map((amphure: any) => -// repo.create({ -// id: amphure.id, -// zip_code: amphure.zip_code, -// name_th: amphure.name_th, -// name_en: amphure.name_en, -// district_id: amphure.district_id, -// lat: amphure.lat, -// long: amphure.long, -// created_at: amphure.created_at, -// updated_at: amphure.updated_at, -// }), -// ); -// // Bulk insert for performance -// await repo.save(entities); -// return entities; -// } -// } + // /** + // * @summary Import amphures.json into SubDistrictMaster table + // */ + // @Post("importSubDistrictMaster") + // async importSubDistrictMaster() { + // const fs = require("fs"); + // const path = require("path"); + // const filePath = path.join(__dirname, "../data/amphures.json"); + // const amphureJson = JSON.parse(fs.readFileSync(filePath, "utf8")); + // const repo = AppDataSource.getRepository(SubDistrictMaster); + // // Prepare all entities first + // const entities = amphureJson.map((amphure: any) => + // repo.create({ + // id: amphure.id, + // zip_code: amphure.zip_code, + // name_th: amphure.name_th, + // name_en: amphure.name_en, + // district_id: amphure.district_id, + // lat: amphure.lat, + // long: amphure.long, + // created_at: amphure.created_at, + // updated_at: amphure.updated_at, + // }), + // ); + // // Bulk insert for performance + // await repo.save(entities); + // return entities; + // } +}