feat: Generate TypeScript interfaces for backend entities using Tygo

This commit is contained in:
Jean Jacques Avril 2025-03-09 15:16:34 +00:00
parent 98d21724ee
commit 56a6f3cfc4
3 changed files with 129 additions and 0 deletions

View File

@ -0,0 +1,62 @@
// Code generated by tygo. DO NOT EDIT.
//////////
// source: activity.go
export interface Activity {
ID: number /* int */;
Name: string;
BillingRate: number /* float64 */;
}
//////////
// source: company.go
export interface Company {
ID: number /* int */;
Name: string;
}
//////////
// source: customer.go
export interface Customer {
ID: number /* int */;
Name: string;
CompanyID: number /* int */;
}
//////////
// source: project.go
export interface Project {
ID: number /* int */;
Name: string;
CustomerID: number /* int */;
}
//////////
// source: timeentry.go
export interface TimeEntry {
ID: number /* int */;
UserID: number /* int */;
ProjectID: number /* int */;
ActivityID: number /* int */;
Start: string;
End: string;
Description: string;
Billable: number /* int */; // Percentage (0-100)
}
//////////
// source: user.go
export interface User {
ID: number /* int */;
Username: string;
Password: string;
Role: string;
CompanyID: number /* int */;
HourlyRate: number /* float64 */;
}

5
backend/tygo.yml Normal file
View File

@ -0,0 +1,5 @@
packages:
- path: github.com/timetracker/backend/internal/domain/entities
type_mappings:
"time.Time": "string"
output_path: ./internal/interfaces/http/dto/typescript

View File

@ -0,0 +1,62 @@
// Code generated by tygo. DO NOT EDIT.
//////////
// source: activity.go
export interface Activity {
ID: number /* int */;
Name: string;
BillingRate: number /* float64 */;
}
//////////
// source: company.go
export interface Company {
ID: number /* int */;
Name: string;
}
//////////
// source: customer.go
export interface Customer {
ID: number /* int */;
Name: string;
CompanyID: number /* int */;
}
//////////
// source: project.go
export interface Project {
ID: number /* int */;
Name: string;
CustomerID: number /* int */;
}
//////////
// source: timeentry.go
export interface TimeEntry {
ID: number /* int */;
UserID: number /* int */;
ProjectID: number /* int */;
ActivityID: number /* int */;
Start: string;
End: string;
Description: string;
Billable: number /* int */; // Percentage (0-100)
}
//////////
// source: user.go
export interface User {
ID: number /* int */;
Username: string;
Password: string;
Role: string;
CompanyID: number /* int */;
HourlyRate: number /* float64 */;
}