feat: sample data

This commit is contained in:
2025-03-08 20:06:06 +07:00
parent b4ea46140d
commit 9ea91f3b40
13 changed files with 396 additions and 73 deletions

View File

@@ -8,6 +8,7 @@ import {Create as $Create} from "@wailsio/runtime";
export class Author {
"Id": number;
"Name": string;
"Posts": Post[];
/** Creates a new Author instance. */
constructor($$source: Partial<Author> = {}) {
@@ -17,6 +18,9 @@ export class Author {
if (!("Name" in $$source)) {
this["Name"] = "";
}
if (!("Posts" in $$source)) {
this["Posts"] = [];
}
Object.assign(this, $$source);
}
@@ -25,7 +29,11 @@ export class Author {
* Creates a new Author instance from a string or object.
*/
static createFrom($$source: any = {}): Author {
const $$createField2_0 = $$createType1;
let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source;
if ("Posts" in $$parsedSource) {
$$parsedSource["Posts"] = $$createField2_0($$parsedSource["Posts"]);
}
return new Author($$parsedSource as Partial<Author>);
}
}
@@ -33,7 +41,10 @@ export class Author {
export class Post {
"Id": number;
"Text": string;
"Deadline": number;
"CreatedAt": number;
"AuthorId": number;
"Author": Author;
/** Creates a new Post instance. */
constructor($$source: Partial<Post> = {}) {
@@ -43,9 +54,18 @@ export class Post {
if (!("Text" in $$source)) {
this["Text"] = "";
}
if (!("Deadline" in $$source)) {
this["Deadline"] = 0;
}
if (!("CreatedAt" in $$source)) {
this["CreatedAt"] = 0;
}
if (!("AuthorId" in $$source)) {
this["AuthorId"] = 0;
}
if (!("Author" in $$source)) {
this["Author"] = (new Author());
}
Object.assign(this, $$source);
}
@@ -54,7 +74,16 @@ export class Post {
* Creates a new Post instance from a string or object.
*/
static createFrom($$source: any = {}): Post {
const $$createField5_0 = $$createType2;
let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source;
if ("Author" in $$parsedSource) {
$$parsedSource["Author"] = $$createField5_0($$parsedSource["Author"]);
}
return new Post($$parsedSource as Partial<Post>);
}
}
// Private type creation functions
const $$createType0 = Post.createFrom;
const $$createType1 = $Create.Array($$createType0);
const $$createType2 = Author.createFrom;

View File

@@ -20,7 +20,7 @@ export function Count(): Promise<number> & { cancel(): void } {
export function Create(item: $models.Author): Promise<$models.Author> & { cancel(): void } {
let $resultPromise = $Call.ByID(3684602449, item) as any;
let $typingPromise = $resultPromise.then(($result: any) => {
let $typingPromise = $resultPromise.then(($result) => {
return $$createType0($result);
}) as any;
$typingPromise.cancel = $resultPromise.cancel.bind($resultPromise);
@@ -34,7 +34,7 @@ export function Delete(id: number): Promise<void> & { cancel(): void } {
export function GetAll(): Promise<($models.Author | null)[]> & { cancel(): void } {
let $resultPromise = $Call.ByID(3248293926) as any;
let $typingPromise = $resultPromise.then(($result: any) => {
let $typingPromise = $resultPromise.then(($result) => {
return $$createType2($result);
}) as any;
$typingPromise.cancel = $resultPromise.cancel.bind($resultPromise);
@@ -43,7 +43,7 @@ export function GetAll(): Promise<($models.Author | null)[]> & { cancel(): void
export function GetById(id: number): Promise<$models.Author | null> & { cancel(): void } {
let $resultPromise = $Call.ByID(1703016211, id) as any;
let $typingPromise = $resultPromise.then(($result: any) => {
let $typingPromise = $resultPromise.then(($result) => {
return $$createType1($result);
}) as any;
$typingPromise.cancel = $resultPromise.cancel.bind($resultPromise);
@@ -52,7 +52,7 @@ export function GetById(id: number): Promise<$models.Author | null> & { cancel()
export function Update(item: $models.Author): Promise<$models.Author> & { cancel(): void } {
let $resultPromise = $Call.ByID(2240704960, item) as any;
let $typingPromise = $resultPromise.then(($result: any) => {
let $typingPromise = $resultPromise.then(($result) => {
return $$createType0($result);
}) as any;
$typingPromise.cancel = $resultPromise.cancel.bind($resultPromise);

View File

@@ -20,7 +20,7 @@ export function Count(): Promise<number> & { cancel(): void } {
export function Create(item: $models.Post): Promise<$models.Post> & { cancel(): void } {
let $resultPromise = $Call.ByID(1443399856, item) as any;
let $typingPromise = $resultPromise.then(($result: any) => {
let $typingPromise = $resultPromise.then(($result) => {
return $$createType0($result);
}) as any;
$typingPromise.cancel = $resultPromise.cancel.bind($resultPromise);
@@ -39,7 +39,7 @@ export function ExportToExcel(): Promise<void> & { cancel(): void } {
export function GetAll(): Promise<($models.Post | null)[]> & { cancel(): void } {
let $resultPromise = $Call.ByID(65691059) as any;
let $typingPromise = $resultPromise.then(($result: any) => {
let $typingPromise = $resultPromise.then(($result) => {
return $$createType2($result);
}) as any;
$typingPromise.cancel = $resultPromise.cancel.bind($resultPromise);
@@ -48,7 +48,7 @@ export function GetAll(): Promise<($models.Post | null)[]> & { cancel(): void }
export function GetById(id: number): Promise<$models.Post | null> & { cancel(): void } {
let $resultPromise = $Call.ByID(4074736792, id) as any;
let $typingPromise = $resultPromise.then(($result: any) => {
let $typingPromise = $resultPromise.then(($result) => {
return $$createType1($result);
}) as any;
$typingPromise.cancel = $resultPromise.cancel.bind($resultPromise);
@@ -57,7 +57,7 @@ export function GetById(id: number): Promise<$models.Post | null> & { cancel():
export function Update(item: $models.Post): Promise<$models.Post> & { cancel(): void } {
let $resultPromise = $Call.ByID(137798821, item) as any;
let $typingPromise = $resultPromise.then(($result: any) => {
let $typingPromise = $resultPromise.then(($result) => {
return $$createType0($result);
}) as any;
$typingPromise.cancel = $resultPromise.cancel.bind($resultPromise);

View File

@@ -1,10 +1,12 @@
<script setup lang="ts">
import PostScheme from './post/PostScheme.vue';
import AuthorScheme from "./author/AuthorScheme.vue";
</script>
<template>
<main class="w-screen h-screen">
<PostScheme />
<AuthorScheme />
</main>
</template>

View File

@@ -1,40 +1,57 @@
<script setup lang="ts">
import Table from '../table/Table.vue'
import { onMounted, reactive } from 'vue'
import { getDefaultValues } from '../utils/structs/defaults.util.ts'
import S from './author.service.ts'
import type { Scheme } from '../types/scheme.type'
import { Author } from '../../bindings/app/internal/services/models.ts'
import {onMounted, reactive} from 'vue'
import {getDefaultValues} from '../utils/structs/defaults.util'
import Service from './author.service.ts'
import type {Scheme} from '../types/scheme.type'
import {Author} from '../../bindings/app/internal/services'
const service = new S
import PostService from '../post/post.service.ts'
const postService = new PostService
const service = new Service
onMounted(async () => {
(scheme as any).Posts.type!.nested!.values = await postService.readAll()
console.log(scheme)
})
const scheme: Scheme<Author> = reactive({
Id:{
hidden: true,
type: {
primitive: "number",
Id: {
hidden: true,
type: {
primitive: "number",
},
},
},
Name:{
russian: "Имя",
type: {
primitive: "string",
Name: {
russian: "Имя",
type: {
primitive: "string",
},
},
Posts: {
russian: "Посты",
many: true,
type: {
nested: {
values: [],
field: ['Text']
},
},
},
},
})
const getDefaults = () => getDefaultValues(scheme)
const getDefaults = () => getDefaultValues(scheme)
</script>
<template>
<main class="w-screen h-screen">
<Table :scheme :service :getDefaults></Table>
</main>
</template>
<main class="w-screen h-screen">
<Table :scheme :service :getDefaults></Table>
</main>
</template>

View File

@@ -1,7 +1,7 @@
import { GetAll, Create, Delete, GetById, Update, Count } from "../../bindings/app/internal/services/authorservice.ts"
import type { Author } from "../../bindings/app/internal/services/models.ts"
import type { Author } from "../../bindings/app/internal/services"
import type { IService } from "../types/service.type.ts"
export default class AuthorService implements IService<Author> {
async read(id: number) {
return await GetById(id) as Author
@@ -26,4 +26,4 @@ export default class AuthorService implements IService<Author> {
async count() {
return await Count()
}
}
}

View File

@@ -1,37 +1,69 @@
<script setup lang="ts">
import Table from '../table/Table.vue'
import { onMounted, reactive } from 'vue'
import { getDefaultValues } from '../utils/structs/defaults.util.ts'
import S from './post.service.ts'
import { getDefaultValues } from '../utils/structs/defaults.util'
import Service from './post.service.ts'
import type { Scheme } from '../types/scheme.type'
import { Post } from '../../bindings/app/internal/services/models.ts'
import { Post } from '../../bindings/app/internal/services'
const service = new S
import AuthorService from '../author/author.service.ts'
const authorService = new AuthorService
const service = new Service
onMounted(async () => {
(scheme as any).Author.type!.nested!.values = await authorService.readAll()
})
const scheme: Scheme<Post> = reactive({
Id: {
hidden: true,
type: {
primitive: "number",
},
hidden: true,
type: {
primitive: "number",
},
},
Text: {
russian: "Текст",
type: {
primitive: "string",
},
russian: "Текст",
type: {
primitive: "string",
},
},
Deadline: {
russian: "Дедлайн",
type: {
primitive: "number",
},
},
CreatedAt: {
hidden: true,
type: {
primitive: "number",
},
hidden: true,
type: {
primitive: "number",
},
},
AuthorId: {
type: {
primitive: "number",
},
},
Author: {
russian: "Автор",
type: {
nested: {
values: [],
field: ['Name']
},
},
},
})
const getDefaults = () => getDefaultValues(scheme)
@@ -39,7 +71,7 @@ const getDefaults = () => getDefaultValues(scheme)
</script>
<template>
<main class="w-screen h-screen">
<Table :scheme :service :getDefaults></Table>
</main>
</template>
<main class="w-screen h-screen">
<Table :scheme :service :getDefaults></Table>
</main>
</template>

View File

@@ -1,7 +1,7 @@
import { GetAll, Create, Delete, GetById, Update, Count } from "../../bindings/app/internal/services/postservice.ts"
import type { Post } from "../../bindings/app/internal/services/models.ts"
import type { Post } from "../../bindings/app/internal/services"
import type { IService } from "../types/service.type.ts"
export default class PostService implements IService<Post> {
async read(id: number) {
return await GetById(id) as Post
@@ -26,4 +26,4 @@ export default class PostService implements IService<Post> {
async count() {
return await Count()
}
}
}