init commit
This commit is contained in:
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
node_modules
|
||||
dist
|
||||
29
package-lock.json
generated
Normal file
29
package-lock.json
generated
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"name": "@mtlsz/common",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@mtlsz/common",
|
||||
"version": "1.0.0",
|
||||
"license": "ISC",
|
||||
"devDependencies": {
|
||||
"typescript": "^5.8.2"
|
||||
}
|
||||
},
|
||||
"node_modules/typescript": {
|
||||
"version": "5.8.2",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz",
|
||||
"integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"tsc": "bin/tsc",
|
||||
"tsserver": "bin/tsserver"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.17"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
20
package.json
Normal file
20
package.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"name": "@mtlsz/common",
|
||||
"version": "1.0.2",
|
||||
"description": "MTLSZ frontend packages",
|
||||
"main": "dist/index.ts",
|
||||
"types": "dist/index.d.ts",
|
||||
"scripts": {
|
||||
"build": "tsc",
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://git.tothbt.com/tothbt/mtlsz-frontend-packages"
|
||||
},
|
||||
"author": "TRWEB",
|
||||
"license": "ISC",
|
||||
"devDependencies": {
|
||||
"typescript": "^5.8.2"
|
||||
}
|
||||
}
|
||||
17
src/index.ts
Normal file
17
src/index.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
export * from './interfaces/club';
|
||||
export * from './interfaces/player';
|
||||
export * from './interfaces/api-pagination';
|
||||
export * from './interfaces/api-result';
|
||||
export * from './interfaces/category';
|
||||
export * from './interfaces/entry';
|
||||
export * from './interfaces/in-memory-cache';
|
||||
export * from './interfaces/official';
|
||||
export * from './interfaces/pagination';
|
||||
export * from './interfaces/ranking-entry';
|
||||
export * from './interfaces/ranking';
|
||||
export * from './interfaces/system-data';
|
||||
export * from './interfaces/team-administrator';
|
||||
export * from './interfaces/team-category';
|
||||
export * from './interfaces/team-entry';
|
||||
export * from './interfaces/team';
|
||||
export * from './interfaces/tournament';
|
||||
8
src/interfaces/api-pagination.ts
Normal file
8
src/interfaces/api-pagination.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
export interface ApiPagination {
|
||||
'@id': string;
|
||||
'@type': string;
|
||||
'hydra:first': string;
|
||||
'hydra:last': string;
|
||||
'hydra:next'?: string;
|
||||
'hydra:previous'?: string;
|
||||
}
|
||||
10
src/interfaces/api-result.ts
Normal file
10
src/interfaces/api-result.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
import { ApiPagination } from "./api-pagination";
|
||||
|
||||
export interface ApiResult {
|
||||
'@context': string;
|
||||
'@id': string;
|
||||
type: string;
|
||||
'hydra:member': Array<any>;
|
||||
'hydra:totalItems': number;
|
||||
'hydra:view': ApiPagination
|
||||
}
|
||||
12
src/interfaces/category.ts
Normal file
12
src/interfaces/category.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
export interface Category {
|
||||
id?: number;
|
||||
name: string;
|
||||
singles: boolean;
|
||||
doubles: boolean;
|
||||
mixed: boolean;
|
||||
shortName: string;
|
||||
gender: string;
|
||||
class: number;
|
||||
age?: string;
|
||||
priority: number;
|
||||
}
|
||||
12
src/interfaces/club.ts
Normal file
12
src/interfaces/club.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
export interface Club {
|
||||
id?: number;
|
||||
name: string;
|
||||
shortName: string;
|
||||
players?: Array<any>;
|
||||
city?: string;
|
||||
contactName?: string;
|
||||
email?: string;
|
||||
address?: string;
|
||||
phone?: string;
|
||||
active: boolean;
|
||||
}
|
||||
18
src/interfaces/entry.ts
Normal file
18
src/interfaces/entry.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
import { Category } from "./category";
|
||||
import { Club } from "./club";
|
||||
import { Player } from "./player";
|
||||
import { Tournament } from "./tournament";
|
||||
|
||||
export interface Entry {
|
||||
id?: number;
|
||||
player1: Player;
|
||||
player2?: Player;
|
||||
sentBy: Club;
|
||||
status: number;
|
||||
category: Category;
|
||||
tournament: Tournament;
|
||||
createdAt: string;
|
||||
updatedAt?: string;
|
||||
sameEntry?: Entry;
|
||||
missingEntryFromOtherClub?: boolean;
|
||||
}
|
||||
8
src/interfaces/in-memory-cache.ts
Normal file
8
src/interfaces/in-memory-cache.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
/**
|
||||
* This is just a simple interface for clearCache method
|
||||
* which removes the data from the memory. E.g set
|
||||
* your list to empty array, null or whatever.
|
||||
*/
|
||||
export declare interface InMemoryCache {
|
||||
clearCache(): void;
|
||||
}
|
||||
10
src/interfaces/official.ts
Normal file
10
src/interfaces/official.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
export interface Official {
|
||||
id?: number;
|
||||
name: string;
|
||||
email: string;
|
||||
phone?: string;
|
||||
/** @deprecated Use referee and umpire booleans instead */
|
||||
type?: number;
|
||||
referee: boolean;
|
||||
umpire: boolean;
|
||||
}
|
||||
4
src/interfaces/pagination.ts
Normal file
4
src/interfaces/pagination.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
export declare interface Pagination {
|
||||
forward(): void;
|
||||
back(): void;
|
||||
}
|
||||
14
src/interfaces/player.ts
Normal file
14
src/interfaces/player.ts
Normal file
@@ -0,0 +1,14 @@
|
||||
import { Club } from "./club";
|
||||
|
||||
export interface Player {
|
||||
id?: number;
|
||||
firstName: string;
|
||||
lastName: string;
|
||||
gender: string;
|
||||
birthDate: string;
|
||||
officialId?: number;
|
||||
club: Club;
|
||||
email?: string;
|
||||
keycloakUserId?: string;
|
||||
active?: boolean;
|
||||
}
|
||||
12
src/interfaces/ranking-entry.ts
Normal file
12
src/interfaces/ranking-entry.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
import { Player } from "./player";
|
||||
import { Ranking } from "./ranking";
|
||||
|
||||
export interface RankingEntry {
|
||||
id?: number;
|
||||
ranking: Ranking;
|
||||
player: Player;
|
||||
place: number;
|
||||
tournamentCount: number;
|
||||
points: number;
|
||||
validFrom: Date;
|
||||
}
|
||||
8
src/interfaces/ranking.ts
Normal file
8
src/interfaces/ranking.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
export interface Ranking {
|
||||
id?: number;
|
||||
gender: string;
|
||||
age: string | null;
|
||||
singles: boolean;
|
||||
doubles: boolean;
|
||||
mixed: boolean;
|
||||
}
|
||||
4
src/interfaces/system-data.ts
Normal file
4
src/interfaces/system-data.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
export interface SystemData {
|
||||
type: string;
|
||||
value: string;
|
||||
}
|
||||
11
src/interfaces/team-administrator.ts
Normal file
11
src/interfaces/team-administrator.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
import { Club } from "./club";
|
||||
|
||||
export interface TeamAdministrator {
|
||||
id?: number;
|
||||
keycloakId?: string;
|
||||
lastName: string;
|
||||
firstName: string;
|
||||
email: string;
|
||||
active?: boolean;
|
||||
club: Club;
|
||||
}
|
||||
10
src/interfaces/team-category.ts
Normal file
10
src/interfaces/team-category.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
import { Category } from "./category";
|
||||
|
||||
export interface TeamCategory {
|
||||
id?: number;
|
||||
name: string;
|
||||
class: number;
|
||||
gender: string;
|
||||
age?: string;
|
||||
categories?: Category[];
|
||||
}
|
||||
15
src/interfaces/team-entry.ts
Normal file
15
src/interfaces/team-entry.ts
Normal file
@@ -0,0 +1,15 @@
|
||||
import { Club } from "./club";
|
||||
import { Team } from "./team";
|
||||
import { TeamCategory } from "./team-category";
|
||||
import { Tournament } from "./tournament";
|
||||
|
||||
export interface TeamEntry {
|
||||
id?: number;
|
||||
sentBy: Club;
|
||||
status: number;
|
||||
category: TeamCategory;
|
||||
tournament: Tournament;
|
||||
createdAt: string;
|
||||
updatedAt?: string;
|
||||
team: Team;
|
||||
}
|
||||
7
src/interfaces/team.ts
Normal file
7
src/interfaces/team.ts
Normal file
@@ -0,0 +1,7 @@
|
||||
import { Club } from "./club";
|
||||
|
||||
export interface Team {
|
||||
id?: number;
|
||||
name: string;
|
||||
club: Club;
|
||||
}
|
||||
31
src/interfaces/tournament.ts
Normal file
31
src/interfaces/tournament.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
import { Category } from "./category";
|
||||
import { Club } from "./club";
|
||||
import { Official } from "./official";
|
||||
import { TeamCategory } from "./team-category";
|
||||
|
||||
export interface Tournament {
|
||||
id?: number;
|
||||
name: string;
|
||||
dateFrom: string;
|
||||
dateTo?: string;
|
||||
entryDeadline?: string;
|
||||
entryOpenFrom?: string;
|
||||
categories: Array<Category>;
|
||||
teamCategories?: Array<TeamCategory>;
|
||||
/**
|
||||
* @deprecated use organizerName instead
|
||||
*/
|
||||
organizer?: Club;
|
||||
organizerName?: string;
|
||||
active: boolean;
|
||||
city?: string;
|
||||
onlyWithLicence: boolean;
|
||||
teamChampionship: boolean;
|
||||
allowedWithoutPartner: boolean;
|
||||
allowedSimilarEntries: boolean;
|
||||
entriesChecked?: boolean;
|
||||
referee: Official | null;
|
||||
deputyReferee: Official | null;
|
||||
drawUrl: string | null;
|
||||
notificationsSentAt?: Date | null;
|
||||
}
|
||||
13
tsconfig.json
Normal file
13
tsconfig.json
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"declaration": true,
|
||||
"emitDeclarationOnly": false,
|
||||
"outDir": "dist",
|
||||
"module": "commonjs",
|
||||
"target": "ES6",
|
||||
"strict": true
|
||||
},
|
||||
"include": [
|
||||
"src"
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user