72 lines
1.6 KiB
TypeScript
72 lines
1.6 KiB
TypeScript
export const ContractItemType = {
|
|
UST: 'UST',
|
|
SAAS_LICENSE: 'SAAS_LICENSE',
|
|
} as const;
|
|
export type ContractItemType = (typeof ContractItemType)[keyof typeof ContractItemType];
|
|
|
|
export interface ContractItemListItem {
|
|
id: string;
|
|
code: string;
|
|
name: string;
|
|
description: string | null;
|
|
itemType: ContractItemType;
|
|
totalUst: number;
|
|
ustValue: number | null;
|
|
timeboxDescoberta: number | null;
|
|
timeboxDesign: number | null;
|
|
timeboxArquitetura: number | null;
|
|
timeboxConstrucao: number | null;
|
|
isActive: boolean;
|
|
createdAt: string;
|
|
updatedAt: string;
|
|
client: {
|
|
id: string;
|
|
name: string;
|
|
};
|
|
}
|
|
|
|
export interface ContractItemsListResponse {
|
|
data: ContractItemListItem[];
|
|
total: number;
|
|
page: number;
|
|
limit: number;
|
|
}
|
|
|
|
export interface ContractItemFilters {
|
|
search?: string;
|
|
isActive?: string;
|
|
itemType?: ContractItemType;
|
|
page: number;
|
|
limit: number;
|
|
}
|
|
|
|
export interface ContractItemActiveItem {
|
|
id: string;
|
|
code: string;
|
|
name: string;
|
|
itemType: ContractItemType;
|
|
totalUst: number;
|
|
ustValue: number | null;
|
|
timeboxDescoberta: number | null;
|
|
timeboxDesign: number | null;
|
|
timeboxArquitetura: number | null;
|
|
timeboxConstrucao: number | null;
|
|
}
|
|
|
|
export interface CreateContractItemRequest {
|
|
code: string;
|
|
name: string;
|
|
description?: string;
|
|
itemType: ContractItemType;
|
|
totalUst: number;
|
|
ustValue?: number;
|
|
timeboxDescoberta?: number;
|
|
timeboxDesign?: number;
|
|
timeboxArquitetura?: number;
|
|
timeboxConstrucao?: number;
|
|
}
|
|
|
|
export interface UpdateContractItemRequest extends Partial<CreateContractItemRequest> {
|
|
isActive?: boolean;
|
|
}
|