first_commit

main
MohammadHoseinPaymard 2 weeks ago
commit bd56e15f3c
  1. 2
      .gitignore
  2. 104
      index.js
  3. 12
      package.json
  4. 422
      result.js
  5. 379
      schema.js
  6. 379
      schema.json
  7. 379
      schema.txt

2
.gitignore vendored

@ -0,0 +1,2 @@
.codegpt

@ -0,0 +1,104 @@
const fs = require('fs');
const modelName = "user"
fs.writeFileSync("./result.js","");
// خواندن فایل متنی
fs.readFile('schema.txt', 'utf8', (err, data) => {
if (err) {
console.error('Error reading file:', err);
return;
}
// پردازش و تبدیل متن به آبجکت
const parsedObject = parseTextToObject(data);
console.log(parsedObject);
});
const sleep = (ms)=>{
return new Promise(resolve=>{
setTimeout(resolve,ms);
})
}
// تابع برای پردازش و تبدیل متن
function parseTextToObject(data) {
const cleanedData = data
.replace(/\/\/.*$/gm, '') // حذف کامنتها
.replace(/(this\.DataTypes\.[A-Z]+)((\([0-9]{1,4}\))?)/g, '"$1$2"'); // سادهسازی نام DataTypes
try {
// return fs.(`(${cleanedData})`);
fs.writeFileSync("./schema.js",`module.exports = { schemaObject: ${cleanedData} }`,{encoding:"utf-8"})
console.log("done")
getObject();
} catch (error) {
console.error('Error parsing text to object:', error);
return null;
}
}
async function getObject(){
console.log('in getobjects and wait 3 seconds')
await sleep(3000);
const {schemaObject} = require('./schema');
console.log("schemaObject",schemaObject);
for(let keys in schemaObject){
let dynamicContent= "";
let dynamicContent2=""
let takeProperties = {}
let theType="string";
for(let property in schemaObject[keys]){
switch(property){
case "type":
if(schemaObject[keys][property]?.includes("string".toUpperCase())){
takeProperties[property] = schemaObject[keys][property].replace(/\([0-9]{1,4}\)/g,"").replace("this.DataTypes","DataType").replace(/\"/g,"");
theType="string";
console.log(schemaObject[keys][property].replace(/\([0-9]{1-4}\)/g,"").replace(/\([0-9]{1-4}\)/g,"").replace("this.DataTypes","DataType"))
}else if(schemaObject[keys][property]?.includes("date".toUpperCase())){
takeProperties[property] = schemaObject[keys][property].replace("this.DataTypes","DataType");
theType="Date";
}else if(schemaObject[keys][property]?.includes("int".toUpperCase())){
takeProperties[property] = schemaObject[keys][property].replace("this.DataTypes","DataType");
theType="number";
}else if(schemaObject[keys][property]?.includes("char".toUpperCase())){
takeProperties[property] = schemaObject[keys][property].replace("this.DataTypes","DataType");
theType="string";
}else if(schemaObject[keys][property]?.includes("text".toUpperCase())){
takeProperties[property] = schemaObject[keys][property].replace("this.DataTypes","DataType");
theType="string";
}else if(schemaObject[keys][property]?.includes("bool".toUpperCase())){
takeProperties[property] = schemaObject[keys][property].replace("this.DataTypes","DataType");
theType="boolean";
}else{
console.log('oh what was it !!!!');
console.log(property,schemaObject[keys][property]);
console.log("--------------------------------------------")
takeProperties[property] = schemaObject[keys][property].replace("this.DataTypes","DataType");
theType="string";
}
break;
case "regex":
const regexContent = schemaObject[keys][property];
takeProperties[property] = schemaObject[keys][property];
takeProperties['validate'] = `{is:/${regexContent}}/}`
break;
default:
takeProperties[property] = schemaObject[keys][property];
break;
}
}
for(let i in takeProperties){
dynamicContent2+=`\n\t${i}:${JSON.stringify(takeProperties[i])},`
}
dynamicContent2=dynamicContent2.replace(/\"(DataType\.[a-zA-Z]{1,10}(\([0-9]{1,5}\))?)\"/g,"$1").replace(/\"(\{is\:\/.{1,300}\})\"/gi,"$1")
dynamicContent+=`@Column({${dynamicContent2}
})
${keys}:${theType};\n\n`
fs.appendFileSync("./result.js",dynamicContent);
console.log('append')
}
console.log("finish")
}

@ -0,0 +1,12 @@
{
"name": "convert-schema-to-nestjs-model",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"description": ""
}

@ -0,0 +1,422 @@
@Column({
type:DataType.STRING,
allowNull:true,
desc:"نام کاربری",
category:"اطلاعات هویتی",
regex:"[^a-zA-Z0-9@_./-]+",
validate:{is:/[^a-zA-Z0-9@_./-]+}/},
})
username:string;
@Column({
type:DataType.TEXT,
allowNull:true,
desc:"کلمهی عبور",
})
password:string;
@Column({
type:DataType.STRING,
allowNull:true,
desc:"نام",
category:"اطلاعات هویتی",
regex:"[^ آابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهیئ]+",
validate:{is:/[^ آابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهیئ]+}/},
readOnly:true,
})
firstName:string;
@Column({
type:DataType.STRING,
allowNull:true,
desc:"نام خانوادگی",
category:"اطلاعات هویتی",
regex:"[^ آابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهیئ]+",
validate:{is:/[^ آابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهیئ]+}/},
readOnly:true,
})
lastName:string;
@Column({
type:DataType.STRING,
allowNull:true,
desc:"نام نمایشی",
category:"اطلاعات هویتی",
regex:"[^ آابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهیئ]+",
validate:{is:/[^ آابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهیئ]+}/},
})
displayName:string;
@Column({
type:DataType.STRING,
allowNull:false,
desc:"کد ملی",
category:"اطلاعات هویتی",
inputType:"number",
maxLength:16,
})
nationalId:string;
@Column({
type:DataType.DATE,
allowNull:false,
desc:"تاریخ تولد",
category:"اطلاعات هویتی",
max:"now()",
})
birthDate:Date;
@Column({
type:DataType.SMALLINT,
allowNull:true,
desc:"جنسیت",
category:"اطلاعات هویتی",
options:{"0":"مرد","1":"زن","2":"دوجنس و نامشخص"},
})
gender:number;
@Column({
type:DataType.STRING,
allowNull:true,
desc:"نام پدر",
category:"اطلاعات هویتی",
regex:"[^ آابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهیئ]+",
validate:{is:/[^ آابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهیئ]+}/},
readOnly:true,
})
fatherName:string;
@Column({
type:DataType.SMALLINT,
allowNull:true,
defaultValue:1,
desc:"وضعیت",
options:{"0":"غیر فعال","1":"فعال","-1":"مسدود شده"},
})
status:number;
@Column({
type:DataType.CHAR(11),
allowNull:true,
validate:{"is":{}},
desc:"تلفن همراه",
required:true,
category:"اطلاعات تماس",
inputType:"number",
maxLength:11,
})
cellphone:string;
@Column({
type:DataType.CHAR(11),
allowNull:true,
desc:"تلفن ثابت",
category:"اطلاعات تماس",
inputType:"number",
maxLength:11,
})
phone:string;
@Column({
type:DataType.STRING,
allowNull:true,
desc:"ایمیل",
category:"اطلاعات تماس",
})
email:string;
@Column({
type:DataType.TEXT,
allowNull:true,
desc:"آدرس",
category:"اطلاعات تماس",
})
address:string;
@Column({
type:DataType.CHAR(10),
allowNull:true,
desc:"کد پستی",
category:"اطلاعات تماس",
inputType:"number",
maxLength:10,
})
postalCode:string;
@Column({
type:DataType.SMALLINT,
allowNull:true,
validate:{"min":0,"max":10},
desc:"میزان تحصیلات",
options:{"0":"بیسواد","1":"ابتدایی","2":"راهنمایی","3":"دیپلم","4":"کاردانی","5":"کارشناسی","6":"کارشناسی ارشد","7":"دکترای عمومی","8":"دکترای حرفهای","9":"دکترای تخصصی","10":"فوق تخصص"},
category:"تحصیلات کاربر",
})
education:number;
@Column({
type:DataType.STRING,
allowNull:true,
desc:"رشتهی تحصیلی",
category:"تحصیلات کاربر",
maxLength:32,
})
studiesField:string;
@Column({
type:DataType.SMALLINT,
allowNull:true,
maxLength:4,
desc:"سال اخذ مدرک",
category:"تحصیلات کاربر",
})
graduationYear:number;
@Column({
type:DataType.BIGINT,
allowNull:true,
desc:"معرف",
maxLength:32,
category:"اطلاعات هویتی",
})
referenceId:number;
@Column({
type:DataType.BOOLEAN,
allowNull:true,
defaultValue:false,
desc:"آیا کاربر از اتباع خارجی است؟",
category:"اطلاعات هویتی",
options:{"0":"خیر","1":"بله"},
})
isForeigner:boolean;
@Column({
type:DataType.SMALLINT,
allowNull:true,
defaultValue:0,
desc:"وضعیت استعلام ثبت احوال",
options:{"0":"استعلام نشده","1":"استعلام موفق","-1":"استعلام ناموفق"},
category:"اطلاعات هویتی",
})
civilRegValidation:number;
@Column({
type:DataType.SMALLINT,
allowNull:true,
desc:"تعداد فرزندان",
category:"اطلاعات هویتی",
maxLength:2,
})
childCount:number;
@Column({
type:DataType.SMALLINT,
allowNull:true,
desc:"وضعیت تاهل",
category:"اطلاعات هویتی",
options:{"0":"مجرد","1":"متاهل"},
})
maritalStatus:number;
@Column({
type:DataType.SMALLINT,
allowNull:true,
desc:"وضعیت نظام وظیفه",
category:"اطلاعات هویتی",
options:{"1":"معافیت پزشکی","2":"معافیت غیر پزشکی","3":"انجام شده","4":"انجام نشده"},
})
militaryServiceStatus:number;
@Column({
type:DataType.TEXT,
allowNull:true,
desc:"علت معافیت",
category:"اطلاعات هویتی",
})
reasonOfExemption:string;
@Column({
type:DataType.SMALLINT,
allowNull:true,
desc:"سال معافیت",
maxLength:4,
category:"اطلاعات هویتی",
})
yearOfExemption:number;
@Column({
type:DataType.STRING,
allowNull:true,
desc:"بند معافیت",
category:"اطلاعات هویتی",
})
paraghraphOfExemption:string;
@Column({
type:DataType.STRING,
allowNull:true,
desc:"ماده معافیت",
category:"اطلاعات هویتی",
maxLength:32,
})
noteOfExemption:string;
@Column({
type:DataType.DATEONLY,
allowNull:true,
desc:"تاریخ صدور مجوز",
category:"اطلاعات هویتی",
})
permitIssueDate:Date;
@Column({
type:DataType.DATEONLY,
allowNull:true,
desc:"تاریخ پایان اعتبار مجوز",
category:"اطلاعات هویتی",
})
permitExpirationDate:Date;
@Column({
type:DataType.STRING,
allowNull:true,
desc:"فایل مجوز",
category:"ضمائم",
relation:"file",
inputType:"file",
})
premitFileId:string;
@Column({
type:DataType.SMALLINT,
allowNull:true,
desc:"تعداد سالهای تجربهی کار",
category:"اطلاعات هویتی",
maxLength:"2",
})
experienceYears:number;
@Column({
type:DataType.STRING,
allowNull:true,
desc:"فایل کارت ملی",
category:"ضمائم",
relation:"file",
inputType:"file",
})
nationalCardFileId:string;
@Column({
type:DataType.STRING,
allowNull:true,
desc:"فایل شناسنامه",
category:"ضمائم",
relation:"file",
inputType:"file",
})
birthCertificateFileId:string;
@Column({
type:DataType.STRING,
allowNull:true,
desc:"فایل پایان خدمت",
category:"ضمائم",
relation:"file",
inputType:"file",
})
militaryServiceCardFileId:string;
@Column({
type:DataType.STRING,
allowNull:true,
desc:"فایل عدم سوء پیشینه",
category:"ضمائم",
relation:"file",
inputType:"file",
})
policeClearanceFileId:string;
@Column({
type:DataType.STRING,
allowNull:true,
desc:"فایل عکس پرسنلی",
category:"ضمائم",
relation:"file",
inputType:"file",
})
personalImageFileId:string;
@Column({
type:DataType.STRING,
allowNull:true,
desc:"فایل کارت بهداشت",
category:"ضمائم",
relation:"file",
inputType:"file",
})
healthCardFileId:string;
@Column({
type:DataType.BIGINT,
allowNull:true,
desc:"آخرین نقش و سمت انتخاب شده",
relation:"userRole",
readOnly:true,
category:"اطلاعات ورود",
})
lastUserRoleId:number;
@Column({
type:DataType.TEXT,
allowNull:true,
category:"ضمائم",
inputType:"sign",
})
signatureFile:string;
@Column({
type:DataType.STRING,
allowNull:true,
desc:"تصویر امضا",
relation:"file",
category:"ضمائم",
})
signatureFileId:string;
@Column({
type:DataType.DATE,
allowNull:true,
desc:"زمان آخرین ورود موفق",
readOnly:true,
category:"اطلاعات ورود",
})
lastSuccessfulLogin:Date;
@Column({
type:DataType.DATE,
allowNull:true,
desc:"زمان آخرین تلاش ورود ناموفق",
readOnly:true,
category:"اطلاعات ورود",
})
lastFailedLogin:Date;
@Column({
type:DataType.INTEGER,
allowNull:false,
defaultValue:0,
desc:"تعداد دفعات ورود ناموفق قبل از ورود موفق",
readOnly:true,
category:"اطلاعات ورود",
})
consecutiveLoginFailures:number;
@Column({
type:DataType.DATE,
allowNull:true,
desc:"زمان پایان محدودیت ورود",
readOnly:true,
category:"اطلاعات ورود",
})
loginRestrictionEnd:Date;

