@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;