feat: add generated code

This commit is contained in:
aid-orchestrator
2026-04-25 14:55:55 +00:00
parent 22d44859c1
commit c3cc5ebddc
84 changed files with 2383 additions and 0 deletions

90
frontend/src/App.tsx Normal file
View File

@@ -0,0 +1,90 @@
import { Admin, Resource } from 'react-admin';
import { dataProvider } from './dataProvider';
import { authProvider } from './authProvider';
// Equipment resources
import { EquipmentList, EquipmentCreate, EquipmentEdit, EquipmentShow } from './resources/equipment';
// Employee resources
import { EmployeeList, EmployeeCreate, EmployeeEdit, EmployeeShow } from './resources/employee';
// Part resources
import { PartList, PartCreate, PartEdit, PartShow } from './resources/part';
// CategoryResource resources
import { CategoryResourceList, CategoryResourceCreate, CategoryResourceEdit, CategoryResourceShow } from './resources/category-resource';
// RepairOrder resources
import { RepairOrderList, RepairOrderCreate, RepairOrderEdit, RepairOrderShow } from './resources/repair-order';
// ChangeEquipmentStatus resources
import { ChangeEquipmentStatusList, ChangeEquipmentStatusCreate, ChangeEquipmentStatusEdit, ChangeEquipmentStatusShow } from './resources/change-equipment-status';
// ConfirmationDocument resources
import { ConfirmationDocumentList, ConfirmationDocumentCreate, ConfirmationDocumentEdit, ConfirmationDocumentShow } from './resources/confirmation-document';
// ConsumptionRegistration resources
import { ConsumptionRegistrationList, ConsumptionRegistrationCreate, ConsumptionRegistrationEdit, ConsumptionRegistrationShow } from './resources/consumption-registration';
const App = () => (
<Admin dataProvider={dataProvider} authProvider={authProvider}>
<Resource
name="equipment"
list={EquipmentList}
create={EquipmentCreate}
edit={EquipmentEdit}
show={EquipmentShow}
/>
<Resource
name="employee"
list={EmployeeList}
create={EmployeeCreate}
edit={EmployeeEdit}
show={EmployeeShow}
/>
<Resource
name="part"
list={PartList}
create={PartCreate}
edit={PartEdit}
show={PartShow}
/>
<Resource
name="category-resource"
list={CategoryResourceList}
create={CategoryResourceCreate}
edit={CategoryResourceEdit}
show={CategoryResourceShow}
/>
<Resource
name="repair-order"
list={RepairOrderList}
create={RepairOrderCreate}
edit={RepairOrderEdit}
show={RepairOrderShow}
/>
<Resource
name="change-equipment-status"
list={ChangeEquipmentStatusList}
create={ChangeEquipmentStatusCreate}
edit={ChangeEquipmentStatusEdit}
show={ChangeEquipmentStatusShow}
/>
<Resource
name="confirmation-document"
list={ConfirmationDocumentList}
create={ConfirmationDocumentCreate}
edit={ConfirmationDocumentEdit}
show={ConfirmationDocumentShow}
/>
<Resource
name="consumption-registration"
list={ConsumptionRegistrationList}
create={ConsumptionRegistrationCreate}
edit={ConsumptionRegistrationEdit}
show={ConsumptionRegistrationShow}
/>
</Admin>
);
export default App;

12
frontend/src/main.tsx Normal file
View File

@@ -0,0 +1,12 @@
import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';
import { initKeycloak } from './authProvider';
initKeycloak().then(() => {
ReactDOM.createRoot(document.getElementById('root')!).render(
<React.StrictMode>
<App />
</React.StrictMode>
);
});

View File

@@ -0,0 +1,14 @@
import { Create, SimpleForm, ReferenceInput, SelectInput } from 'react-admin';
export const CategoryResourceCreate = () => (
<Create>
<SimpleForm>
<ReferenceInput source="partId" reference="part">
<SelectInput optionText="name" />
</ReferenceInput>
<ReferenceInput source="employeeCode" reference="employee">
<SelectInput optionText="fullName" />
</ReferenceInput>
</SimpleForm>
</Create>
);