@ -0,0 +1,379 @@
module.exports = { schemaObject: {
username: {
type: "this.DataTypes.STRING(50)",
allowNull: true,
desc: "نام کاربری",
category: "اطلاعات هویتی",
regex: "[^a-zA-Z0-9@_./-]+",
},
password: {
type: "this.DataTypes.TEXT",
allowNull: true,
desc: "کلمهی عبور",
},
firstName: {
type: "this.DataTypes.STRING",
allowNull: true,
desc: "نام",
category: "اطلاعات هویتی",
regex: "[^ آابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهیئ]+",
readOnly: true,
},
lastName: {
type: "this.DataTypes.STRING",
allowNull: true,
desc: "نام خانوادگی",
category: "اطلاعات هویتی",
regex: "[^ آابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهیئ]+",
readOnly: true,
},
displayName: {
type: "this.DataTypes.STRING(128)",
allowNull: true,
desc: "نام نمایشی",
category: "اطلاعات هویتی",
regex: "[^ آابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهیئ]+",
},
nationalId: {
type: "this.DataTypes.STRING(16)",
allowNull: false,
desc: "کد ملی",
category: "اطلاعات هویتی",
inputType: "number",
maxLength: 16,
},
birthDate: {
type: "this.DataTypes.DATE",
allowNull: false,
desc: "تاریخ تولد",
category: "اطلاعات هویتی",
max: "now()",
},
gender: {
type: "this.DataTypes.SMALLINT",
allowNull: true,
desc: "جنسیت",
category: "اطلاعات هویتی",
options: {
0: "مرد",
1: "زن",
2: "دوجنس و نامشخص",
},
},
fatherName: {
type: "this.DataTypes.STRING",
allowNull: true,
desc: "نام پدر",
category: "اطلاعات هویتی",
regex: "[^ آابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهیئ]+",
readOnly: true,
},
status: {
type: "this.DataTypes.SMALLINT",
allowNull: true,
defaultValue: 1,
desc: "وضعیت",
options: {
"-1": "مسدود شده",
0: "غیر فعال",
1: "فعال",
},
},
cellphone: {
type: "this.DataTypes.CHAR(11)",
allowNull: true,
validate: { is: /^09[0-9]{9}/ },
desc: "تلفن همراه",
required: true,
category: "اطلاعات تماس",
inputType: "number",
maxLength: 11,
},
phone: {
type: "this.DataTypes.CHAR(11)",
allowNull: true,
desc: "تلفن ثابت",
category: "اطلاعات تماس",
inputType: "number",
maxLength: 11,
},
email: {
type: "this.DataTypes.STRING",
allowNull: true,
desc: "ایمیل",
category: "اطلاعات تماس",
},
address: {
type: "this.DataTypes.TEXT",
allowNull: true,
desc: "آدرس",
category: "اطلاعات تماس",
},
postalCode: {
type: "this.DataTypes.CHAR(10)",
allowNull: true,
desc: "کد پستی",
category: "اطلاعات تماس",
inputType: "number",
maxLength: 10,
},
education: {
type: "this.DataTypes.SMALLINT",
allowNull: true,
validate: { min: 0, max: 10 },
desc: `میزان تحصیلات`,
options: {
0: "بیسواد",
1: "ابتدایی",
2: "راهنمایی",
3: "دیپلم",
4: "کاردانی",
5: "کارشناسی",
6: "کارشناسی ارشد",
7: "دکترای عمومی",
8: "دکترای حرفهای",
9: "دکترای تخصصی",
10: "فوق تخصص",
},
category: "تحصیلات کاربر",
},
studiesField: {
type: "this.DataTypes.STRING",
allowNull: true,
desc: "رشتهی تحصیلی",
category: "تحصیلات کاربر",
maxLength: 32,
},
graduationYear: {
type: "this.DataTypes.SMALLINT",
allowNull: true,
maxLength: 4,
desc: "سال اخذ مدرک",
category: "تحصیلات کاربر",
},
referenceId: {
type: "this.DataTypes.BIGINT",
allowNull: true,
desc: "معرف",
maxLength: 32,
category: "اطلاعات هویتی",
},
isForeigner: {
type: "this.DataTypes.BOOLEAN",
allowNull: true,
defaultValue: false,
desc: "آیا کاربر از اتباع خارجی است؟",
category: "اطلاعات هویتی",
options: {
0: "خیر",
1: "بله",
},
},
civilRegValidation: {
type: "this.DataTypes.SMALLINT",
allowNull: true,
defaultValue: 0,
desc: "وضعیت استعلام ثبت احوال",
options: {
"-1": "استعلام ناموفق",
0: "استعلام نشده",
1: "استعلام موفق",
},
category: "اطلاعات هویتی",
},
childCount: {
type: "this.DataTypes.SMALLINT",
allowNull: true,
desc: "تعداد فرزندان",
category: "اطلاعات هویتی",
maxLength: 2,
},
maritalStatus: {
type: "this.DataTypes.SMALLINT",
allowNull: true,
desc: `وضعیت تاهل`,
category: "اطلاعات هویتی",
options: {
0: "مجرد",
1: "متاهل",
},
},
militaryServiceStatus: {
type: "this.DataTypes.SMALLINT",
allowNull: true,
desc: `وضعیت نظام وظیفه`,
category: "اطلاعات هویتی",
options: {
1: "معافیت پزشکی",
2: "معافیت غیر پزشکی",
3: "انجام شده",
4: "انجام نشده",
},
},
reasonOfExemption: {
type: "this.DataTypes.TEXT",
allowNull: true,
desc: "علت معافیت",
category: "اطلاعات هویتی",
},
yearOfExemption: {
type: "this.DataTypes.SMALLINT",
allowNull: true,
desc: "سال معافیت",
maxLength: 4,
category: "اطلاعات هویتی",
},
paraghraphOfExemption: {
type: "this.DataTypes.STRING(4)",
allowNull: true,
desc: "بند معافیت",
category: "اطلاعات هویتی",
},
noteOfExemption: {
type: "this.DataTypes.STRING(4)",
allowNull: true,
desc: "ماده معافیت",
category: "اطلاعات هویتی",
maxLength: 32,
},
permitIssueDate: {
type: "this.DataTypes.DATEONLY",
allowNull: true,
desc: "تاریخ صدور مجوز",
category: "اطلاعات هویتی",
},
permitExpirationDate: {
type: "this.DataTypes.DATEONLY",
allowNull: true,
desc: "تاریخ پایان اعتبار مجوز",
category: "اطلاعات هویتی",
},
premitFileId: {
type: "this.DataTypes.STRING",
allowNull: true,
desc: "فایل مجوز",
category: "ضمائم",
relation: "file",
inputType: "file",
},
experienceYears: {
type: "this.DataTypes.SMALLINT",
allowNull: true,
desc: "تعداد سالهای تجربهی کار",
category: "اطلاعات هویتی",
maxLength: "2",
},
nationalCardFileId: {
type: "this.DataTypes.STRING",
allowNull: true,
desc: "فایل کارت ملی",
category: "اطلاعات هویتی",
category: "ضمائم",
relation: "file",
inputType: "file",
},
birthCertificateFileId: {
type: "this.DataTypes.STRING",
allowNull: true,
desc: "فایل شناسنامه",
category: "اطلاعات هویتی",
category: "ضمائم",
relation: "file",
inputType: "file",
},
militaryServiceCardFileId: {
type: "this.DataTypes.STRING",
allowNull: true,
desc: "فایل پایان خدمت",
category: "ضمائم",
relation: "file",
inputType: "file",
},
policeClearanceFileId: {
type: "this.DataTypes.STRING",
allowNull: true,
desc: "فایل عدم سوء پیشینه",
category: "ضمائم",
relation: "file",
inputType: "file",
},
personalImageFileId: {
type: "this.DataTypes.STRING",
allowNull: true,
desc: "فایل عکس پرسنلی",
category: "ضمائم",
relation: "file",
inputType: "file",
},
healthCardFileId: {
type: "this.DataTypes.STRING",
allowNull: true,
desc: "فایل کارت بهداشت",
category: "ضمائم",
relation: "file",
inputType: "file",
},
lastUserRoleId: {
type: "this.DataTypes.BIGINT",
allowNull: true,
desc: "آخرین نقش و سمت انتخاب شده",
relation: "userRole",
readOnly: true,
category: "اطلاعات ورود",
},
signatureFile: {
type: "this.DataTypes.TEXT",
allowNull: true,
category: "ضمائم",
inputType: "sign",
},
signatureFileId: {
type: "this.DataTypes.STRING",
allowNull: true,
desc: "تصویر امضا",
relation: "file",
category: "ضمائم",
},
lastSuccessfulLogin: {
type: "this.DataTypes.DATE",
allowNull: true,
desc: "زمان آخرین ورود موفق",
readOnly: true,
category: "اطلاعات ورود",
},
lastFailedLogin: {
type: "this.DataTypes.DATE",
allowNull: true,
desc: "زمان آخرین تلاش ورود ناموفق",
readOnly: true,
category: "اطلاعات ورود",
},
consecutiveLoginFailures: {
type: "this.DataTypes.INTEGER",
allowNull: false,
defaultValue: 0,
desc: "تعداد دفعات ورود ناموفق قبل از ورود موفق",
readOnly: true,
category: "اطلاعات ورود",
},
loginRestrictionEnd: {
type: "this.DataTypes.DATE",
allowNull: true,
desc: "زمان پایان محدودیت ورود",
readOnly: true,
category: "اطلاعات ورود",
}
} }

