package at.procon.dip.domain.time.leitstand.source;

import java.math.BigDecimal;
import java.time.OffsetDateTime;

public final class LeitstandSourceRows {
    private LeitstandSourceRows() {}

    public record ActivityTypeRow(Integer id, String lCode, String bez) {}
    public record PersonRow(String dbk, String dbkUid, String upd, Integer updAnz, String updUid, Integer status,
                            Integer personNumber, String lastName, String firstName, String categoryDbk,
                            String salutation, String title, String street, String postalCode, String city,
                            String countryCode, String phone, String fax, String email, BigDecimal costPerHour,
                            String organizationDbk) {}
    public record OrganizationRow(String dbk, String dbkUid, String upd, Integer updAnz, String updUid, Integer status,
                                  String betreu, String name, String street, String postalCode, String city,
                                  String phone, String fax, String email, Integer orgNumber, String shortName) {}
    public record ContractRow(String dbk, String dbkUid, String upd, Integer updAnz, String updUid, Integer status,
                              String organizationDbk, Integer lfdnr, String name, String iref, String eref,
                              String description, OffsetDateTime validFrom, OffsetDateTime validTo) {}
    public record ContractPositionRow(String dbk, String dbkUid, String upd, Integer updAnz, String updUid, Integer status,
                                      String contractDbk, Integer lfdnr, String projectName, BigDecimal salesPrice,
                                      BigDecimal purchasePrice, String description, OffsetDateTime validFrom,
                                      OffsetDateTime validTo, String name, String iref, String eref) {}
    public record CostUnitRow(String dbk, String dbkUid, String upd, Integer updAnz, String updUid, Integer status,
                              String personDbk, String organizationDbk, String contractDbk, String legacyRelation4Dbk,
                              String legacyRelation5Dbk, String contractPositionDbk, String projectName,
                              Integer projectId, Integer projectTask, String mclId, String mclName, String mclDesc,
                              OffsetDateTime validFrom, OffsetDateTime validTo, BigDecimal effortPlan) {}
    public record TaskRow(String dbk, String dbkUid, String upd, Integer updAnz, String updUid, Integer status,
                          String primaryCostUnitDbk, String secondaryCostUnitDbk, String tertiaryCostUnitDbk,
                          String parentTaskDbk, Integer lfdnr, String taskType, String mclId, String mclName,
                          String mclDesc, OffsetDateTime validFrom, OffsetDateTime validTo, BigDecimal effortPlan,
                          OffsetDateTime lastWork, Integer completionPercent, OffsetDateTime doneDate, String remark,
                          Integer nRid, Integer legacy90702Rid, BigDecimal amount, OffsetDateTime createdSourceAt,
                          Integer legacy90700Rid, Integer legacy90699Rid, Integer quantity) {}
    public record PersonTaskAssignmentRow(String dbk, String dbkUid, String upd, Integer updAnz, String updUid,
                                          Integer status, String taskDbk, String personDbk, String costUnitDbk,
                                          String rtype, OffsetDateTime lastWork, BigDecimal effortPlan) {}
    public record TimeRecordingRow(String dbk, String dbkUid, String upd, Integer updAnz, String updUid, Integer status,
                                   String personDbk, Integer lfdnr, String recordType, String mclId, String mclDesc,
                                   OffsetDateTime recordedFrom, OffsetDateTime recordedTo, BigDecimal effort,
                                   String remark, String url, Integer activityTypeId) {}
    public record TimeRecordingAssignmentRow(String dbk, String dbkUid, String upd, Integer updAnz, String updUid,
                                             Integer status, String personTaskAssignmentDbk, String timeRecordingDbk,
                                             String mclDesc, BigDecimal effort, String remark) {}
}