View File

@@ -0,0 +1,14 @@
import { Edit, SimpleForm, ReferenceInput, SelectInput } from 'react-admin';
export const CategoryResourceEdit = () => (
<Edit>
<SimpleForm>
<ReferenceInput source="partId" reference="part">
<SelectInput optionText="name" />
</ReferenceInput>
<ReferenceInput source="employeeCode" reference="employee">
<SelectInput optionText="fullName" />
</ReferenceInput>
</SimpleForm>
</Edit>
);

View File

@@ -0,0 +1,20 @@
import { List, DataTable, TextField, ReferenceField, EditButton } from 'react-admin';
export const CategoryResourceList = () => (
<List>
<DataTable rowClick="edit">
<DataTable.Col source="id" />
<DataTable.Col>
<ReferenceField source="partId" reference="part">
<TextField source="name" />
</ReferenceField>
</DataTable.Col>
<DataTable.Col>
<ReferenceField source="employeeCode" reference="employee">
<TextField source="fullName" />
</ReferenceField>
</DataTable.Col>
<DataTable.Col><EditButton /></DataTable.Col>
</DataTable>
</List>
);

View File

@@ -0,0 +1,17 @@
import { Show, SimpleShowLayout, TextField, ReferenceField, DateField } from 'react-admin';
export const CategoryResourceShow = () => (
<Show>
<SimpleShowLayout>
<TextField source="id" />
<ReferenceField source="partId" reference="part">
<TextField source="name" />
</ReferenceField>
<ReferenceField source="employeeCode" reference="employee">
<TextField source="fullName" />
</ReferenceField>
<DateField source="createdAt" showTime />
<DateField source="updatedAt" showTime />
</SimpleShowLayout>
</Show>
);

View File

@@ -0,0 +1,4 @@
export { CategoryResourceList } from './CategoryResourceList';
export { CategoryResourceCreate } from './CategoryResourceCreate';
export { CategoryResourceEdit } from './CategoryResourceEdit';
export { CategoryResourceShow } from './CategoryResourceShow';

View File

@@ -0,0 +1,26 @@
import { Create, SimpleForm, TextInput, DateInput, SelectInput, ReferenceInput } from 'react-admin';
import { EquipmentStatus } from '@prisma/client';
const statusChoices = Object.values(EquipmentStatus).map(value => ({
id: value,
name: value,
}));
export const ChangeEquipmentStatusCreate = () => (
<Create>
<SimpleForm>
<ReferenceInput source="equipmentId" reference="equipment">
<SelectInput optionText="name" />
</ReferenceInput>
<SelectInput
source="newStatus"
choices={statusChoices}
/>
<TextInput source="number" />
<TextInput multiline source="comment" />
<DateInput source="date" />
<TextInput source="responsible" />
<TextInput source="document" />
</SimpleForm>
</Create>
);

View File

@@ -0,0 +1,27 @@
import { Edit, SimpleForm, TextInput, DateInput, SelectInput, ReferenceInput } from 'react-admin';
import { EquipmentStatus } from '@prisma/client';
const statusChoices = Object.values(EquipmentStatus).map(value => ({
id: value,
name: value,
}));
export const ChangeEquipmentStatusEdit = () => (
<Edit>
<SimpleForm>
<TextInput disabled source="id" />
<ReferenceInput source="equipmentId" reference="equipment">
<SelectInput optionText="name" />
</ReferenceInput>
<SelectInput
source="newStatus"
choices={statusChoices}
/>
<TextInput source="number" />
<TextInput multiline source="comment" />
<DateInput source="date" />
<TextInput source="responsible" />
<TextInput source="document" />
</SimpleForm>
</Edit>
);

View File