@ -0,0 +1,379 @@
{
// category: 'اطلاعات هویتی'
username: {
type: this.DataTypes.STRING(50),
allowNull: true,
desc: "نام کاربری",
category: "اطلاعات هویتی",
regex: "[^a-zA-Z0-9@_./-]+",
},
password: {
type: this.DataTypes.TEXT,
allowNull: true,
desc: "کلمهی عبور",
},
firstName: {
type: this.DataTypes.STRING,
allowNull: true,
desc: "نام",
category: "اطلاعات هویتی",
regex: "[^ آابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهیئ]+",
readOnly: true,
},
lastName: {
type: this.DataTypes.STRING,
allowNull: true,
desc: "نام خانوادگی",
category: "اطلاعات هویتی",
regex: "[^ آابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهیئ]+",
readOnly: true,
},
displayName: {
type: this.DataTypes.STRING(128),
allowNull: true,
desc: "نام نمایشی",
category: "اطلاعات هویتی",
regex: "[^ آابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهیئ]+",
},
nationalId: {
type: this.DataTypes.STRING(16),
allowNull: false,
desc: "کد ملی",
category: "اطلاعات هویتی",
inputType: "number",
maxLength: 16,
},
birthDate: {
type: this.DataTypes.DATE,
allowNull: false,
desc: "تاریخ تولد",
category: "اطلاعات هویتی",
max: "now()",
},
gender: {
type: this.DataTypes.SMALLINT,
allowNull: true,
desc: "جنسیت",
category: "اطلاعات هویتی",
options: {
0: "مرد",
1: "زن",
2: "دوجنس و نامشخص",
},
},
fatherName: {
type: this.DataTypes.STRING,
allowNull: true,
desc: "نام پدر",
category: "اطلاعات هویتی",
regex: "[^ آابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهیئ]+",
readOnly: true,
},
status: {
type: this.DataTypes.SMALLINT,
allowNull: true,
defaultValue: 1,
desc: "وضعیت",
options: {
"-1": "مسدود شده",
0: "غیر فعال",
1: "فعال",
},
},
// category: 'اطلاعات تماس'
cellphone: {
type: this.DataTypes.CHAR(11),
allowNull: true,
validate: { is: /^09[0-9]{9}/ },
desc: "تلفن همراه",
required: true,
category: "اطلاعات تماس",
inputType: "number",
maxLength: 11,
},
phone: {
type: this.DataTypes.CHAR(11),
allowNull: true,
desc: "تلفن ثابت",
category: "اطلاعات تماس",
inputType: "number",
maxLength: 11,
},
email: {
type: this.DataTypes.STRING,
allowNull: true,
desc: "ایمیل",
category: "اطلاعات تماس",
},
address: {
type: this.DataTypes.TEXT,
allowNull: true,
desc: "آدرس",
category: "اطلاعات تماس",
},
postalCode: {
type: this.DataTypes.CHAR(10),
allowNull: true,
desc: "کد پستی",
category: "اطلاعات تماس",
inputType: "number",
maxLength: 10,
},
// category: 'تحصیلات کاربر'
education: {
type: this.DataTypes.SMALLINT,
allowNull: true,
validate: { min: 0, max: 10 },
desc: `میزان تحصیلات`,
options: {
0: "بیسواد",
1: "ابتدایی",
2: "راهنمایی",
3: "دیپلم",
4: "کاردانی",
5: "کارشناسی",
6: "کارشناسی ارشد",
7: "دکترای عمومی",
8: "دکترای حرفهای",
9: "دکترای تخصصی",
10: "فوق تخصص",
},
category: "تحصیلات کاربر",
},
studiesField: {
type: this.DataTypes.STRING,
allowNull: true,
desc: "رشتهی تحصیلی",
category: "تحصیلات کاربر",
maxLength: 32,
},
graduationYear: {
type: this.DataTypes.SMALLINT,
allowNull: true,
maxLength: 4,
desc: "سال اخذ مدرک",
category: "تحصیلات کاربر",
},
referenceId: {
type: this.DataTypes.BIGINT,
allowNull: true,
desc: "معرف",
maxLength: 32,
category: "اطلاعات هویتی",
},
isForeigner: {
type: this.DataTypes.BOOLEAN,
allowNull: true,
defaultValue: false,
desc: "آیا کاربر از اتباع خارجی است؟",
category: "اطلاعات هویتی",
options: {
0: "خیر",
1: "بله",
},
},
civilRegValidation: {
type: this.DataTypes.SMALLINT,
allowNull: true,
defaultValue: 0,
desc: "وضعیت استعلام ثبت احوال",
options: {
"-1": "استعلام ناموفق",
0: "استعلام نشده",
1: "استعلام موفق",
},
category: "اطلاعات هویتی",
},
childCount: {
type: this.DataTypes.SMALLINT,
allowNull: true,
desc: "تعداد فرزندان",
category: "اطلاعات هویتی",
maxLength: 2,
},
maritalStatus: {
type: this.DataTypes.SMALLINT,
allowNull: true,
desc: `وضعیت تاهل`,
category: "اطلاعات هویتی",
options: {
0: "مجرد",
1: "متاهل",
},
},
militaryServiceStatus: {
type: this.DataTypes.SMALLINT,
allowNull: true,
desc: `وضعیت نظام وظیفه`,
category: "اطلاعات هویتی",
options: {
1: "معافیت پزشکی",
2: "معافیت غیر پزشکی",
3: "انجام شده",
4: "انجام نشده",
},
},
reasonOfExemption: {
type: this.DataTypes.TEXT,
allowNull: true,
desc: "علت معافیت",
category: "اطلاعات هویتی",
},
yearOfExemption: {
type: this.DataTypes.SMALLINT,
allowNull: true,
desc: "سال معافیت",
maxLength: 4,
category: "اطلاعات هویتی",
},
paraghraphOfExemption: {
type: this.DataTypes.STRING(4),
allowNull: true,
desc: "بند معافیت",
category: "اطلاعات هویتی",
},
noteOfExemption: {
type: this.DataTypes.STRING(4),
allowNull: true,
desc: "ماده معافیت",
category: "اطلاعات هویتی",
maxLength: 32,
},
permitIssueDate: {
type: this.DataTypes.DATEONLY,
allowNull: true,
desc: "تاریخ صدور مجوز",
category: "اطلاعات هویتی",
},
permitExpirationDate: {
type: this.DataTypes.DATEONLY,
allowNull: true,
desc: "تاریخ پایان اعتبار مجوز",
category: "اطلاعات هویتی",
},
premitFileId: {
type: this.DataTypes.STRING,
allowNull: true,
desc: "فایل مجوز",
category: "ضمائم",
relation: "file",
inputType: "file",
},
experienceYears: {
type: this.DataTypes.SMALLINT,
allowNull: true,
desc: "تعداد سالهای تجربهی کار",
category: "اطلاعات هویتی",
maxLength: "2",
},
nationalCardFileId: {
type: this.DataTypes.STRING,
allowNull: true,
desc: "فایل کارت ملی",
category: "اطلاعات هویتی",
category: "ضمائم",
relation: "file",
inputType: "file",
},
birthCertificateFileId: {
type: this.DataTypes.STRING,
allowNull: true,
desc: "فایل شناسنامه",
category: "اطلاعات هویتی",
category: "ضمائم",
relation: "file",
inputType: "file",
},
militaryServiceCardFileId: {
type: this.DataTypes.STRING,
allowNull: true,
desc: "فایل پایان خدمت",
category: "ضمائم",
relation: "file",
inputType: "file",
},
policeClearanceFileId: {
type: this.DataTypes.STRING,
allowNull: true,
desc: "فایل عدم سوء پیشینه",
category: "ضمائم",
relation: "file",
inputType: "file",
},
personalImageFileId: {
type: this.DataTypes.STRING,
allowNull: true,
desc: "فایل عکس پرسنلی",
category: "ضمائم",
relation: "file",
inputType: "file",
},
healthCardFileId: {
type: this.DataTypes.STRING,
allowNull: true,
desc: "فایل کارت بهداشت",
category: "ضمائم",
relation: "file",
inputType: "file",
},
//
lastUserRoleId: {
type: this.DataTypes.BIGINT,
allowNull: true,
desc: "آخرین نقش و سمت انتخاب شده",
relation: "userRole",
readOnly: true,
category: "اطلاعات ورود",
},
signatureFile: {
type: this.DataTypes.TEXT,
allowNull: true,
category: "ضمائم",
inputType: "sign",
},
signatureFileId: {
type: this.DataTypes.STRING,
allowNull: true,
desc: "تصویر امضا",
relation: "file",
category: "ضمائم",
},
lastSuccessfulLogin: {
type: this.DataTypes.DATE,
allowNull: true,
desc: "زمان آخرین ورود موفق",
readOnly: true,
category: "اطلاعات ورود",
},
lastFailedLogin: {
type: this.DataTypes.DATE,
allowNull: true,
desc: "زمان آخرین تلاش ورود ناموفق",
readOnly: true,
category: "اطلاعات ورود",
},
consecutiveLoginFailures: {
type: this.DataTypes.INTEGER,
allowNull: false,
defaultValue: 0,
desc: "تعداد دفعات ورود ناموفق قبل از ورود موفق",
readOnly: true,
category: "اطلاعات ورود",
},
loginRestrictionEnd: {
type: this.DataTypes.DATE,
allowNull: true,
desc: "زمان پایان محدودیت ورود",
readOnly: true,
category: "اطلاعات ورود",
},
}

