64 lines
1.9 KiB
TypeScript
64 lines
1.9 KiB
TypeScript
import { BeforeInsert, Column, Entity } from "typeorm"
|
|
|
|
import { DbAwareColumn } from "../utils/db-aware-column"
|
|
import { SoftDeletableEntity } from "../interfaces/models/soft-deletable-entity"
|
|
import { generateEntityId } from "../utils/generate-entity-id"
|
|
|
|
@Entity()
|
|
export class Image extends SoftDeletableEntity {
|
|
@Column()
|
|
url: string
|
|
|
|
@DbAwareColumn({ type: "jsonb", nullable: true })
|
|
metadata: Record<string, unknown>
|
|
|
|
@BeforeInsert()
|
|
private beforeInsert(): void {
|
|
this.id = generateEntityId(this.id, "img")
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @schema Image
|
|
* title: "Image"
|
|
* description: "An Image is used to store details about uploaded images. Images are uploaded by the File Service, and the URL is provided by the File Service."
|
|
* type: object
|
|
* required:
|
|
* - created_at
|
|
* - deleted_at
|
|
* - id
|
|
* - metadata
|
|
* - updated_at
|
|
* - url
|
|
* properties:
|
|
* id:
|
|
* type: string
|
|
* description: The image's ID
|
|
* example: img_01G749BFYR6T8JTVW6SGW3K3E6
|
|
* url:
|
|
* description: The URL at which the image file can be found.
|
|
* type: string
|
|
* format: uri
|
|
* created_at:
|
|
* description: The date with timezone at which the resource was created.
|
|
* type: string
|
|
* format: date-time
|
|
* updated_at:
|
|
* description: The date with timezone at which the resource was updated.
|
|
* type: string
|
|
* format: date-time
|
|
* deleted_at:
|
|
* description: The date with timezone at which the resource was deleted.
|
|
* nullable: true
|
|
* type: string
|
|
* format: date-time
|
|
* metadata:
|
|
* description: An optional key-value map with additional details
|
|
* nullable: true
|
|
* type: object
|
|
* example: {car: "white"}
|
|
* externalDocs:
|
|
* description: "Learn about the metadata attribute, and how to delete and update it."
|
|
* url: "https://docs.medusajs.com/development/entities/overview#metadata-attribute"
|
|
*/
|