@@ -0,0 +1,29 @@
import { List, DataTable, TextField, DateField, EditButton, ReferenceField } from 'react-admin';
import { EquipmentStatus } from '@prisma/client';
const statusChoices = Object.values(EquipmentStatus).map(value => ({
id: value,
name: value,
}));
export const ChangeEquipmentStatusList = () => (
<List>
<DataTable rowClick="edit">
<DataTable.Col source="id" />
<DataTable.Col>
<ReferenceField source="equipmentId" reference="equipment">
<TextField source="name" />
</ReferenceField>
</DataTable.Col>
<DataTable.Col
source="newStatus"
choices={statusChoices}
/>
<DataTable.Col source="number" />
<DataTable.Col source="comment" />
<DataTable.Col source="date" field={DateField} />
<DataTable.Col source="responsible" />
<DataTable.Col><EditButton /></DataTable.Col>
</DataTable>
</List>
);

View File

@@ -0,0 +1,20 @@
import { Show, SimpleShowLayout, TextField, DateField, ReferenceField } from 'react-admin';
export const ChangeEquipmentStatusShow = () => (
<Show>
<SimpleShowLayout>
<TextField source="id" />
<ReferenceField source="equipmentId" reference="equipment">
<TextField source="name" />
</ReferenceField>
<TextField source="newStatus" />
<TextField source="number" />
<TextField source="comment" />
<DateField source="date" />
<TextField source="responsible" />
<TextField source="document" />
<DateField source="createdAt" showTime />
<DateField source="updatedAt" showTime />
</SimpleShowLayout>
</Show>
);

View File

@@ -0,0 +1,4 @@
export { ChangeEquipmentStatusList } from './ChangeEquipmentStatusList';
export { ChangeEquipmentStatusCreate } from './ChangeEquipmentStatusCreate';
export { ChangeEquipmentStatusEdit } from './ChangeEquipmentStatusEdit';
export { ChangeEquipmentStatusShow } from './ChangeEquipmentStatusShow';

View File

@@ -0,0 +1,17 @@
import { Create, SimpleForm, TextInput, DateInput, BooleanInput, ReferenceInput, SelectInput } from 'react-admin';
export const ConfirmationDocumentCreate = () => (
<Create>
<SimpleForm>
<TextInput source="number" />
<DateInput source="date" />
<ReferenceInput source="managerCode" reference="employee">
<SelectInput optionText="fullName" />
</ReferenceInput>
<ReferenceInput source="orderId" reference="repair-order">
<SelectInput optionText="number" />
</ReferenceInput>
<BooleanInput source="confirmed" />
</SimpleForm>
</Create>
);

View File

@@ -0,0 +1,18 @@
import { Edit, SimpleForm, TextInput, DateInput, BooleanInput, ReferenceInput, SelectInput } from 'react-admin';
export const ConfirmationDocumentEdit = () => (
<Edit>
<SimpleForm>
<TextInput disabled source="id" />
<TextInput source="number" />
<DateInput source="date" />
<ReferenceInput source="managerCode" reference="employee">
<SelectInput optionText="fullName" />
</ReferenceInput>
<ReferenceInput source="orderId" reference="repair-order">
<SelectInput optionText="number" />
</ReferenceInput>
<BooleanInput source="confirmed" />
</SimpleForm>
</Edit>
);

View File

@@ -0,0 +1,23 @@
import { List, DataTable, TextField, DateField, BooleanField, EditButton, ReferenceField } from 'react-admin';
export const ConfirmationDocumentList = () => (
<List>
<DataTable rowClick="edit">
<DataTable.Col source="id" />
<DataTable.Col source="number" />
<DataTable.Col source="date" field={DateField} />
<DataTable.Col>
<ReferenceField source="managerCode" reference="employee">
<TextField source="fullName" />
</ReferenceField>
</DataTable.Col>
<DataTable.Col>
<ReferenceField source="orderId" reference="repair-order">
<TextField source="number" />
</ReferenceField>
</DataTable.Col>
<DataTable.Col source="confirmed" field={BooleanField} />
<DataTable.Col><EditButton /></DataTable.Col>
</DataTable>
</List>
);

View File