@ -0,0 +1,379 @@
{
// category: 'اطلاعات هویتی'
username: {
type: this.DataTypes.STRING(50),
allowNull: true,
desc: "نام کاربری",
category: "اطلاعات هویتی",
regex: "[^a-zA-Z0-9@_./-]+",
},
password: {
type: this.DataTypes.TEXT,
allowNull: true,
desc: "کلمهی عبور",
},
firstName: {
type: this.DataTypes.STRING,
allowNull: true,
desc: "نام",
category: "اطلاعات هویتی",
regex: "[^ آابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهیئ]+",
readOnly: true,
},
lastName: {
type: this.DataTypes.STRING,
allowNull: true,
desc: "نام خانوادگی",
category: "اطلاعات هویتی",
regex: "[^ آابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهیئ]+",
readOnly: true,
},
displayName: {
type: this.DataTypes.STRING(128),
allowNull: true,
desc: "نام نمایشی",
category: "اطلاعات هویتی",
regex: "[^ آابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهیئ]+",
},
nationalId: {
type: this.DataTypes.STRING(16),
allowNull: false,
desc: "کد ملی",
category: "اطلاعات هویتی",
inputType: "number",
maxLength: 16,
},
birthDate: {
type: this.DataTypes.DATE,
allowNull: false,
desc: "تاریخ تولد",
category: "اطلاعات هویتی",
max: "now()",
},
gender: {
type: this.DataTypes.SMALLINT,
allowNull: true,
desc: "جنسیت",
category: "اطلاعات هویتی",
options: {
0: "مرد",
1: "زن",
2: "دوجنس و نامشخص",
},
},
fatherName: {
type: this.DataTypes.STRING,
allowNull: true,
desc: "نام پدر",
category: "اطلاعات هویتی",
regex: "[^ آابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهیئ]+",
readOnly: true,
},
status: {
type: this.DataTypes.SMALLINT,
allowNull: true,
defaultValue: 1,
desc: "وضعیت",
options: {
"-1": "مسدود شده",
0: "غیر فعال",
1: "فعال",
},
},
// category: 'اطلاعات تماس'
cellphone: {
type: this.DataTypes.CHAR(11),
allowNull: true,
validate: { is: /^09[0-9]{9}/ },
desc: "تلفن همراه",
required: true,
category: "اطلاعات تماس",
inputType: "number",
maxLength: 11,
},
phone: {
type: this.DataTypes.CHAR(11),
allowNull: true,
desc: "تلفن ثابت",
category: "اطلاعات تماس",
inputType: "number",
maxLength: 11,
},
email: {
type: this.DataTypes.STRING,
allowNull: true,
desc: "ایمیل",
category: "اطلاعات تماس",
},
address: {
type: this.DataTypes.TEXT,
allowNull: true,
desc: "آدرس",
category: "اطلاعات تماس",
},
postalCode: {
type: this.DataTypes.CHAR(10),
allowNull: true,
desc: "کد پستی",
category: "اطلاعات تماس",
inputType: "number",
maxLength: 10,
},
// category: 'تحصیلات کاربر'
education: {
type: this.DataTypes.SMALLINT,
allowNull: true,
validate: { min: 0, max: 10 },
desc: `میزان تحصیلات`,
options: {
0: "بیسواد",
1: "ابتدایی",
2: "راهنمایی",
3: "دیپلم",
4: "کاردانی",
5: "کارشناسی",
6: "کارشناسی ارشد",
7: "دکترای عمومی",
8: "دکترای حرفهای",
9: "دکترای تخصصی",
10: "فوق تخصص",
},
category: "تحصیلات کاربر",
},
studiesField: {
type: this.DataTypes.STRING,
allowNull: true,
desc: "رشتهی تحصیلی",
category: "تحصیلات کاربر",
maxLength: 32,
},
graduationYear: {
type: this.DataTypes.SMALLINT,
allowNull: true,
maxLength: 4,
desc: "سال اخذ مدرک",
category: "تحصیلات کاربر",
},
referenceId: {
type: this.DataTypes.BIGINT,
allowNull: true,
desc: "معرف",
maxLength: 32,
category: "اطلاعات هویتی",
},
isForeigner: {
type: this.DataTypes.BOOLEAN,
allowNull: true,
defaultValue: false,
desc: "آیا کاربر از اتباع خارجی است؟",
category: "اطلاعات هویتی",
options: {
0: "خیر",
1: "بله",
},
},
civilRegValidation: {
type: this.DataTypes.SMALLINT,
allowNull: true,
defaultValue: 0,
desc: "وضعیت استعلام ثبت احوال",
options: {
"-1": "استعلام ناموفق",
0: "استعلام نشده",
1: "استعلام موفق",
},
category: "اطلاعات هویتی",
},
childCount: {
type: this.DataTypes.SMALLINT,
allowNull: true,
desc: "تعداد فرزندان",
category: "اطلاعات هویتی",
maxLength: 2,
},
maritalStatus: {
type: this.DataTypes.SMALLINT,
allowNull: true,
desc: `وضعیت تاهل`,
category: "اطلاعات هویتی",
options: {
0: "مجرد",
1: "متاهل",
},
},
militaryServiceStatus: {
type: this.DataTypes.SMALLINT,
allowNull: true,
desc: `وضعیت نظام وظیفه`,
category: "اطلاعات هویتی",
options: {
1: "معافیت پزشکی",
2: "معافیت غیر پزشکی",
3: "انجام شده",
4: "انجام نشده",
},
},
reasonOfExemption: {
type: this.DataTypes.TEXT,
allowNull: true,
desc: "علت معافیت",
category: "اطلاعات هویتی",
},
yearOfExemption: {
type: this.DataTypes.SMALLINT,
allowNull: true,
desc: "سال معافیت",
maxLength: 4,
category: "اطلاعات هویتی",
},
paraghraphOfExemption: {
type: this.DataTypes.STRING(4),
allowNull: true,
desc: "بند معافیت",
category: "اطلاعات هویتی",
},
noteOfExemption: {
type: this.DataTypes.STRING(4),
allowNull: true,
desc: "ماده معافیت",
category: "اطلاعات هویتی",
maxLength: 32,
},
permitIssueDate: {
type: this.DataTypes.DATEONLY,
allowNull: true,
desc: "تاریخ صدور مجوز",
category: "اطلاعات هویتی",
},
permitExpirationDate: {
type: this.DataTypes.DATEONLY,
allowNull: true,
desc: "تاریخ پایان اعتبار مجوز",
category: "اطلاعات هویتی",
},
premitFileId: {
type: this.DataTypes.STRING,
allowNull: true,
desc: "فایل مجوز",
category: "ضمائم",
relation: "file",
inputType: "file",
},
experienceYears: {
type: this.DataTypes.SMALLINT,
allowNull: true,
desc: "تعداد سالهای تجربهی کار",
category: "اطلاعات هویتی",
maxLength: "2",
},
nationalCardFileId: {
type: this.DataTypes.STRING,
allowNull: true,
desc: "فایل کارت ملی",
category: "اطلاعات هویتی",
category: "ضمائم",
relation: "file",
inputType: "file",
},
birthCertificateFileId: {
type: this.DataTypes.STRING,
allowNull: true,
desc: "فایل شناسنامه",
category: "اطلاعات هویتی",
category: "ضمائم",
relation: "file",
inputType: "file",
},
militaryServiceCardFileId: {
type: this.DataTypes.STRING,
allowNull: true,
desc: "فایل پایان خدمت",
category: "ضمائم",
relation: "file",
inputType: "file",
},
policeClearanceFileId: {
type: this.DataTypes.STRING,
allowNull: true,
desc: "فایل عدم سوء پیشینه",
category: "ضمائم",
relation: "file",
inputType: "file",
},
personalImageFileId: {
type: this.DataTypes.STRING,
allowNull: true,
desc: "فایل عکس پرسنلی",
category: "ضمائم",
relation: "file",
inputType: "file",
},
healthCardFileId: {
type: this.DataTypes.STRING,
allowNull: true,
desc: "فایل کارت بهداشت",
category: "ضمائم",
relation: "file",
inputType: "file",
},
//
lastUserRoleId: {
type: this.DataTypes.BIGINT,
allowNull: true,
desc: "آخرین نقش و سمت انتخاب شده",
relation: "userRole",
readOnly: true,
category: "اطلاعات ورود",
},
signatureFile: {
type: this.DataTypes.TEXT,
allowNull: true,
category: "ضمائم",
inputType: "sign",
},
signatureFileId: {
type: this.DataTypes.STRING,
allowNull: true,
desc: "تصویر امضا",
relation: "file",
category: "ضمائم",
},
lastSuccessfulLogin: {
type: this.DataTypes.DATE,
allowNull: true,
desc: "زمان آخرین ورود موفق",
readOnly: true,
category: "اطلاعات ورود",
},
lastFailedLogin: {
type: this.DataTypes.DATE,
allowNull: true,
desc: "زمان آخرین تلاش ورود ناموفق",
readOnly: true,
category: "اطلاعات ورود",
},
consecutiveLoginFailures: {
type: this.DataTypes.INTEGER,
allowNull: false,
defaultValue: 0,
desc: "تعداد دفعات ورود ناموفق قبل از ورود موفق",
readOnly: true,
category: "اطلاعات ورود",
},
loginRestrictionEnd: {
type: this.DataTypes.DATE,
allowNull: true,
desc: "زمان پایان محدودیت ورود",
readOnly: true,
category: "اطلاعات ورود",
}
}
Loading…
Cancel
Save