jws-backend/prisma/generated/types.ts
2024-06-26 11:22:48 +07:00

459 lines
12 KiB
TypeScript

import type { ColumnType } from "kysely";
export type Generated<T> = T extends ColumnType<infer S, infer I, infer U>
? ColumnType<S, I | undefined, U>
: ColumnType<T, T | undefined, T>;
export type Timestamp = ColumnType<Date, Date | string, Date | string>;
export const Status = {
CREATED: "CREATED",
ACTIVE: "ACTIVE",
INACTIVE: "INACTIVE"
} as const;
export type Status = (typeof Status)[keyof typeof Status];
export const UserType = {
USER: "USER",
MESSENGER: "MESSENGER",
DELEGATE: "DELEGATE",
AGENCY: "AGENCY"
} as const;
export type UserType = (typeof UserType)[keyof typeof UserType];
export const CustomerType = {
CORP: "CORP",
PERS: "PERS"
} as const;
export type CustomerType = (typeof CustomerType)[keyof typeof CustomerType];
export type Branch = {
id: string;
code: string;
taxNo: string;
name: string;
nameEN: string;
address: string;
addressEN: string;
telephoneNo: string;
provinceId: string | null;
districtId: string | null;
subDistrictId: string | null;
zipCode: string;
email: string;
contactName: string | null;
lineId: string | null;
latitude: string;
longitude: string;
isHeadOffice: Generated<boolean>;
headOfficeId: string | null;
status: Generated<Status>;
statusOrder: Generated<number>;
createdBy: string | null;
createdAt: Generated<Timestamp>;
updateBy: string | null;
updatedAt: Timestamp;
};
export type BranchContact = {
id: string;
telephoneNo: string;
branchId: string;
createdBy: string | null;
createdAt: Generated<Timestamp>;
updateBy: string | null;
updatedAt: Timestamp;
};
export type BranchUser = {
id: string;
branchId: string;
userId: string;
createdBy: string | null;
createdAt: Generated<Timestamp>;
updateBy: string | null;
updatedAt: Timestamp;
};
export type Customer = {
id: string;
code: string;
personName: string;
personNameEN: string | null;
customerType: CustomerType;
customerName: string;
customerNameEN: string;
taxNo: string | null;
status: Generated<Status>;
statusOrder: Generated<number>;
createdBy: string | null;
createdAt: Generated<Timestamp>;
updateBy: string | null;
updatedAt: Timestamp;
};
export type CustomerBranch = {
id: string;
branchNo: number;
code: string;
legalPersonNo: string;
name: string;
nameEN: string;
customerId: string;
taxNo: string | null;
registerName: string;
registerDate: Timestamp;
authorizedCapital: string;
address: string;
addressEN: string;
provinceId: string | null;
districtId: string | null;
subDistrictId: string | null;
zipCode: string;
email: string;
telephoneNo: string;
employmentOffice: string;
bussinessType: string;
bussinessTypeEN: string;
jobPosition: string;
jobPositionEN: string;
jobDescription: string;
saleEmployee: string;
payDate: Timestamp;
wageRate: number;
status: Generated<Status>;
statusOrder: Generated<number>;
createdBy: string | null;
createdAt: Generated<Timestamp>;
updateBy: string | null;
updatedAt: Timestamp;
};
export type District = {
id: string;
name: string;
nameEN: string;
provinceId: string;
createdBy: string | null;
createdAt: Generated<Timestamp>;
updateBy: string | null;
updatedAt: Timestamp;
};
export type Employee = {
id: string;
code: string;
nrcNo: string;
firstName: string;
firstNameEN: string;
lastName: string;
lastNameEN: string;
dateOfBirth: Timestamp;
gender: string;
nationality: string;
address: string | null;
addressEN: string | null;
provinceId: string | null;
districtId: string | null;
subDistrictId: string | null;
zipCode: string;
passportType: string;
passportNumber: string;
passportIssueDate: Timestamp;
passportExpiryDate: Timestamp;
passportIssuingCountry: string;
passportIssuingPlace: string;
previousPassportReference: string | null;
visaType: string | null;
visaNumber: string | null;
visaIssueDate: Timestamp | null;
visaExpiryDate: Timestamp | null;
visaIssuingPlace: string | null;
visaStayUntilDate: Timestamp | null;
tm6Number: string | null;
entryDate: Timestamp | null;
workerStatus: string | null;
customerBranchId: string | null;
status: Generated<Status>;
statusOrder: Generated<number>;
createdBy: string | null;
createdAt: Generated<Timestamp>;
updateBy: string | null;
updatedAt: Timestamp;
};
export type EmployeeCheckup = {
id: string;
employeeId: string;
checkupResult: string | null;
checkupType: string | null;
provinceId: string | null;
hospitalName: string | null;
remark: string | null;
medicalBenefitScheme: string | null;
insuranceCompany: string | null;
coverageStartDate: Timestamp | null;
coverageExpireDate: Timestamp | null;
createdBy: string | null;
createdAt: Generated<Timestamp>;
updateBy: string | null;
updatedAt: Timestamp;
};
export type EmployeeOtherInfo = {
id: string;
employeeId: string;
citizenId: string | null;
fatherBirthPlace: string | null;
fatherFirstName: string | null;
fatherLastName: string | null;
motherBirthPlace: string | null;
motherFirstName: string | null;
motherLastName: string | null;
fatherFirstNameEN: string | null;
fatherLastNameEN: string | null;
motherFirstNameEN: string | null;
motherLastNameEN: string | null;
createdBy: string | null;
createdAt: Generated<Timestamp>;
updateBy: string | null;
updatedAt: Timestamp;
};
export type EmployeeWork = {
id: string;
employeeId: string;
ownerName: string | null;
positionName: string | null;
jobType: string | null;
workplace: string | null;
workPermitNo: string | null;
workPermitIssuDate: Timestamp | null;
workPermitExpireDate: Timestamp | null;
workEndDate: Timestamp | null;
remark: string | null;
createdBy: string | null;
createdAt: Generated<Timestamp>;
updateBy: string | null;
updatedAt: Timestamp;
};
export type Menu = {
id: string;
caption: string;
captionEN: string;
menuType: string;
url: string;
createdBy: string | null;
createdAt: Generated<Timestamp>;
updateBy: string | null;
updatedAt: Timestamp;
parentId: string | null;
};
export type MenuComponent = {
id: string;
componentId: string;
componentTag: string;
menuId: string;
createdBy: string | null;
createdAt: Generated<Timestamp>;
updateBy: string | null;
updatedAt: Timestamp;
};
export type Product = {
id: string;
code: string;
name: string;
detail: string;
process: number;
price: number;
agentPrice: number;
serviceCharge: number;
status: Generated<Status>;
statusOrder: Generated<number>;
remark: string | null;
productTypeId: string | null;
createdBy: string | null;
createdAt: Generated<Timestamp>;
updateBy: string | null;
updatedAt: Timestamp;
};
export type ProductGroup = {
id: string;
code: string;
name: string;
detail: string;
remark: string;
status: Generated<Status>;
statusOrder: Generated<number>;
createdBy: string | null;
createdAt: Generated<Timestamp>;
updateBy: string | null;
updatedAt: Timestamp;
};
export type ProductType = {
id: string;
code: string;
name: string;
detail: string;
remark: string;
status: Generated<Status>;
statusOrder: Generated<number>;
createdBy: string | null;
createdAt: Generated<Timestamp>;
updateBy: string | null;
updatedAt: Timestamp;
productGroupId: string;
};
export type Province = {
id: string;
name: string;
nameEN: string;
createdBy: string | null;
createdAt: Generated<Timestamp>;
updateBy: string | null;
updatedAt: Timestamp;
};
export type RoleMenuComponentPermission = {
id: string;
userRole: string;
permission: string;
menuComponentId: string;
createdBy: string | null;
createdAt: Generated<Timestamp>;
updateBy: string | null;
updatedAt: Timestamp;
};
export type RoleMenuPermission = {
id: string;
userRole: string;
permission: string;
menuId: string;
createdBy: string | null;
createdAt: Generated<Timestamp>;
updateBy: string | null;
updatedAt: Timestamp;
};
export type RunningNo = {
key: string;
value: number;
};
export type Service = {
id: string;
code: string;
name: string;
detail: string;
attributes: unknown | null;
status: Generated<Status>;
statusOrder: Generated<number>;
createdBy: string | null;
createdAt: Generated<Timestamp>;
updateBy: string | null;
updatedAt: Timestamp;
};
export type SubDistrict = {
id: string;
name: string;
nameEN: string;
zipCode: string;
districtId: string;
createdBy: string | null;
createdAt: Generated<Timestamp>;
updateBy: string | null;
updatedAt: Timestamp;
};
export type User = {
id: string;
code: string | null;
firstName: string;
firstNameEN: string;
lastName: string;
lastNameEN: string;
username: string;
gender: string;
address: string;
addressEN: string;
provinceId: string | null;
districtId: string | null;
subDistrictId: string | null;
zipCode: string;
email: string;
telephoneNo: string;
registrationNo: string | null;
startDate: Timestamp | null;
retireDate: Timestamp | null;
checkpoint: string | null;
checkpointEN: string | null;
userType: UserType;
userRole: string;
discountCondition: string | null;
licenseNo: string | null;
licenseIssueDate: Timestamp | null;
licenseExpireDate: Timestamp | null;
sourceNationality: string | null;
importNationality: string | null;
trainingPlace: string | null;
responsibleArea: string | null;
birthDate: Timestamp | null;
status: Generated<Status>;
statusOrder: Generated<number>;
createdBy: string | null;
createdAt: Generated<Timestamp>;
updateBy: string | null;
updatedAt: Timestamp;
};
export type UserMenuComponentPermission = {
id: string;
userId: string;
menuComponentId: string;
permission: string;
createdBy: string | null;
createdAt: Generated<Timestamp>;
updateBy: string | null;
updatedAt: Timestamp;
};
export type UserMenuPermission = {
id: string;
permission: string;
menuId: string;
userId: string;
createdBy: string | null;
createdAt: Generated<Timestamp>;
updateBy: string | null;
updatedAt: Timestamp;
};
export type Work = {
id: string;
order: number;
name: string;
attributes: unknown | null;
status: Generated<Status>;
statusOrder: Generated<number>;
serviceId: string | null;
createdBy: string | null;
createdAt: Generated<Timestamp>;
updateBy: string | null;
updatedAt: Timestamp;
};
export type WorkProduct = {
order: number;
workId: string;
productId: string;
createdBy: string | null;
createdAt: Generated<Timestamp>;
updateBy: string | null;
updatedAt: Timestamp;
};
export type DB = {
Branch: Branch;
BranchContact: BranchContact;
BranchUser: BranchUser;
Customer: Customer;
CustomerBranch: CustomerBranch;
District: District;
Employee: Employee;
EmployeeCheckup: EmployeeCheckup;
EmployeeOtherInfo: EmployeeOtherInfo;
EmployeeWork: EmployeeWork;
Menu: Menu;
MenuComponent: MenuComponent;
Product: Product;
ProductGroup: ProductGroup;
ProductType: ProductType;
Province: Province;
RoleMenuComponentPermission: RoleMenuComponentPermission;
RoleMenuPermission: RoleMenuPermission;
RunningNo: RunningNo;
Service: Service;
SubDistrict: SubDistrict;
User: User;
UserMenuComponentPermission: UserMenuComponentPermission;
UserMenuPermission: UserMenuPermission;
Work: Work;
WorkProduct: WorkProduct;
};