@@ -0,0 +1,20 @@
import { Show, SimpleShowLayout, TextField, DateField, BooleanField, ReferenceField } from 'react-admin';
export const ConfirmationDocumentShow = () => (
<Show>
<SimpleShowLayout>
<TextField source="id" />
<TextField source="number" />
<DateField source="date" />
<ReferenceField source="managerCode" reference="employee">
<TextField source="fullName" />
</ReferenceField>
<ReferenceField source="orderId" reference="repair-order">
<TextField source="number" />
</ReferenceField>
<BooleanField source="confirmed" />
<DateField source="createdAt" showTime />
<DateField source="updatedAt" showTime />
</SimpleShowLayout>
</Show>
);

View File

@@ -0,0 +1,4 @@
export { ConfirmationDocumentList } from './ConfirmationDocumentList';
export { ConfirmationDocumentCreate } from './ConfirmationDocumentCreate';
export { ConfirmationDocumentEdit } from './ConfirmationDocumentEdit';
export { ConfirmationDocumentShow } from './ConfirmationDocumentShow';

View File

@@ -0,0 +1,15 @@
import { Create, SimpleForm, TextInput, DateInput, NumberInput, ReferenceInput, SelectInput } from 'react-admin';
export const ConsumptionRegistrationCreate = () => (
<Create>
<SimpleForm>
<TextInput source="number" />
<DateInput source="date" />
<ReferenceInput source="equipmentId" reference="equipment">
<SelectInput optionText="name" />
</ReferenceInput>
<NumberInput source="totalEngineHours" step={0.01} />
<NumberInput source="fuelConsumption" step={0.01} />
</SimpleForm>
</Create>
);

View File

@@ -0,0 +1,16 @@
import { Edit, SimpleForm, TextInput, DateInput, NumberInput, ReferenceInput, SelectInput } from 'react-admin';
export const ConsumptionRegistrationEdit = () => (
<Edit>
<SimpleForm>
<TextInput disabled source="id" />
<TextInput source="number" />
<DateInput source="date" />
<ReferenceInput source="equipmentId" reference="equipment">
<SelectInput optionText="name" />
</ReferenceInput>
<NumberInput source="totalEngineHours" step={0.01} />
<NumberInput source="fuelConsumption" step={0.01} />
</SimpleForm>
</Edit>
);

View File

@@ -0,0 +1,19 @@
import { List, DataTable, TextField, DateField, NumberField, EditButton, ReferenceField } from 'react-admin';
export const ConsumptionRegistrationList = () => (
<List>
<DataTable rowClick="edit">
<DataTable.Col source="id" />
<DataTable.Col source="number" />
<DataTable.Col source="date" field={DateField} />
<DataTable.Col>
<ReferenceField source="equipmentId" reference="equipment">
<TextField source="name" />
</ReferenceField>
</DataTable.Col>
<DataTable.Col source="totalEngineHours" field={NumberField} />
<DataTable.Col source="fuelConsumption" field={NumberField} />
<DataTable.Col><EditButton /></DataTable.Col>
</DataTable>
</List>
);

View File

@@ -0,0 +1,18 @@
import { Show, SimpleShowLayout, TextField, DateField, NumberField, ReferenceField } from 'react-admin';
export const ConsumptionRegistrationShow = () => (
<Show>
<SimpleShowLayout>
<TextField source="id" />
<TextField source="number" />
<DateField source="date" />
<ReferenceField source="equipmentId" reference="equipment">
<TextField source="name" />
</ReferenceField>
<NumberField source="totalEngineHours" />
<NumberField source="fuelConsumption" />
<DateField source="createdAt" showTime />
<DateField source="updatedAt" showTime />
</SimpleShowLayout>
</Show>
);

View File

@@ -0,0 +1,4 @@
export { ConsumptionRegistrationList } from './ConsumptionRegistrationList';
export { ConsumptionRegistrationCreate } from './ConsumptionRegistrationCreate';
export { ConsumptionRegistrationEdit } from './ConsumptionRegistrationEdit';
export { ConsumptionRegistrationShow } from './ConsumptionRegistrationShow';

View File

@@ -0,0 +1,26 @@
import { Create, SimpleForm, TextInput, NumberInput, SelectInput, ReferenceInput } from 'react-admin';
import { Role } from '@prisma/client';
const roleChoices = Object.values(Role).map(value => ({
id: value,
name: value,
}));
export const EmployeeCreate = () => (
<Create>
<SimpleForm>
<TextInput source="code" />
<TextInput source="fullName" />
<SelectInput
source="role"
choices={roleChoices}
/>
<TextInput source="position" />
<ReferenceInput source="bossCode" reference="employee">
<SelectInput optionText="fullName" />
</ReferenceInput>
<NumberInput source="price" step={0.01} />
<NumberInput source="phoneNumber" />
</SimpleForm>
</Create>
);

View File

@@ -0,0 +1,26 @@
import { Edit, SimpleForm, TextInput, NumberInput, SelectInput, ReferenceInput } from 'react-admin';
import { Role } from '@prisma/client';
const roleChoices = Object.values(Role).map(value => ({
id: value,
name: value,
}));
export const EmployeeEdit = () => (
<Edit>
<SimpleForm>
<TextInput disabled source="code" />
<TextInput source="fullName" />
<SelectInput
source="role"
choices={roleChoices}
/>
<TextInput source="position" />
<ReferenceInput source="bossCode" reference="employee">
<SelectInput optionText="fullName" />
</ReferenceInput>
<NumberInput source="price" step={0.01} />
<NumberInput source="phoneNumber" />
</SimpleForm>
</Edit>
);

View File

@@ -0,0 +1,25 @@
import { List, DataTable, TextField, NumberField, EditButton } from 'react-admin';
import { Role } from '@prisma/client';
const roleChoices = Object.values(Role).map(value => ({
id: value,
name: value,
}));
export const EmployeeList = () => (
<List>
<DataTable rowClick="edit">
<DataTable.Col source="code" />
<DataTable.Col source="fullName" />
<DataTable.Col
source="role"
choices={roleChoices}
/>
<DataTable.Col source="position" />
<DataTable.Col source="bossCode" />
<DataTable.Col source="price" field={NumberField} />
<DataTable.Col source="phoneNumber" field={NumberField} />
<DataTable.Col><EditButton /></DataTable.Col>
</DataTable>
</List>
);

View File

@@ -0,0 +1,19 @@
import { Show, SimpleShowLayout, TextField, NumberField, DateField, ReferenceField } from 'react-admin';
export const EmployeeShow = () => (
<Show>
<SimpleShowLayout>
<TextField source="code" />
<TextField source="fullName" />
<TextField source="role" />
<TextField source="position" />
<ReferenceField source="bossCode" reference="employee">
<TextField source="fullName" />
</ReferenceField>
<NumberField source="price" />
<NumberField source="phoneNumber" />
<DateField source="createdAt" showTime />
<DateField source="updatedAt" showTime />
</SimpleShowLayout>
</Show>
);

View File

@@ -0,0 +1,4 @@
export { EmployeeList } from './EmployeeList';
export { EmployeeCreate } from './EmployeeCreate';
export { EmployeeEdit } from './EmployeeEdit';
export { EmployeeShow } from './EmployeeShow';

View File

@@ -0,0 +1,46 @@
import { Create, SimpleForm, TextInput, DateInput, NumberInput, SelectInput } from 'react-admin';
import { EquipmentType, EnumPeriodicityTO, EquipmentStatus } from '@prisma/client';
const equipmentTypeChoices = Object.values(EquipmentType).map(value => ({
id: value,
name: value,
}));
const periodicityTOChoices = Object.values(EnumPeriodicityTO).map(value => ({
id: value,
name: value,
}));
const statusChoices = Object.values(EquipmentStatus).map(value => ({
id: value,
name: value,
}));
export const EquipmentCreate = () => (
<Create>
<SimpleForm>
<TextInput source="name" />
<TextInput source="serialNumber" />
<TextInput source="inventoryNumber" />
<SelectInput
source="equipmentType"
choices={equipmentTypeChoices}
/>
<DateInput source="dateOfInspection" />
<SelectInput
source="periodicityTO"
choices={periodicityTOChoices}
/>
<TextInput source="location" />
<SelectInput
source="status"
choices={statusChoices}
/>
<DateInput source="commissionedAt" />
<NumberInput source="totalEngineHours" step={0.01} />
<NumberInput source="engineHoursSinceLastRepair" step={0.01} />
<DateInput source="lastRepairAt" />
<TextInput multiline source="notes" />
</SimpleForm>
</Create>
);

View File

@@ -0,0 +1,47 @@
import { Edit, SimpleForm, TextInput, DateInput, NumberInput, SelectInput } from 'react-admin';
import { EquipmentType, EnumPeriodicityTO, EquipmentStatus } from '@prisma/client';
const equipmentTypeChoices = Object.values(EquipmentType).map(value => ({
id: value,
name: value,
}));
const periodicityTOChoices = Object.values(EnumPeriodicityTO).map(value => ({
id: value,
name: value,
}));
const statusChoices = Object.values(EquipmentStatus).map(value => ({
id: value,
name: value,
}));
export const EquipmentEdit = () => (
<Edit>
<SimpleForm>
<TextInput disabled source="id" />
<TextInput source="name" />
<TextInput source="serialNumber" />
<TextInput source="inventoryNumber" />
<SelectInput
source="equipmentType"
choices={equipmentTypeChoices}
/>
<DateInput source="dateOfInspection" />
<SelectInput
source="periodicityTO"
choices={periodicityTOChoices}
/>
<TextInput source="location" />
<SelectInput
source="status"
choices={statusChoices}
/>
<DateInput source="commissionedAt" />
<NumberInput source="totalEngineHours" step={0.01} />
<NumberInput source="engineHoursSinceLastRepair" step={0.01} />
<DateInput source="lastRepairAt" />
<TextInput multiline source="notes" />
</SimpleForm>
</Edit>
);

View File

@@ -0,0 +1,47 @@
import { List, DataTable, TextField, DateField, NumberField, EditButton } from 'react-admin';
import { EquipmentType, EnumPeriodicityTO, EquipmentStatus } from '@prisma/client';
const equipmentTypeChoices = Object.values(EquipmentType).map(value => ({
id: value,
name: value,
}));
const periodicityTOChoices = Object.values(EnumPeriodicityTO).map(value => ({
id: value,
name: value,
}));
const statusChoices = Object.values(EquipmentStatus).map(value => ({
id: value,
name: value,
}));
export const EquipmentList = () => (
<List>
<DataTable rowClick="edit">
<DataTable.Col source="id" />
<DataTable.Col source="name" />
<DataTable.Col source="serialNumber" />
<DataTable.Col source="inventoryNumber" />
<DataTable.Col
source="equipmentType"
choices={equipmentTypeChoices}
/>
<DataTable.Col source="dateOfInspection" field={DateField} />
<DataTable.Col
source="periodicityTO"
choices={periodicityTOChoices}
/>
<DataTable.Col source="location" />
<DataTable.Col
source="status"
choices={statusChoices}
/>
<DataTable.Col source="commissionedAt" field={DateField} />
<DataTable.Col source="totalEngineHours" field={NumberField} />
<DataTable.Col source="engineHoursSinceLastRepair" field={NumberField} />
<DataTable.Col source="lastRepairAt" field={DateField} />
<DataTable.Col><EditButton /></DataTable.Col>
</DataTable>
</List>
);

View File

@@ -0,0 +1,24 @@
import { Show, SimpleShowLayout, TextField, DateField, NumberField } from 'react-admin';
export const EquipmentShow = () => (
<Show>
<SimpleShowLayout>
<TextField source="id" />
<TextField source="name" />
<TextField source="serialNumber" />
<TextField source="inventoryNumber" />
<TextField source="equipmentType" />
<DateField source="dateOfInspection" />
<TextField source="periodicityTO" />
<TextField source="location" />
<TextField source="status" />
<DateField source="commissionedAt" />
<NumberField source="totalEngineHours" />
<NumberField source="engineHoursSinceLastRepair" />
<DateField source="lastRepairAt" />
<TextField source="notes" />
<DateField source="createdAt" showTime />
<DateField source="updatedAt" showTime />
</SimpleShowLayout>
</Show>
);

View File

@@ -0,0 +1,4 @@
export { EquipmentList } from './EquipmentList';
export { EquipmentCreate } from './EquipmentCreate';
export { EquipmentEdit } from './EquipmentEdit';
export { EquipmentShow } from './EquipmentShow';

View File

@@ -0,0 +1,22 @@
import { Create, SimpleForm, TextInput, NumberInput, SelectInput } from 'react-admin';
import { CategoryPart } from '@prisma/client';
const categoryPartChoices = Object.values(CategoryPart).map(value => ({
id: value,
name: value,
}));
export const PartCreate = () => (
<Create>
<SimpleForm>
<TextInput source="name" />
<SelectInput
source="categories"
choices={categoryPartChoices}
/>
<NumberInput source="price" step={0.01} />
<TextInput multiline source="description" />
<TextInput source="serialNumber" />
</SimpleForm>
</Create>
);

View File

@@ -0,0 +1,23 @@
import { Edit, SimpleForm, TextInput, NumberInput, SelectInput } from 'react-admin';
import { CategoryPart } from '@prisma/client';
const categoryPartChoices = Object.values(CategoryPart).map(value => ({
id: value,
name: value,
}));
export const PartEdit = () => (
<Edit>
<SimpleForm>
<TextInput disabled source="id" />
<TextInput source="name" />
<SelectInput
source="categories"
choices={categoryPartChoices}
/>
<NumberInput source="price" step={0.01} />
<TextInput multiline source="description" />
<TextInput source="serialNumber" />
</SimpleForm>
</Edit>
);

View File

@@ -0,0 +1,24 @@
import { List, DataTable, TextField, NumberField, EditButton } from 'react-admin';
import { CategoryPart } from '@prisma/client';
const categoryPartChoices = Object.values(CategoryPart).map(value => ({
id: value,
name: value,
}));
export const PartList = () => (
<List>
<DataTable rowClick="edit">
<DataTable.Col source="id" />
<DataTable.Col source="name" />
<DataTable.Col
source="categories"
choices={categoryPartChoices}
/>
<DataTable.Col source="price" field={NumberField} />
<DataTable.Col source="description" />
<DataTable.Col source="serialNumber" />
<DataTable.Col><EditButton /></DataTable.Col>
</DataTable>
</List>
);

View File

@@ -0,0 +1,16 @@
import { Show, SimpleShowLayout, TextField, NumberField, DateField } from 'react-admin';
export const PartShow = () => (
<Show>
<SimpleShowLayout>
<TextField source="id" />
<TextField source="name" />
<TextField source="categories" />
<NumberField source="price" />
<TextField source="description" />
<TextField source="serialNumber" />
<DateField source="createdAt" showTime />
<DateField source="updatedAt" showTime />
</SimpleShowLayout>
</Show>
);

View File

@@ -0,0 +1,4 @@
export { PartList } from './PartList';
export { PartCreate } from './PartCreate';
export { PartEdit } from './PartEdit';
export { PartShow } from './PartShow';

View File

@@ -0,0 +1,40 @@
import { Create, SimpleForm, TextInput, DateInput, NumberInput, BooleanInput, SelectInput, ReferenceInput } from 'react-admin';
import { RepairKind, RepairOrderStatus } from '@prisma/client';
const repairKindChoices = Object.values(RepairKind).map(value => ({
id: value,
name: value,
}));
const statusChoices = Object.values(RepairOrderStatus).map(value => ({
id: value,
name: value,
}));
export const RepairOrderCreate = () => (
<Create>
<SimpleForm>
<TextInput source="number" />
<DateInput source="date" />
<ReferenceInput source="equipmentId" reference="equipment">
<SelectInput optionText="name" />
</ReferenceInput>
<SelectInput
source="repairKind"
choices={repairKindChoices}
/>
<SelectInput
source="status"
choices={statusChoices}
/>
<DateInput source="plannedAt" />
<DateInput source="startedAt" />
<DateInput source="completedAt" />
<TextInput source="contractor" />
<NumberInput source="engineHoursAtRepair" step={0.01} />
<TextInput multiline source="description" />
<TextInput multiline source="notes" />
<BooleanInput source="confirmed" />
</SimpleForm>
</Create>
);

View File

@@ -0,0 +1,41 @@
import { Edit, SimpleForm, TextInput, DateInput, NumberInput, BooleanInput, SelectInput, ReferenceInput } from 'react-admin';
import { RepairKind, RepairOrderStatus } from '@prisma/client';
const repairKindChoices = Object.values(RepairKind).map(value => ({
id: value,
name: value,
}));
const statusChoices = Object.values(RepairOrderStatus).map(value => ({
id: value,
name: value,
}));
export const RepairOrderEdit = () => (
<Edit>
<SimpleForm>
<TextInput disabled source="id" />
<TextInput source="number" />
<DateInput source="date" />
<ReferenceInput source="equipmentId" reference="equipment">
<SelectInput optionText="name" />
</ReferenceInput>
<SelectInput
source="repairKind"
choices={repairKindChoices}
/>
<SelectInput
source="status"
choices={statusChoices}
/>
<DateInput source="plannedAt" />
<DateInput source="startedAt" />
<DateInput source="completedAt" />
<TextInput source="contractor" />
<NumberInput source="engineHoursAtRepair" step={0.01} />
<TextInput multiline source="description" />
<TextInput multiline source="notes" />
<BooleanInput source="confirmed" />
</SimpleForm>
</Edit>
);

View File

@@ -0,0 +1,42 @@
import { List, DataTable, TextField, DateField, NumberField, BooleanField, EditButton, ReferenceField } from 'react-admin';
import { RepairKind, RepairOrderStatus } from '@prisma/client';
const repairKindChoices = Object.values(RepairKind).map(value => ({
id: value,
name: value,
}));
const statusChoices = Object.values(RepairOrderStatus).map(value => ({
id: value,
name: value,
}));
export const RepairOrderList = () => (
<List>
<DataTable rowClick="edit">
<DataTable.Col source="id" />
<DataTable.Col source="number" />
<DataTable.Col source="date" field={DateField} />
<DataTable.Col>
<ReferenceField source="equipmentId" reference="equipment">
<TextField source="name" />
</ReferenceField>
</DataTable.Col>
<DataTable.Col
source="repairKind"
choices={repairKindChoices}
/>
<DataTable.Col
source="status"
choices={statusChoices}
/>
<DataTable.Col source="plannedAt" field={DateField} />
<DataTable.Col source="startedAt" field={DateField} />
<DataTable.Col source="completedAt" field={DateField} />
<DataTable.Col source="contractor" />
<DataTable.Col source="engineHoursAtRepair" field={NumberField} />
<DataTable.Col source="confirmed" field={BooleanField} />
<DataTable.Col><EditButton /></DataTable.Col>
</DataTable>
</List>
);

View File

@@ -0,0 +1,26 @@
import { Show, SimpleShowLayout, TextField, DateField, NumberField, BooleanField, ReferenceField } from 'react-admin';
export const RepairOrderShow = () => (
<Show>
<SimpleShowLayout>
<TextField source="id" />
<TextField source="number" />
<DateField source="date" />
<ReferenceField source="equipmentId" reference="equipment">
<TextField source="name" />
</ReferenceField>
<TextField source="repairKind" />
<TextField source="status" />
<DateField source="plannedAt" />
<DateField source="startedAt" />
<DateField source="completedAt" />
<TextField source="contractor" />
<NumberField source="engineHoursAtRepair" />
<TextField source="description" />
<TextField source="notes" />
<BooleanField source="confirmed" />
<DateField source="createdAt" showTime />
<DateField source="updatedAt" showTime />
</SimpleShowLayout>
</Show>
);

View File

@@ -0,0 +1,4 @@
export { RepairOrderList } from './RepairOrderList';
export { RepairOrderCreate } from './RepairOrderCreate';
export { RepairOrderEdit } from './RepairOrderEdit';
export { RepairOrderShow } from './RepairOrderShow';